Bugfix django instrumentation (#1309)

This commit is contained in:
zhutianyu
2020-11-02 11:50:17 +08:00
committed by GitHub
parent b5b81db05f
commit 2504416734
3 changed files with 19 additions and 1 deletions

View File

@ -3,6 +3,7 @@
## Unreleased
- 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))
- 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#))
## Version 0.14b0

View File

@ -81,7 +81,7 @@ class _DjangoMiddleware(MiddlewareMixin):
if getattr(request, "resolver_match"):
match = request.resolver_match
else:
match = resolve(request.get_full_path())
match = resolve(request.path)
if hasattr(match, "route"):
return match.route

View File

@ -250,6 +250,7 @@ class TestMiddleware(TestBase, WsgiTestBase):
self.assertEqual(len(span_list), 1)
def test_span_name(self):
# test no query_string
Client().get("/span_name/1234/")
span_list = self.memory_exporter.get_finished_spans()
self.assertEqual(len(span_list), 1)
@ -262,6 +263,22 @@ class TestMiddleware(TestBase, WsgiTestBase):
else "tests.views.route_span_name",
)
def test_span_name_for_query_string(self):
"""
request not have query string
"""
Client().get("/span_name/1234/?query=test")
span_list = self.memory_exporter.get_finished_spans()
self.assertEqual(len(span_list), 1)
span = span_list[0]
self.assertEqual(
span.name,
"^span_name/([0-9]{4})/$"
if DJANGO_2_2
else "tests.views.route_span_name",
)
def test_span_name_404(self):
Client().get("/span_name/1234567890/")
span_list = self.memory_exporter.get_finished_spans()