コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)