def test_constructor_by_environment_variables(self):
        """Test using Environment Variables."""
        # pylint: disable=protected-access
        Configuration._reset()
        service = "my-opentelemetry-jaeger"

        collector_endpoint = "localhost:14250"

        env_patch = patch.dict(
            "os.environ",
            {
                "OTEL_EXPORTER_JAEGER_ENDPOINT": collector_endpoint,
                "OTEL_EXPORTER_JAEGER_CERTIFICATE": os.path.dirname(__file__)
                + "/certs/cred.cert",
            },
        )

        env_patch.start()

        exporter = JaegerSpanExporter(
            service_name=service, transport_format="protobuf"
        )

        self.assertEqual(exporter.service_name, service)
        self.assertIsNotNone(exporter._collector_grpc_client)
        self.assertEqual(exporter.collector_endpoint, collector_endpoint)
        self.assertIsNotNone(exporter.credentials)

        env_patch.stop()
 def setUp(self):  # pylint: disable=arguments-differ
     self.exporter = OTLPMetricsExporter(insecure=True)
     self.resource = SDKResource(OrderedDict([("a", 1), ("b", False)]))
     self.meter = MeterProvider(resource=self.resource,).get_meter(
         "name", "version"
     )
     Configuration._reset()  # pylint: disable=protected-access
 def setUp(self):
     super().setUp()
     setup_test_environment()
     _django_instrumentor.instrument()
     Configuration._reset()  # pylint: disable=protected-access
     self.env_patch = patch.dict(
         "os.environ",
         {
             "OTEL_PYTHON_DJANGO_EXCLUDED_URLS":
             "http://testserver/excluded_arg/123,excluded_noarg",
             "OTEL_PYTHON_DJANGO_TRACED_REQUEST_ATTRS":
             "path_info,content_type,non_existing_variable",
         },
     )
     self.env_patch.start()
     self.exclude_patch = patch(
         "opentelemetry.instrumentation.django.middleware._DjangoMiddleware._excluded_urls",
         Configuration()._excluded_urls("django"),
     )
     self.traced_patch = patch(
         "opentelemetry.instrumentation.django.middleware._DjangoMiddleware._traced_request_attrs",
         Configuration()._traced_request_attrs("django"),
     )
     self.exclude_patch.start()
     self.traced_patch.start()
    def test_non_default_propagators(self, mock_iter_entry_points,
                                     mock_compositehttppropagator):

        Configuration._reset()

        def iter_entry_points_mock(_, propagator):
            return iter([
                Mock(**{
                    "load.side_effect":
                    [Mock(**{"side_effect": [propagator]})]
                })
            ])

        mock_iter_entry_points.configure_mock(
            **{"side_effect": iter_entry_points_mock})

        def test_propagators(propagators):

            self.assertEqual(propagators, ["a", "b", "c"])

        mock_compositehttppropagator.configure_mock(
            **{"side_effect": test_propagators})

        import opentelemetry.propagators

        reload(opentelemetry.propagators)
Пример #5
0
 def test_trace_init_custom_ids_generator(self, mock_iter_entry_points):
     mock_iter_entry_points.configure_mock(return_value=[
         IterEntryPoint("custom_ids_generator", CustomIdsGenerator)
     ])
     Configuration._reset()
     ids_generator_name = _get_ids_generator()
     ids_generator = _import_ids_generator(ids_generator_name)
     _init_tracing({}, ids_generator)
     provider = self.set_provider_mock.call_args[0][0]
     self.assertIsInstance(provider.ids_generator, CustomIdsGenerator)
    def setUp(self):
        tracer_provider = TracerProvider()
        self.exporter = OTLPSpanExporter(insecure=True)
        tracer_provider.add_span_processor(
            SimpleExportSpanProcessor(self.exporter)
        )
        self.tracer = tracer_provider.get_tracer(__name__)

        self.server = server(ThreadPoolExecutor(max_workers=10))

        self.server.add_insecure_port("[::]:55680")

        self.server.start()

        event_mock = Mock(
            **{
                "timestamp": 1591240820506462784,
                "attributes": OrderedDict([("a", 1), ("b", False)]),
            }
        )

        type(event_mock).name = PropertyMock(return_value="a")

        self.span = _Span(
            "a",
            context=Mock(
                **{
                    "trace_state": OrderedDict([("a", "b"), ("c", "d")]),
                    "span_id": 10217189687419569865,
                    "trace_id": 67545097771067222548457157018666467027,
                }
            ),
            resource=SDKResource(OrderedDict([("a", 1), ("b", False)])),
            parent=Mock(**{"span_id": 12345}),
            attributes=OrderedDict([("a", 1), ("b", True)]),
            events=[event_mock],
            links=[
                Mock(
                    **{
                        "context.trace_id": 1,
                        "context.span_id": 2,
                        "attributes": OrderedDict([("a", 1), ("b", False)]),
                        "kind": OTLPSpan.SpanKind.SPAN_KIND_INTERNAL,  # pylint: disable=no-member
                    }
                )
            ],
            instrumentation_info=InstrumentationInfo(
                name="name", version="version"
            ),
        )

        self.span.start()
        self.span.end()

        Configuration._reset()  # pylint: disable=protected-access
    def setUp(self):
        # create and save span to be used in tests
        context = trace_api.SpanContext(
            trace_id=0x000000000000000000000000DEADBEEF,
            span_id=0x00000000DEADBEF0,
            is_remote=False,
        )

        self._test_span = trace._Span("test_span", context=context)
        self._test_span.start()
        self._test_span.end()
        # pylint: disable=protected-access
        Configuration._reset()
