module NewRelic::Agent::Instrumentation::DelayedJob::Chain

Public Class Methods

instrument!() click to toggle source
# File lib/new_relic/agent/instrumentation/delayed_job/chain.rb, line 10
def self.instrument!
  Delayed::Worker.class_eval do
    include NewRelic::Agent::Instrumentation::DelayedJob

    def initialize_with_new_relic(*args)
      initialize_with_tracing { initialize_without_new_relic(*args) }
    end

    alias initialize_without_new_relic initialize
    alias initialize initialize_with_new_relic

    def install_newrelic_job_tracer
      Delayed::Job.class_eval do
        include NewRelic::Agent::Instrumentation::DelayedJobTracer

        alias_method(:invoke_job_without_new_relic, :invoke_job)

        def invoke_job(*args, &block)
          invoke_job_with_tracing { invoke_job_without_new_relic(*args, &block) }
        end
      end
    end
  end
end

Public Instance Methods

initialize_with_new_relic(*args) click to toggle source
# File lib/new_relic/agent/instrumentation/delayed_job/chain.rb, line 14
def initialize_with_new_relic(*args)
  initialize_with_tracing { initialize_without_new_relic(*args) }
end
install_newrelic_job_tracer() click to toggle source
# File lib/new_relic/agent/instrumentation/delayed_job/chain.rb, line 21
def install_newrelic_job_tracer
  Delayed::Job.class_eval do
    include NewRelic::Agent::Instrumentation::DelayedJobTracer

    alias_method(:invoke_job_without_new_relic, :invoke_job)

    def invoke_job(*args, &block)
      invoke_job_with_tracing { invoke_job_without_new_relic(*args, &block) }
    end
  end
end
invoke_job(*args, &block) click to toggle source
# File lib/new_relic/agent/instrumentation/delayed_job/chain.rb, line 27
def invoke_job(*args, &block)
  invoke_job_with_tracing { invoke_job_without_new_relic(*args, &block) }
end