Sha256: 28ae3e00db6c9c82095fdd0d01870529f1db6b5b5fb3f869ce66f142a540a192

Contents?: true

Size: 1.66 KB

Versions: 23

Compression:

Stored size: 1.66 KB

Contents

# encoding: utf-8

LibraryDetection.defer do
  @name = :rabbitmq

  depends_on do
    defined?(::Bunny::VERSION) && !OneApm::Manager.config[:disable_rabbitmq]
  end

  executes do
    OneApm::Manager.logger.info 'Installing RabbitMQ instrumentation'
  end

  executes do
    ::Bunny::Session.class_eval do 

      include OneApm::Agent::Instrumentation::TransactionBase

      def trace_args(frame)
        class_name = frame.respond_to?(:method_class) ? frame.method_class.name : frame.class.name.downcase
        {
          :name => 'perform',
          :class_name => class_name,
          :category => 'OtherTransaction/RabbitMQ'
        }
      end

      def send_frame_with_oneapm(frame, signal_activity = true)
        perform_action_with_oneapm_trace(trace_args(frame)) do
          send_frame_without_oneapm(frame, signal_activity)
        end
      end
      alias :send_frame_without_oneapm :send_frame
      alias :send_frame :send_frame_with_oneapm

      def send_frameset_with_oneapm(frames, channel)
        perform_action_with_oneapm_trace(trace_args(frames[0])) do
          send_frameset_without_oneapm(frames, channel)
        end
      end
      alias :send_frameset_without_oneapm :send_frameset
      alias :send_frameset :send_frameset_with_oneapm

      def send_frame_without_timeout_with_oneapm(frame, signal_activity = true)
         perform_action_with_oneapm_trace(trace_args(frame)) do
           send_frame_without_timeout_wihout_oneapm(frame, signal_activity)
        end
      end
      alias :send_frame_without_timeout_wihout_oneapm :send_frame_without_timeout
      alias :send_frame_without_timeout :send_frame_without_timeout_with_oneapm

    end

  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

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