Skip to content

Commit 22422e8

Browse files
committed
Update WSGI implementation
1 parent e67218a commit 22422e8

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

instrumentation/opentelemetry-instrumentation-wsgi/src/opentelemetry/instrumentation/wsgi/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,8 +440,12 @@ def add_response_attributes(
440440

441441

442442
def get_default_span_name(environ):
443-
"""Default implementation for name_callback, returns HTTP {METHOD_NAME}."""
444-
return f"HTTP {environ.get('REQUEST_METHOD', '')}".strip()
443+
"""Default implementation for name_callback, returns `{METHOD_NAME}`."""
444+
method = environ.get("REQUEST_METHOD", "").strip()
445+
route = environ.get("PATH_INFO", "").strip()
446+
if route:
447+
return f"{method} {route}"
448+
return method
445449

446450

447451
class OpenTelemetryMiddleware:

instrumentation/opentelemetry-instrumentation-wsgi/tests/test_wsgi_middleware.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def validate_response(
128128
self,
129129
response,
130130
error=None,
131-
span_name="HTTP GET",
131+
span_name="GET /",
132132
http_method="GET",
133133
span_attributes=None,
134134
response_headers=None,
@@ -284,12 +284,14 @@ def test_wsgi_metrics(self):
284284
)
285285
self.assertTrue(number_data_point_seen and histogram_data_point_seen)
286286

287-
def test_default_span_name_missing_request_method(self):
288-
"""Test that default span_names with missing request method."""
289-
self.environ.pop("REQUEST_METHOD")
287+
# Question: How often request method can be lost?
288+
def test_default_span_name_missing_path_info(self):
289+
"""Test that default span_names with missing path info."""
290+
self.environ.pop("PATH_INFO")
291+
method = self.environ.get("REQUEST_METHOD", "").strip()
290292
app = otel_wsgi.OpenTelemetryMiddleware(simple_wsgi)
291293
response = app(self.environ, self.start_response)
292-
self.validate_response(response, span_name="HTTP", http_method=None)
294+
self.validate_response(response, span_name=method)
293295

294296

295297
class TestWsgiAttributes(unittest.TestCase):
@@ -455,7 +457,7 @@ def validate_response(
455457
response,
456458
exporter,
457459
error=None,
458-
span_name="HTTP GET",
460+
span_name="GET /",
459461
http_method="GET",
460462
):
461463
while True:

0 commit comments

Comments
 (0)