Module: Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation::Journey::Router

Defined in:
lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb

Overview

Instrumentation for ActionDispatch::Journey::Router for Rails versions older than 7.1

Instance Method Summary collapse

Instance Method Details

#find_routes(req) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb', line 45

def find_routes(req)
  # result is an array of [match, parameters, route] tuples
  result = super
  result.each do |_, _, route|
    next unless Instrumentation.dispatcher_route?(route)

    http_route = route.path.spec.to_s
    http_route.delete_suffix!(FORMAT_SUFFIX)

    Instrumentation.set_http_route_tags(http_route, req.env[SCRIPT_NAME_KEY])

    break
  end

  result
end