lib/instana/instrumentation/active_job.rb in instana-1.217.0 vs lib/instana/instrumentation/active_job.rb in instana-1.217.1

- old
+ new

@@ -15,14 +15,13 @@ } } ::Instana::Tracer.trace(:activejob, tags) do context = ::Instana.tracer.context - job.arguments = [{ - given_arguments: job.arguments, - instana_context: context ? context.to_hash : nil - }] + job.arguments.append({ + instana_context: context ? context.to_hash : nil + }) block.call end end @@ -33,13 +32,12 @@ job: job.class.to_s, action: :perform, job_id: job.job_id } } - - incoming_context = if job.arguments.is_a?(Array) && job.arguments.first.is_a?(Hash) - instana_context = job.arguments.first[:instana_context] - job.arguments = job.arguments.first[:given_arguments] + incoming_context = if job.arguments.is_a?(Array) && job.arguments.last.is_a?(Hash) && job.arguments.last.key?(:instana_context) + instana_context = job.arguments.last[:instana_context] + job.arguments.pop instana_context ? ::Instana::SpanContext.new(instana_context[:trace_id], instana_context[:span_id]) : nil end ::Instana::Tracer.start_or_continue_trace(:activejob, tags, incoming_context) do block.call