# encoding: utf-8 require 'one_apm/inst/framework/sinatra' LibraryDetection.defer do @name = :padrino depends_on do !OneApm::Manager.config[:disable_sinatra] && defined?(::Padrino) && defined?(::Padrino::Routing::InstanceMethods) end executes do OneApm::Manager.logger.info 'Installing Padrino instrumentation' # Our Padrino instrumentation relies heavily on the fact that Padrino is # built on Sinatra. Although it wires up a lot of its own routing logic, # we only need to patch into Padrino's dispatch to get things started. # # Parts of the Sinatra instrumentation (such as the TransactionNamer) are # aware of Padrino as a potential target in areas where both Sinatra and # Padrino run through the same code. module ::Padrino::Routing::InstanceMethods include OneApm::Agent::Instrumentation::Sinatra alias dispatch_without_oneapm dispatch! alias dispatch! dispatch_with_oneapm end end end