Пример #8
0
    def test_trace_init_default(self):
        environ["OTEL_SERVICE_NAME"] = "my-test-service"
        Configuration._reset()
        _init_tracing({"zipkin": Exporter}, RandomIdsGenerator)

        self.assertEqual(self.set_provider_mock.call_count, 1)
        provider = self.set_provider_mock.call_args[0][0]
        self.assertIsInstance(provider, Provider)
        self.assertIsInstance(provider.ids_generator, RandomIdsGenerator)
        self.assertIsInstance(provider.processor, Processor)
        self.assertIsInstance(provider.processor.exporter, Exporter)
        self.assertEqual(provider.processor.exporter.service_name,
                         "my-test-service")
    def test_reset(self) -> None:
        environ_patcher = patch.dict(
            "os.environ",
            {"OPENTELEMETRY_PYTHON_TRACER_PROVIDER": "tracer_provider"},
        )

        environ_patcher.start()

        self.assertEqual(Configuration().TRACER_PROVIDER, "tracer_provider")  # pylint: disable=no-member

        environ_patcher.stop()

        Configuration._reset()

        self.assertIsNone(Configuration().TRACER_PROVIDER)  # pylint: disable=no-member
Пример #10
0
    def test_constructor_by_environment_variables(self):
        """Test the constructor using Environment Variables."""
        service = "my-opentelemetry-jaeger"

        agent_host_name = "opentelemetry.io"
        agent_port = "6831"

        collector_endpoint = "https://opentelemetry.io:15875"

        username = "******"
        password = "******"
        auth = (username, password)

        environ_patcher = mock.patch.dict(
            "os.environ",
            {
                "OTEL_EXPORTER_JAEGER_AGENT_HOST": agent_host_name,
                "OTEL_EXPORTER_JAEGER_AGENT_PORT": agent_port,
                "OTEL_EXPORTER_JAEGER_ENDPOINT": collector_endpoint,
                "OTEL_EXPORTER_JAEGER_USER": username,
                "OTEL_EXPORTER_JAEGER_PASSWORD": password,
            },
        )

        environ_patcher.start()

        exporter = jaeger_exporter.JaegerSpanExporter(service_name=service)

        self.assertEqual(exporter.service_name, service)
        self.assertEqual(exporter.agent_host_name, agent_host_name)
        self.assertEqual(exporter.agent_port, int(agent_port))
        self.assertTrue(exporter.collector is not None)
        self.assertEqual(exporter.collector_endpoint, collector_endpoint)
        self.assertEqual(exporter.collector.auth, auth)
        # property should not construct new object
        collector = exporter.collector
        self.assertEqual(exporter.collector, collector)
        # property should construct new object
        # pylint: disable=protected-access
        exporter._collector = None
        exporter.username = None
        exporter.password = None
        self.assertNotEqual(exporter.collector, collector)
        self.assertTrue(exporter.collector.auth is None)

        environ_patcher.stop()

        Configuration._reset()
    def test_trace_init_otlp(self):
        environ["OTEL_SERVICE_NAME"] = "my-otlp-test-service"
        Configuration._reset()
        _init_tracing({"otlp": OTLPExporter}, RandomIdsGenerator)

        self.assertEqual(self.set_provider_mock.call_count, 1)
        provider = self.set_provider_mock.call_args[0][0]
        self.assertIsInstance(provider, Provider)
        self.assertIsInstance(provider.ids_generator, RandomIdsGenerator)
        self.assertIsInstance(provider.processor, Processor)
        self.assertIsInstance(provider.processor.exporter, OTLPExporter)
        self.assertIsInstance(provider.resource, Resource)
        self.assertEqual(
            provider.resource.attributes.get("service.name"),
            "my-otlp-test-service",
        )
        del environ["OTEL_SERVICE_NAME"]
    def setUp(self):
        self.exporter = OTLPMetricsExporter(insecure=True)
        resource = SDKResource(OrderedDict([("a", 1), ("b", False)]))

        self.counter_metric_record = MetricRecord(
            Counter(
                "c",
                "d",
                "e",
                int,
                MeterProvider(resource=resource, ).get_meter(__name__),
                ("f", ),
            ),
            [("g", "h")],
            SumAggregator(),
            resource,
        )

        Configuration._reset()  # pylint: disable=protected-access
 def tearDown(self):
     # pylint: disable=protected-access
     Configuration._reset()
Пример #14
0
 def tearDown(self):
     # reset global state of configuration object
     # pylint: disable=protected-access
     Configuration._reset()
Пример #15
0
 def tearDown(self):
     self.server.stop(None)
     Configuration._reset()  # pylint: disable=protected-access
 def setUp(self):
     super().setUp()
     setup_test_environment()
     _django_instrumentor.instrument()
     Configuration._reset()  # pylint: disable=protected-access
 def setUp(self) -> None:
     Configuration._reset()
Пример #18
0
 def setUp(self):  # pylint: disable=invalid-name
     super().setUp()  # pylint: disable=no-member
     Configuration._reset()  # pylint: disable=protected-access
 def tearDown(self) -> None:
     # This call resets the attributes of the Configuration class so that
     # each test is executed in the same conditions.
     Configuration._reset()