Skip to content

Commit

Permalink
Merge branch 'main' into semconv-stability-prep
Browse files Browse the repository at this point in the history
  • Loading branch information
emdneto authored Dec 16, 2024
2 parents 6799afc + 770003d commit c27dfbe
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 4 deletions.
2 changes: 2 additions & 0 deletions sdk-extension/opentelemetry-sdk-extension-aws/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

- Make ecs and beanstalk resource detector silent when loaded outside AWS
([#3076](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3076))
- Make EKS resource detector don't warn when not running in EKS
([#3074](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3074))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ def detect(self) -> "Resource":
else:
conf_file_path = "/var/elasticbeanstalk/xray/environment.conf"

if not os.path.exists(conf_file_path):
return Resource.get_empty()

try:
with open(conf_file_path, encoding="utf-8") as conf_file:
parsed_data = json.load(conf_file)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ def detect(self) -> "Resource":
if not os.environ.get(
"ECS_CONTAINER_METADATA_URI"
) and not os.environ.get("ECS_CONTAINER_METADATA_URI_V4"):
raise RuntimeError(
"Missing ECS_CONTAINER_METADATA_URI therefore process is not on ECS."
)
return Resource.get_empty()

container_id = ""
try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,19 @@ class AwsBeanstalkResourceDetectorTest(unittest.TestCase):
new_callable=mock_open,
read_data=f'{{"deployment_id":"{MockBeanstalkResourceAttributes[ResourceAttributes.SERVICE_INSTANCE_ID]}","environment_name":"{MockBeanstalkResourceAttributes[ResourceAttributes.SERVICE_NAMESPACE]}","version_label":"{MockBeanstalkResourceAttributes[ResourceAttributes.SERVICE_VERSION]}"}}',
)
def test_simple_create(self, mock_open_function):
@patch("os.path.exists", return_value=True)
def test_simple_create(self, mock_path_exists, mock_open_function):
actual = AwsBeanstalkResourceDetector().detect()
self.assertDictEqual(
actual.attributes.copy(),
OrderedDict(MockBeanstalkResourceAttributes),
)

@patch("os.name", "posix")
@patch("os.path.exists", return_value=False)
def test_not_on_beanstalk(self, mock_path_exists):
actual = AwsBeanstalkResourceDetector().detect()
self.assertDictEqual(actual.attributes.copy(), {})
mock_path_exists.assert_called_once_with(
"/var/elasticbeanstalk/xray/environment.conf"
)
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ def _http_get_function_fargate(url: str, *args, **kwargs) -> str:


class AwsEcsResourceDetectorTest(unittest.TestCase):
@patch.dict("os.environ", {}, clear=True)
def test_not_on_ecs(self):
actual = AwsEcsResourceDetector().detect()
self.assertDictEqual(actual.attributes.copy(), {})

@patch.dict(
"os.environ",
{"ECS_CONTAINER_METADATA_URI": "mock-uri"},
Expand Down

0 comments on commit c27dfbe

Please sign in to comment.