Skip to content

Commit a3a75e3

Browse files
authored
Bugfix django instrumentation (open-telemetry#1309)
1 parent 8b60879 commit a3a75e3

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

instrumentation/opentelemetry-instrumentation-django/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Unreleased
44

55
- Django instrumentation is now enabled by default but can be disabled by setting `OTEL_PYTHON_DJANGO_INSTRUMENT` to `False` ([#1239](https://github.com/open-telemetry/opentelemetry-python/pull/1239))
6+
- Bugfix use request.path replace request.get_full_path(). It will get correct span name ([#1309](https://github.com/open-telemetry/opentelemetry-python/pull/1309#))
67

78
## Version 0.14b0
89

instrumentation/opentelemetry-instrumentation-django/src/opentelemetry/instrumentation/django/middleware.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def _get_span_name(request):
8181
if getattr(request, "resolver_match"):
8282
match = request.resolver_match
8383
else:
84-
match = resolve(request.get_full_path())
84+
match = resolve(request.path)
8585

8686
if hasattr(match, "route"):
8787
return match.route

instrumentation/opentelemetry-instrumentation-django/tests/test_middleware.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ def test_exclude_lists(self):
250250
self.assertEqual(len(span_list), 1)
251251

252252
def test_span_name(self):
253+
# test no query_string
253254
Client().get("/span_name/1234/")
254255
span_list = self.memory_exporter.get_finished_spans()
255256
self.assertEqual(len(span_list), 1)
@@ -262,6 +263,22 @@ def test_span_name(self):
262263
else "tests.views.route_span_name",
263264
)
264265

266+
def test_span_name_for_query_string(self):
267+
"""
268+
request not have query string
269+
"""
270+
Client().get("/span_name/1234/?query=test")
271+
span_list = self.memory_exporter.get_finished_spans()
272+
self.assertEqual(len(span_list), 1)
273+
274+
span = span_list[0]
275+
self.assertEqual(
276+
span.name,
277+
"^span_name/([0-9]{4})/$"
278+
if DJANGO_2_2
279+
else "tests.views.route_span_name",
280+
)
281+
265282
def test_span_name_404(self):
266283
Client().get("/span_name/1234567890/")
267284
span_list = self.memory_exporter.get_finished_spans()

0 commit comments

Comments
 (0)