Skip to content

Commit da7424f

Browse files
committed
Use already calculated inferred route in Rack middleware
1 parent 38aecd6 commit da7424f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

lib/datadog/tracing/contrib/rack/middlewares.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,11 @@ def set_route_and_endpoint_tags(trace:, request_span:, status:, env:)
255255
# which is SCRIPT_NAME + PATH_INFO for mounted rack applications
256256
full_path = env['SCRIPT_NAME'].to_s + env['PATH_INFO'].to_s
257257

258-
if (inferred_route = RouteFromPathInference.infer(full_path))
259-
set_endpoint_tag(request_span, inferred_route)
260-
end
258+
# Inferred route calculation might have been done already for AppSec API Security sampling,
259+
# in such case the calculation result is stored in request env
260+
inferred_route = env[Tracing::Contrib::Rack::Ext::DATADOG_INFERRED_ROUTE] || RouteFromPathInference.infer(full_path)
261+
262+
set_endpoint_tag(request_span, inferred_route) if inferred_route
261263
elsif !request_span.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ENDPOINT)
262264
set_endpoint_tag(request_span, request_span.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE))
263265
end

0 commit comments

Comments
 (0)