opentelemetry-sdk-extension-aws: make ecs and beanstalk resource detector silent when loaded outside AWS (#3076)
* opentelemetry-sdk-extension-aws: make ecs detector less chatty Don't print warnings if we are not running inside an ecs instance so we can load the resource detector more generally and avoid warnings in stderr. * opentelemetry-sdk-extension-aws: make beanstalk detector less chatty Don't print warnings if we are not running inside beanstalk so we can load the resource detector more generally and avoid warnings in stderr. * Add changelog
This commit is contained in:
		
							parent
							
								
									38f0e33641
								
							
						
					
					
						commit
						770003dd17
					
				|  | @ -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)) | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,6 +41,9 @@ class AwsBeanstalkResourceDetector(ResourceDetector): | |||
|         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) | ||||
|  |  | |||
|  | @ -41,9 +41,7 @@ class AwsEcsResourceDetector(ResourceDetector): | |||
|             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: | ||||
|  |  | |||
|  | @ -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" | ||||
|         ) | ||||
|  |  | |||
|  | @ -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"}, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue