Closed patatepartie closed 2 years ago
In the end, I was able to make it work, to a satisfying level, by configuring trace_poller_enqueue: true
.
Delayed executions and also retried jobs (which I discovered later had the same issue), will now get traces.
Those will be children of Sidekiq::Scheduled::Poller#enqueue
and the process
spans will not be correlated to the original send
spans, unfortunately, but that's good enough for my case.
I think the documentation of the library is lacking. There is no description of what the options do or how they interact with each other, and we have to dig into the code of both the instrumentation and instrumented libraries, to understand what's going on.
Thanks for the report and the feedback on docs @patatepartie! I have made an issue to improve the docs for sidekiq instrumentation.
Thank you @plantfansam. Let me know if there's anything I can do to help.
Those will be children of
Sidekiq::Scheduled::Poller#enqueue
and theprocess
spans will not be correlated to the originalsend
spans, unfortunately, but that's good enough for my case.
Is there any way to correlate spans with original send spans?
Description of the bug
Using Sidekiq with Sidekiq's instrumentation
propagation_style
set to:child
, when delaying the execution of a worker usingperform_in(sec, params)
orperform_at(timestamp, params)
, a span is produced for the enqueueing (send
) but no span is ever produced for the execution itself (process
).If
propagation_style
is not set (it defaults tolink
), the span forprocess
will be produced.Executing the worker asynchronously, with
perform_async(params)
, works correctly regardless of the value ofpropagation_style
.Share details about your runtime
Operating system details: Linux, Debian 10.10 (in docker) RUBY_ENGINE: "ruby" RUBY_VERSION: "3.0.1" RUBY_DESCRIPTION: "ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]"
Share a simplified reproduction if possible
The
perform_async
call will show a span forExampleWorker send
and another forExampleWorker process
, while theperform_in
call will only show a span forExampleWorker send
.