Skip to content

Commit dca4f8d

Browse files
committed
Don't use root span on the WrapperRouter for molten, because that will return the api gateway span after these changes.
1 parent 9d5fb38 commit dca4f8d

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

ddtrace/contrib/internal/molten/wrappers.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from ddtrace.ext import http
99
from ddtrace.internal.constants import COMPONENT
1010
from ddtrace.internal.utils.importlib import func_name
11+
from ddtrace.internal import core
1112
from ddtrace.trace import Pin
1213

1314

@@ -107,16 +108,17 @@ def match(self, *args, **kwargs):
107108
route.method,
108109
route.template,
109110
)
110-
root_span = pin.tracer.current_root_span()
111-
root_span.resource = resource
111+
112+
molten_span = core.get_item('req_span')
113+
molten_span.resource = resource
112114

113115
# if no root route set make sure we record it based on this resolved
114116
# route
115-
if root_span:
116-
if not root_span.get_tag(MOLTEN_ROUTE):
117-
root_span.set_tag(MOLTEN_ROUTE, route.name)
118-
if not root_span.get_tag(http.ROUTE):
119-
root_span.set_tag_str(http.ROUTE, route.template)
117+
if molten_span:
118+
if not molten_span.get_tag(MOLTEN_ROUTE):
119+
molten_span.set_tag(MOLTEN_ROUTE, route.name)
120+
if not molten_span.get_tag(http.ROUTE):
121+
molten_span.set_tag_str(http.ROUTE, route.template)
120122

121123
return route, params
122124

tests/contrib/molten/test_molten.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -451,29 +451,32 @@ def test_inferred_spans_api_gateway_default(self):
451451
}
452452

453453
for setting_enabled in [False, True]:
454-
for test_headers in [distributed_headers, headers]:
454+
for test_headers in [headers, distributed_headers]:
455455
for test_endpoint in [
456456
{
457457
"endpoint": "/greet",
458458
"status": 200,
459-
"resource_name": "GET 200",
459+
"resource_name": "GET /greet",
460460
"http.route": "/greet",
461461
},
462462
{
463463
"endpoint": "/unhandlederror",
464464
"status": 500,
465-
"resource_name": "GET 500",
465+
"resource_name": "GET /unhandlederror",
466466
"http.route": "/unhandlederror",
467467
},
468468
{
469469
"endpoint": "/404",
470470
"status": 404,
471-
"resource_name": "GET 404",
471+
"resource_name": "GET /404",
472472
"http.route": "/404",
473473
},
474474
]:
475475
with override_global_config(dict(_inferred_proxy_services_enabled=setting_enabled)):
476-
self.make_request(headers=test_headers, route=test_endpoint["endpoint"])
476+
try:
477+
self.make_request(headers=test_headers, route=test_endpoint["endpoint"])
478+
except ZeroDivisionError:
479+
pass
477480

478481
traces = self.pop_traces()
479482
if setting_enabled:

0 commit comments

Comments
 (0)