Skip to content

Commit 5581bd5

Browse files
committed
Update Django implementation
1 parent 51e950c commit 5581bd5

File tree

3 files changed

+17
-23
lines changed

3 files changed

+17
-23
lines changed

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

+3-9
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,12 @@ def _get_span_name(request):
173173
match = resolve(request.path)
174174

175175
if hasattr(match, "route"):
176-
return match.route
176+
return f"{request.method} {match.route}"
177177

178-
# Instead of using `view_name`, better to use `_func_name` as some applications can use similar
179-
# view names in different modules
180-
if hasattr(match, "_func_name"):
181-
return match._func_name # pylint: disable=protected-access
182-
183-
# Fallback for safety as `_func_name` private field
184-
return match.view_name
178+
return request.method
185179

186180
except Resolver404:
187-
return f"HTTP {request.method}"
181+
return request.method
188182

189183
# pylint: disable=too-many-locals
190184
def process_request(self, request):

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def test_templated_route_get(self):
150150

151151
self.assertEqual(
152152
span.name,
153-
"^route/(?P<year>[0-9]{4})/template/$"
153+
"GET ^route/(?P<year>[0-9]{4})/template/$"
154154
if DJANGO_2_2
155155
else "tests.views.traced_template",
156156
)
@@ -178,7 +178,7 @@ def test_traced_get(self):
178178
span = spans[0]
179179

180180
self.assertEqual(
181-
span.name, "^traced/" if DJANGO_2_2 else "tests.views.traced"
181+
span.name, "GET ^traced/" if DJANGO_2_2 else "tests.views.traced"
182182
)
183183
self.assertEqual(span.kind, SpanKind.SERVER)
184184
self.assertEqual(span.status.status_code, StatusCode.UNSET)
@@ -216,7 +216,7 @@ def test_traced_post(self):
216216
span = spans[0]
217217

218218
self.assertEqual(
219-
span.name, "^traced/" if DJANGO_2_2 else "tests.views.traced"
219+
span.name, "POST ^traced/" if DJANGO_2_2 else "tests.views.traced"
220220
)
221221
self.assertEqual(span.kind, SpanKind.SERVER)
222222
self.assertEqual(span.status.status_code, StatusCode.UNSET)
@@ -242,7 +242,7 @@ def test_error(self):
242242
span = spans[0]
243243

244244
self.assertEqual(
245-
span.name, "^error/" if DJANGO_2_2 else "tests.views.error"
245+
span.name, "GET ^error/" if DJANGO_2_2 else "tests.views.error"
246246
)
247247
self.assertEqual(span.kind, SpanKind.SERVER)
248248
self.assertEqual(span.status.status_code, StatusCode.ERROR)
@@ -307,7 +307,7 @@ def test_span_name(self):
307307
span = span_list[0]
308308
self.assertEqual(
309309
span.name,
310-
"^span_name/([0-9]{4})/$"
310+
"GET ^span_name/([0-9]{4})/$"
311311
if DJANGO_2_2
312312
else "tests.views.route_span_name",
313313
)
@@ -323,7 +323,7 @@ def test_span_name_for_query_string(self):
323323
span = span_list[0]
324324
self.assertEqual(
325325
span.name,
326-
"^span_name/([0-9]{4})/$"
326+
"GET ^span_name/([0-9]{4})/$"
327327
if DJANGO_2_2
328328
else "tests.views.route_span_name",
329329
)
@@ -334,7 +334,7 @@ def test_span_name_404(self):
334334
self.assertEqual(len(span_list), 1)
335335

336336
span = span_list[0]
337-
self.assertEqual(span.name, "HTTP GET")
337+
self.assertEqual(span.name, "GET")
338338

339339
def test_traced_request_attrs(self):
340340
Client().get("/span_name/1234/", CONTENT_TYPE="test/ct")

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ async def test_templated_route_get(self):
137137

138138
span = spans[0]
139139

140-
self.assertEqual(span.name, "^route/(?P<year>[0-9]{4})/template/$")
140+
self.assertEqual(span.name, "GET ^route/(?P<year>[0-9]{4})/template/$")
141141
self.assertEqual(span.kind, SpanKind.SERVER)
142142
self.assertEqual(span.status.status_code, StatusCode.UNSET)
143143
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "GET")
@@ -160,7 +160,7 @@ async def test_traced_get(self):
160160

161161
span = spans[0]
162162

163-
self.assertEqual(span.name, "^traced/")
163+
self.assertEqual(span.name, "GET ^traced/")
164164
self.assertEqual(span.kind, SpanKind.SERVER)
165165
self.assertEqual(span.status.status_code, StatusCode.UNSET)
166166
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "GET")
@@ -195,7 +195,7 @@ async def test_traced_post(self):
195195

196196
span = spans[0]
197197

198-
self.assertEqual(span.name, "^traced/")
198+
self.assertEqual(span.name, "POST ^traced/")
199199
self.assertEqual(span.kind, SpanKind.SERVER)
200200
self.assertEqual(span.status.status_code, StatusCode.UNSET)
201201
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "POST")
@@ -218,7 +218,7 @@ async def test_error(self):
218218

219219
span = spans[0]
220220

221-
self.assertEqual(span.name, "^error/")
221+
self.assertEqual(span.name, "GET ^error/")
222222
self.assertEqual(span.kind, SpanKind.SERVER)
223223
self.assertEqual(span.status.status_code, StatusCode.ERROR)
224224
self.assertEqual(span.attributes[SpanAttributes.HTTP_METHOD], "GET")
@@ -264,7 +264,7 @@ async def test_span_name(self):
264264
self.assertEqual(len(span_list), 1)
265265

266266
span = span_list[0]
267-
self.assertEqual(span.name, "^span_name/([0-9]{4})/$")
267+
self.assertEqual(span.name, "GET ^span_name/([0-9]{4})/$")
268268

269269
async def test_span_name_for_query_string(self):
270270
"""
@@ -275,15 +275,15 @@ async def test_span_name_for_query_string(self):
275275
self.assertEqual(len(span_list), 1)
276276

277277
span = span_list[0]
278-
self.assertEqual(span.name, "^span_name/([0-9]{4})/$")
278+
self.assertEqual(span.name, "GET ^span_name/([0-9]{4})/$")
279279

280280
async def test_span_name_404(self):
281281
await self.async_client.get("/span_name/1234567890/")
282282
span_list = self.memory_exporter.get_finished_spans()
283283
self.assertEqual(len(span_list), 1)
284284

285285
span = span_list[0]
286-
self.assertEqual(span.name, "HTTP GET")
286+
self.assertEqual(span.name, "GET")
287287

288288
async def test_traced_request_attrs(self):
289289
await self.async_client.get("/span_name/1234/", CONTENT_TYPE="test/ct")

0 commit comments

Comments
 (0)