module NewRelic::Agent::Instrumentation::PadrinoTracer::Chain

Public Class Methods

instrument!() click to toggle source
# File lib/new_relic/agent/instrumentation/padrino/chain.rb, line 10
def self.instrument!
  ::Padrino::Routing::InstanceMethods.module_eval do
    include NewRelic::Agent::Instrumentation::Sinatra

    def dispatch_with_newrelic
      dispatch_with_tracing { dispatch_without_newrelic }
    end

    alias dispatch_without_newrelic dispatch!
    alias dispatch! dispatch_with_newrelic

    # Padrino 0.13 mustermann routing
    if private_method_defined?(:invoke_route)
      include NewRelic::Agent::Instrumentation::Padrino

      def invoke_route_with_newrelic(*args, &block)
        invoke_route_with_tracing(*args) { invoke_route_without_newrelic(*args, &block) }
      end

      alias invoke_route_without_newrelic invoke_route
      alias invoke_route invoke_route_with_newrelic
    end
  end
end

Public Instance Methods

dispatch_with_newrelic() click to toggle source
# File lib/new_relic/agent/instrumentation/padrino/chain.rb, line 14
def dispatch_with_newrelic
  dispatch_with_tracing { dispatch_without_newrelic }
end
invoke_route_with_newrelic(*args, &block) click to toggle source
# File lib/new_relic/agent/instrumentation/padrino/chain.rb, line 25
def invoke_route_with_newrelic(*args, &block)
  invoke_route_with_tracing(*args) { invoke_route_without_newrelic(*args, &block) }
end