Learn how to integrate Trifle::Traces into Sidekiq jobs.
Sidekiq
Trifle::Traces::Middleware::Sidekiq
uses Sidekiq server middleware. This way execution of a sidekiq job is wrapped in Trifle::Traces
middleware and automatically traced.
Configuration
The only required attribute is tracer_key
. Jobs arguments are automatically set as a meta
on a tracer
. If tracer_key
is missing, tracer
will not be initialized and therefore execution will not be traced.
class DeleteItemIfOld
include Sidekiq::Worker
sidekiq_options tracer_key: 'test/sidekiq/item/delete_if_old'
def perform(item_id)
@item_id = item_id
Trifle::Traces.tag("item:#{item_id}")
Trifle::Traces.trace('Check this out', head: true)
if item.too_old?
Trifle::Traces.trace('Item is too old.')
Trifle::Traces.trace('Deleting...') { item.destroy! }
else
Trifle::Traces.ignore!
end
end
def item
@item ||= Item.find(@item_id)
end
end
Inside of an callback you will be able to access tracer.key
with value 'test/sidekiq/item/delete_if_old
and tracer.meta
with value [123]
.