Sha256: 430862cbfc023b7d537ccf27823f3dc546dcc90adf442f46c13168e7ed696eb9

Contents?: true

Size: 1.18 KB

Versions: 13

Compression:

Stored size: 1.18 KB

Contents

# This installs some code to manually start the agent when a delayed job worker starts.
# It's not really instrumentation.  It's more like a hook from DJ to RPM so it gets
# loaded at the time the RPM plugin initializes, which must be before the DJ worker
# initializes.  Loaded from control.rb
module NewRelic
  module DelayedJobInjection
    extend self
    attr_accessor :worker_name
  end
end

Delayed::Worker.class_eval do
  def initialize_with_new_relic(*args)
    initialize_without_new_relic(*args)
    worker_name = case
    when self.respond_to?(:name) then self.name
    when self.class.respond_to?(:default_name) then self.class.default_name
    end
    dispatcher_instance_id = worker_name || "host:#{Socket.gethostname} pid:#{Process.pid}" rescue "pid:#{Process.pid}"
    say "RPM Monitoring DJ worker #{dispatcher_instance_id}"
    NewRelic::DelayedJobInjection.worker_name = worker_name
    NewRelic::Control.instance.init_plugin :dispatcher => :delayed_job, :dispatcher_instance_id => dispatcher_instance_id
  end

  alias initialize_without_new_relic initialize
  alias initialize initialize_with_new_relic
end if defined?(::Delayed::Worker) and not NewRelic::Control.instance['disable_dj']

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
newrelic_rpm-2.13.4.rum6 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4.rum5 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4.rum4 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.5.beta4 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.5.beta3 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.5.beta2 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.5.beta1 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4.eum3 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4.eum2 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4.eum1 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.4 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.3 lib/new_relic/delayed_job_injection.rb
newrelic_rpm-2.13.3.beta lib/new_relic/delayed_job_injection.rb