Sha256: dfb8f6264a26b4a8a8d0d29eaeb02a48eee23f1ce8f2bfe52a9dc4fed262734b

Contents?: true

Size: 1.02 KB

Versions: 39

Compression:

Stored size: 1.02 KB

Contents

# encoding: utf-8

require 'one_apm/inst/transaction_base'
require 'one_apm/inst/rack/rack'
require 'one_apm/inst/rack/rack_builder'

LibraryDetection.defer do
  named :rack

  depends_on do
    defined?(::Rack) && defined?(::Rack::Builder)
  end

  executes do
    OneApm::Manager.logger.info 'Installing deferred Rack instrumentation'

    class ::Rack::Builder
      class << self
        attr_accessor :_oa_deferred_detection_ran
      end
      self._oa_deferred_detection_ran = false

      include ::OneApm::Agent::Instrumentation::RackBuilder

      alias_method :to_app_without_oneapm, :to_app
      alias_method :to_app, :to_app_with_oneapm_deferred_library_detection

      unless OneApm::Manager.config[:disable_rack_middleware]
        OneApm::Manager.logger.info 'Installing Rack::Builder middleware instrumentation'
        alias_method :run_without_oneapm, :run
        alias_method :run, :run_with_oneapm

        alias_method :use_without_oneapm, :use
        alias_method :use, :use_with_oneapm
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
oneapm_rpm-1.4.2 lib/one_apm/inst/rack.rb
oneapm_rpm-1.4.1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.4.0 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.7 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.7.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.6 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.5 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.4 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.3 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.3.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.2 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.2.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.1.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.0 lib/one_apm/inst/rack.rb
oneapm_rpm-1.3.0.rc1 lib/one_apm/inst/rack.rb
oneapm_rpm-1.2.9 lib/one_apm/inst/rack.rb