module Airbrake::Rack

Rack is a namespace for all Rack-related code.

Public Class Methods

capture_timing(label) { || ... } click to toggle source

@since v9.2.0 @api public

# File lib/airbrake/rack.rb, line 18
def self.capture_timing(label)
  routes = Airbrake::Rack::RequestStore[:routes]
  if !routes || routes.none?
    result = yield
  else
    timed_trace = Airbrake::TimedTrace.span(label) do
      result = yield
    end

    routes.each do |_route_path, params|
      params[:groups].merge!(timed_trace.spans)
    end
  end

  result
end