From 4c300bd576cf7b80888ea80ff152f26a8011474d Mon Sep 17 00:00:00 2001 From: Adi Kochavi Date: Mon, 30 Jan 2023 13:39:34 +0200 Subject: [PATCH 1/3] Audit and test opentelemetry-instrumentation-wsgi NoOpTracerProvider --- .../tests/test_wsgi_middleware.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py b/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py index 6073b9daa7..9900ccd097 100644 --- a/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py +++ b/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py @@ -484,6 +484,16 @@ def test_basic_wsgi_call(self): response = app(self.environ, self.start_response) self.validate_response(response, exporter) + def test_no_op_tracer_provider(self): + app = otel_wsgi.OpenTelemetryMiddleware( + simple_wsgi, tracer_provider=trace_api.NoOpTracerProvider + ) + + response = app(self.environ, self.start_response) + next(response) + span_list = self.memory_exporter.get_finished_spans() + self.assertEqual(len(span_list), 0) + class TestWsgiMiddlewareWrappedWithAnotherFramework(WsgiTestBase): def test_mark_span_internal_in_presence_of_span_from_other_framework(self): From ba4624759f9326f437e3cb4c5cf6021296a4f76d Mon Sep 17 00:00:00 2001 From: Adi Kochavi Date: Mon, 30 Jan 2023 14:56:44 +0200 Subject: [PATCH 2/3] Fix cr --- .../tests/test_wsgi_middleware.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py b/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py index 9900ccd097..ffe2982052 100644 --- a/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py +++ b/instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py @@ -486,11 +486,16 @@ def test_basic_wsgi_call(self): def test_no_op_tracer_provider(self): app = otel_wsgi.OpenTelemetryMiddleware( - simple_wsgi, tracer_provider=trace_api.NoOpTracerProvider + simple_wsgi, tracer_provider=trace_api.NoOpTracerProvider() ) response = app(self.environ, self.start_response) - next(response) + while True: + try: + value = next(response) + self.assertEqual(value, b"*") + except StopIteration: + break span_list = self.memory_exporter.get_finished_spans() self.assertEqual(len(span_list), 0) From 710e413266e88a906966556bd0b6403b3b222450 Mon Sep 17 00:00:00 2001 From: Adi Kochavi Date: Wed, 8 Feb 2023 09:20:28 +0200 Subject: [PATCH 3/3] wip --- .../instrumentation/auto_instrumentation/__init__.py | 4 ---- .../src/opentelemetry/instrumentation/instrumentor.py | 1 - 2 files changed, 5 deletions(-) diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py index 7d2ca83294..5758ef1834 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py @@ -29,7 +29,6 @@ def run() -> None: - parser = ArgumentParser( description=""" opentelemetry-instrument automatically instruments a Python @@ -57,9 +56,7 @@ def run() -> None: environment_variable_module = entry_point.load() for attribute in dir(environment_variable_module): - if attribute.startswith("OTEL_"): - argument = sub(r"OTEL_(PYTHON_)?", "", attribute).lower() parser.add_argument( @@ -88,7 +85,6 @@ def run() -> None: ).items(): value = getattr(args, argument) if value is not None: - environ[otel_environment_variable] = value python_path = environ.get("PYTHONPATH") diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/instrumentor.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/instrumentor.py index 060ac484e7..160fe3c450 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/instrumentor.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/instrumentor.py @@ -46,7 +46,6 @@ class BaseInstrumentor(ABC): _is_instrumented_by_opentelemetry = False def __new__(cls, *args, **kwargs): - if cls._instance is None: cls._instance = object.__new__(cls, *args, **kwargs)