Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a749e77

Browse files
committedApr 16, 2023
update Tornado implementation
1 parent ef94b36 commit a749e77

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed
 

‎instrumentation/opentelemetry-instrumentation-tornado/src/opentelemetry/instrumentation/tornado/__init__.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,12 @@ def _get_attributes_from_request(request):
454454
)
455455

456456

457-
def _get_operation_name(handler, request):
458-
full_class_name = type(handler).__name__
459-
class_name = full_class_name.rsplit(".")[-1]
460-
return f"{class_name}.{request.method.lower()}"
457+
def _get_default_span_name(request):
458+
path = request.path
459+
method = request.method
460+
if method and path:
461+
return f"{method} {path}"
462+
return f"{method}"
461463

462464

463465
def _get_full_handler_name(handler):
@@ -468,7 +470,7 @@ def _get_full_handler_name(handler):
468470
def _start_span(tracer, handler) -> _TraceContext:
469471
span, token = _start_internal_or_server_span(
470472
tracer=tracer,
471-
span_name=_get_operation_name(handler, handler.request),
473+
span_name=_get_default_span_name(handler.request),
472474
start_time=time_ns(),
473475
context_carrier=handler.request.headers,
474476
context_getter=textmap.default_getter,

‎instrumentation/opentelemetry-instrumentation-tornado/tests/test_instrumentation.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def _test_http_method_call(self, method):
135135
self.assertEqual(manual.parent, server.context)
136136
self.assertEqual(manual.context.trace_id, client.context.trace_id)
137137

138-
self.assertEqual(server.name, "MainHandler." + method.lower())
138+
self.assertEqual(server.name, f"{method} /")
139139
self.assertTrue(server.parent.is_remote)
140140
self.assertNotEqual(server.parent, client.context)
141141
self.assertEqual(server.parent.span_id, client.context.span_id)
@@ -196,7 +196,7 @@ def _test_async_handler(self, url, handler_name):
196196
self.assertEqual(len(spans), 5)
197197

198198
client = spans.by_name("GET")
199-
server = spans.by_name(handler_name + ".get")
199+
server = spans.by_name(f"GET {url}")
200200
sub_wrapper = spans.by_name("sub-task-wrapper")
201201

202202
sub2 = spans.by_name("sub-task-2")
@@ -213,7 +213,7 @@ def _test_async_handler(self, url, handler_name):
213213
self.assertEqual(sub_wrapper.parent, server.context)
214214
self.assertEqual(sub_wrapper.context.trace_id, client.context.trace_id)
215215

216-
self.assertEqual(server.name, handler_name + ".get")
216+
self.assertEqual(server.name, f"GET {url}")
217217
self.assertTrue(server.parent.is_remote)
218218
self.assertNotEqual(server.parent, client.context)
219219
self.assertEqual(server.parent.span_id, client.context.span_id)
@@ -229,6 +229,7 @@ def _test_async_handler(self, url, handler_name):
229229
SpanAttributes.HTTP_TARGET: url,
230230
SpanAttributes.HTTP_CLIENT_IP: "127.0.0.1",
231231
SpanAttributes.HTTP_STATUS_CODE: 201,
232+
"tornado.handler": f"tests.tornado_test_app.{handler_name}"
232233
},
233234
)
234235

@@ -253,9 +254,9 @@ def test_500(self):
253254
self.assertEqual(len(spans), 2)
254255

255256
client = spans.by_name("GET")
256-
server = spans.by_name("BadHandler.get")
257+
server = spans.by_name("GET /error")
257258

258-
self.assertEqual(server.name, "BadHandler.get")
259+
self.assertEqual(server.name, "GET /error")
259260
self.assertEqual(server.kind, SpanKind.SERVER)
260261
self.assertSpanHasAttributes(
261262
server,
@@ -290,7 +291,7 @@ def test_404(self):
290291
self.assertEqual(len(spans), 2)
291292
server, client = spans
292293

293-
self.assertEqual(server.name, "ErrorHandler.get")
294+
self.assertEqual(server.name, "GET /missing-url")
294295
self.assertEqual(server.kind, SpanKind.SERVER)
295296
self.assertSpanHasAttributes(
296297
server,
@@ -325,7 +326,7 @@ def test_http_error(self):
325326
self.assertEqual(len(spans), 2)
326327
server, client = spans
327328

328-
self.assertEqual(server.name, "RaiseHTTPErrorHandler.get")
329+
self.assertEqual(server.name, "GET /raise_403")
329330
self.assertEqual(server.kind, SpanKind.SERVER)
330331
self.assertSpanHasAttributes(
331332
server,
@@ -366,7 +367,7 @@ def test_dynamic_handler(self):
366367
self.assertEqual(len(spans), 2)
367368
server, client = spans
368369

369-
self.assertEqual(server.name, "DynamicHandler.get")
370+
self.assertEqual(server.name, "GET /dyna")
370371
self.assertTrue(server.parent.is_remote)
371372
self.assertNotEqual(server.parent, client.context)
372373
self.assertEqual(server.parent.span_id, client.context.span_id)
@@ -407,7 +408,7 @@ def test_handler_on_finish(self):
407408
self.assertEqual(len(spans), 3)
408409
auditor, server, client = spans
409410

410-
self.assertEqual(server.name, "FinishedHandler.get")
411+
self.assertEqual(server.name, "GET /on_finish")
411412
self.assertTrue(server.parent.is_remote)
412413
self.assertNotEqual(server.parent, client.context)
413414
self.assertEqual(server.parent.span_id, client.context.span_id)
@@ -531,7 +532,7 @@ def test_xheaders(self):
531532
self.assertEqual(response.code, 201)
532533
spans = self.get_finished_spans()
533534
self.assertSpanHasAttributes(
534-
spans.by_name("MainHandler.get"),
535+
spans.by_name("GET /"),
535536
{
536537
SpanAttributes.HTTP_METHOD: "GET",
537538
SpanAttributes.HTTP_SCHEME: "http",
@@ -605,7 +606,7 @@ def test_uninstrument(self):
605606
self.assertEqual(len(spans), 3)
606607
manual, server, client = self.sorted_spans(spans)
607608
self.assertEqual(manual.name, "manual")
608-
self.assertEqual(server.name, "MainHandler.get")
609+
self.assertEqual(server.name, "GET /")
609610
self.assertEqual(client.name, "GET")
610611
self.memory_exporter.clear()
611612

0 commit comments

Comments
 (0)
Please sign in to comment.