lib/ddtrace/contrib/sidekiq/tracer.rb in ddtrace-0.5.0 vs lib/ddtrace/contrib/sidekiq/tracer.rb in ddtrace-0.6.0

- old
+ new

@@ -23,11 +23,11 @@ trace_agent_port: Datadog::Writer::PORT }.freeze # Middleware is a Sidekiq server-side middleware which traces executed jobs class Tracer - def initialize(options) + def initialize(options = {}) # check if Rails configuration is available and use it to override # Sidekiq defaults rails_config = ::Rails.configuration.datadog_trace rescue {} base_config = DEFAULT_CONFIG.merge(rails_config) user_config = base_config.merge(options) @@ -52,10 +52,17 @@ ) end def call(worker, job, queue) @tracer.trace('sidekiq.job', service: @sidekiq_service, span_type: 'job') do |span| - span.resource = job['class'] + if job['wrapped'] + # If class is wrapping something else, the interesting resource info + # is the underlying, wrapped class, and not the wrapper. + span.resource = job['wrapped'] + span.set_tag('sidekiq.job.wrapper', job['class']) + else + span.resource = job['class'] + end span.set_tag('sidekiq.job.id', job['jid']) span.set_tag('sidekiq.job.retry', job['retry']) span.set_tag('sidekiq.job.queue', job['queue']) yield end