module OneApm::Agent::Instrumentation::Rack

Public Class Methods

extended(middleware) click to toggle source
# File lib/one_apm/inst/rack/rack.rb, line 28
def self.extended middleware
  middleware.class_eval do
    class << self
      alias call_without_oneapm call
      alias call call_with_oneapm
    end
  end
end
included(middleware) click to toggle source
# File lib/one_apm/inst/rack/rack.rb, line 21
def self.included middleware
  middleware.class_eval do
    alias call_without_oneapm call
    alias call call_with_oneapm
  end
end

Public Instance Methods

_oa_has_middleware_tracing() click to toggle source
# File lib/one_apm/inst/rack/rack.rb, line 37
def _oa_has_middleware_tracing
  true
end
call_with_oneapm(*args) click to toggle source
# File lib/one_apm/inst/rack/rack.rb, line 11
def call_with_oneapm(*args)
  @oneapm_request = ::Rack::Request.new(args.first)
  perform_action_with_oneapm_trace(:category => :middleware, :request => @oneapm_request) do
    result = call_without_oneapm(*args)
    # Ignore cascaded calls
    Transaction.abort_transaction! if result.first == 404
    result
  end
end
oneapm_request_headers(_) click to toggle source
# File lib/one_apm/inst/rack/rack.rb, line 7
def oneapm_request_headers(_)
  @oneapm_request.env
end