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

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

Overview

Instrumentation for ActionDispatch components

Defined Under Namespace

Modules: Journey

Constant Summary collapse

SCRIPT_NAME_KEY =
"SCRIPT_NAME"
FORMAT_SUFFIX =
"(.:format)"
DATADOG_RAILS_ROUTE_ENV_KEY =

NOTE: Rails 8.1.1+ natively provides the same object via 'action_dispatch.route'.

"datadog.action_dispatch.route"

Class Method Summary collapse

Class Method Details

.dispatcher_route?(route) ⇒ Boolean



34
35
36
37
38
39
40
41
# File 'lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb', line 34

def dispatcher_route?(route)
  return true if route.dispatcher?

  # in Rails 4 there is no #rack_app method on the app
  return true if route.app.respond_to?(:rack_app) && !route.app.rack_app.nil?

  false
end

.set_http_route_tags(route_spec, route_path) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb', line 19

def set_http_route_tags(route_spec, route_path)
  return unless Tracing.enabled?

  return unless route_spec

  request_trace = Tracing.active_trace
  return unless request_trace

  request_trace.set_tag(Tracing::::Ext::HTTP::TAG_ROUTE, route_spec)

  if route_path && !route_path.empty?
    request_trace.set_tag(Tracing::::Ext::HTTP::TAG_ROUTE_PATH, route_path)
  end
end