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

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

Overview

Since Rails 7.1 ‘Router#find_routes` makes the route computation lazy github.com/rails/rails/commit/35b280fcc2d5d474f9f2be3aca3ae7aa6bba66eb

Instance Method Summary collapse

Instance Method Details

#find_routes(req) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb', line 66

def find_routes(req)
  super do |match, parameters, route|
    if 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])
    end

    yield [match, parameters, route]
  end
end