class Datadog::Contrib::DelayedJob::Plugin
DelayedJob
plugin that instruments invoke_job hook
Public Class Methods
configuration()
click to toggle source
# File lib/ddtrace/contrib/delayed_job/plugin.rb, line 46 def self.configuration Datadog.configuration[:delayed_job] end
flush(worker) { |worker| ... }
click to toggle source
# File lib/ddtrace/contrib/delayed_job/plugin.rb, line 40 def self.flush(worker, &block) yield worker tracer.shutdown! if tracer && tracer.enabled end
instrument(job) { |job| ... }
click to toggle source
# File lib/ddtrace/contrib/delayed_job/plugin.rb, line 10 def self.instrument(job, &block) return block.call(job) unless tracer && tracer.enabled # When DelayedJob is used through ActiveJob, we need to parse the payload differentely # to get the actual job name job_name = if job.payload_object.respond_to?(:job_data) job.payload_object.job_data['job_class'] else job.name end tracer.trace(Ext::SPAN_JOB, service: configuration[:service_name], resource: job_name) do |span| # Set analytics sample rate if Contrib::Analytics.enabled?(configuration[:analytics_enabled]) Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate]) end # Measure service stats Contrib::Analytics.set_measured(span) span.set_tag(Ext::TAG_ID, job.id) span.set_tag(Ext::TAG_QUEUE, job.queue) if job.queue span.set_tag(Ext::TAG_PRIORITY, job.priority) span.set_tag(Ext::TAG_ATTEMPTS, job.attempts) span.span_type = Datadog::Ext::AppTypes::WORKER yield job end end
tracer()
click to toggle source
# File lib/ddtrace/contrib/delayed_job/plugin.rb, line 50 def self.tracer configuration[:tracer] end