lib/airbrake/rack.rb
# frozen_string_literal: true require 'airbrake/rack/user' require 'airbrake/rack/user_filter' require 'airbrake/rack/context_filter' require 'airbrake/rack/session_filter' require 'airbrake/rack/http_params_filter' require 'airbrake/rack/http_headers_filter' require 'airbrake/rack/request_body_filter' require 'airbrake/rack/route_filter' require 'airbrake/rack/middleware' require 'airbrake/rack/request_store' require 'airbrake/rack/instrumentable' module Airbrake # Rack is a namespace for all Rack-related code. module Rack # @since v9.2.0 # @api public def self.capture_timing(label) return yield unless Airbrake::Config.instance.performance_stats 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 end end