def test_monitored_resource_attributes_None(self, monitor_resource_mock): trace = {'spans': [{'attributes': {}}]} expected = { 'attributes': { 'attributeMap': { 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format(__version__) } } } } } monitor_resource_mock.return_value = None stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected) monitor_resource_mock.return_value = mock.Mock() monitor_resource_mock.return_value.resource_type = mock.Mock() monitor_resource_mock.return_value.get_resource_labels.return_value = mock.Mock( ) stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)
def test_set_attributes_gae(self): import os trace = { 'spans': [ { 'attributes': {}, 'span_id': 123, }, ], } expected_attributes = { stackdriver_exporter.GAE_ATTRIBUTES['GAE_FLEX_PROJECT']: 'project', stackdriver_exporter.GAE_ATTRIBUTES['GAE_FLEX_SERVICE']: 'service', stackdriver_exporter.GAE_ATTRIBUTES['GAE_FLEX_VERSION']: 'version', } with mock.patch.dict( os.environ, { stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_VM: 'vm', stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_FLEX: 'flex', 'GAE_FLEX_PROJECT': 'project', 'GAE_FLEX_SERVICE': 'service', 'GAE_FLEX_VERSION': 'version' }): stackdriver_exporter.set_attributes(trace) self.assertEqual(trace['spans'][0]['attributes'], expected_attributes)
def test_set_attributes_gae(self): import os trace = {'spans': [ { 'attributes': {} } ]} expected = { 'attributes': { 'attributeMap': { 'g.co/gae/app/module': { 'string_value': { 'truncated_byte_count': 0, 'value': 'service' } }, 'g.co/gae/app/instance': { 'string_value': { 'truncated_byte_count': 0, 'value': 'flex' } }, 'g.co/gae/app/version': { 'string_value': { 'truncated_byte_count': 0, 'value': 'version' } }, 'g.co/gae/app/project': { 'string_value': { 'truncated_byte_count': 0, 'value': 'project' } }, 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format( stackdriver_exporter.VERSION ) } }, } } } with mock.patch.dict( os.environ, {stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_VM: 'vm', stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_FLEX: 'flex', 'GOOGLE_CLOUD_PROJECT': 'project', 'GAE_SERVICE': 'service', 'GAE_VERSION': 'version'}): self.assertTrue(stackdriver_exporter.is_gae_environment()) stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)
def test_monitored_resource_attributes_aws(self, aws_monitor_resource_mock): import os trace = {'spans': [{'attributes': {}}]} expected = { 'attributes': { 'attributeMap': { 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format( stackdriver_exporter.VERSION) } }, 'g.co/r/aws_ec2_instance/aws_account': { 'string_value': { 'truncated_byte_count': 0, 'value': '123456789012' } }, 'g.co/r/aws_ec2_instance/instance_id': { 'string_value': { 'truncated_byte_count': 0, 'value': 'i-1234567890abcdef0' } }, 'g.co/r/aws_ec2_instance/region': { 'string_value': { 'truncated_byte_count': 0, 'value': 'aws:us-west-2' } }, } } } aws_monitor_resource_mock.return_value = mock.Mock() aws_monitor_resource_mock.return_value.resource_type = 'aws_ec2_instance' aws_monitor_resource_mock.return_value.get_resource_labels.return_value = { 'instance_id': 'i-1234567890abcdef0', 'aws_account': '123456789012', 'region': 'us-west-2' } stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)
def test_monitored_resource_attributes_gce(self, gce_monitor_resource_mock): trace = {'spans': [{'attributes': {}}]} expected = { 'attributes': { 'attributeMap': { 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format( stackdriver_exporter.VERSION) } }, 'g.co/r/gce_instance/project_id': { 'string_value': { 'truncated_byte_count': 0, 'value': 'my_project' } }, 'g.co/r/gce_instance/instance_id': { 'string_value': { 'truncated_byte_count': 0, 'value': '12345' } }, 'g.co/r/gce_instance/zone': { 'string_value': { 'truncated_byte_count': 0, 'value': 'zone1' } }, } } } gce_monitor_resource_mock.return_value = mock.Mock() gce_monitor_resource_mock.return_value.resource_type = 'gce_instance' gce_monitor_resource_mock.return_value.get_resource_labels.return_value = { 'project_id': 'my_project', 'instance_id': '12345', 'zone': 'zone1' } stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)
def test_monitored_resource_attributes_aws(self, amr_mock): trace = {'spans': [{'attributes': {}}]} expected = { 'attributes': { 'attributeMap': { 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format(__version__) } }, 'g.co/r/aws_ec2_instance/aws_account': { 'string_value': { 'truncated_byte_count': 0, 'value': '123456789012' } }, 'g.co/r/aws_ec2_instance/region': { 'string_value': { 'truncated_byte_count': 0, 'value': 'aws:us-west-2' } }, } } } mock_resource = mock.Mock() mock_resource.get_type.return_value = 'aws_ec2_instance' mock_resource.get_labels.return_value = { 'aws_account': '123456789012', 'region': 'us-west-2' } amr_mock.return_value = mock_resource stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)
def test_monitored_resource_attributes(self, monitor_resource_mock): import os trace = {'spans': [{'attributes': {}}]} expected = { 'attributes': { 'attributeMap': { 'g.co/gae/app/module': { 'string_value': { 'truncated_byte_count': 0, 'value': 'service' } }, 'g.co/gae/app/instance': { 'string_value': { 'truncated_byte_count': 0, 'value': 'flex' } }, 'g.co/gae/app/version': { 'string_value': { 'truncated_byte_count': 0, 'value': 'version' } }, 'g.co/gae/app/project': { 'string_value': { 'truncated_byte_count': 0, 'value': 'project' } }, 'g.co/agent': { 'string_value': { 'truncated_byte_count': 0, 'value': 'opencensus-python [{}]'.format( stackdriver_exporter.VERSION) } }, 'g.co/r/gke_container/instance_id': { 'string_value': { 'truncated_byte_count': 0, 'value': '12345' } }, 'g.co/r/gke_container/project_id': { 'string_value': { 'truncated_byte_count': 0, 'value': 'my_project' } }, 'g.co/r/gke_container/zone': { 'string_value': { 'truncated_byte_count': 0, 'value': 'zone1' } }, } } } monitor_resource_mock.return_value = mock.Mock() monitor_resource_mock.return_value.resource_type = 'gke_container' monitor_resource_mock.return_value.get_resource_labels.return_value = { 'project_id': 'my_project', 'instance_id': '12345', 'zone': 'zone1' } with mock.patch.dict( os.environ, { stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_VM: 'vm', stackdriver_exporter._APPENGINE_FLEXIBLE_ENV_FLEX: 'flex', 'GOOGLE_CLOUD_PROJECT': 'project', 'GAE_SERVICE': 'service', 'GAE_VERSION': 'version' }): self.assertTrue(stackdriver_exporter.is_gae_environment()) stackdriver_exporter.set_attributes(trace) span = trace.get('spans')[0] self.assertEqual(span, expected)