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