lib/instana/instrumentation/resque.rb in instana-1.202.0 vs lib/instana/instrumentation/resque.rb in instana-1.203.0
- old
+ new
@@ -26,10 +26,11 @@
def enqueue(klass, *args)
if Instana.tracer.tracing?
kvs = collect_kvs(:enqueue, klass, args)
Instana.tracer.trace(:'resque-client', kvs) do
+ args.push(::Instana.tracer.context.to_hash)
super(klass, *args)
end
else
super(klass, *args)
end
@@ -39,10 +40,11 @@
if Instana.tracer.tracing? && !Instana.tracer.tracing_span?(:'resque-client')
kvs = collect_kvs(:enqueue_to, klass, args)
kvs[:Queue] = queue.to_s if queue
Instana.tracer.trace(:'resque-client', kvs) do
+ args.push(::Instana.tracer.context.to_hash)
super(queue, klass, *args)
end
else
super(queue, klass, *args)
end
@@ -74,10 +76,18 @@
kvs[:'resque-worker'][:queue] = job.queue
rescue => e
::Instana.logger.debug { "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" } if Instana::Config[:verbose]
end
- Instana.tracer.start_or_continue_trace(:'resque-worker', kvs) do
+ trace_context = if job.payload['args'][-1].is_a?(Hash) && job.payload['args'][-1].keys.include?('trace_id')
+ context_from_wire = job.payload['args'].pop
+ ::Instana::SpanContext.new(
+ context_from_wire['trace_id'],
+ context_from_wire['span_id']
+ )
+ end
+
+ Instana.tracer.start_or_continue_trace(:'resque-worker', kvs, trace_context) do
super(job)
end
end
end