lib/opentelemetry/instrumentation/sidekiq/middlewares/client/tracer_middleware.rb in opentelemetry-instrumentation-sidekiq-0.16.0 vs lib/opentelemetry/instrumentation/sidekiq/middlewares/client/tracer_middleware.rb in opentelemetry-instrumentation-sidekiq-0.17.0
- old
+ new
@@ -13,25 +13,31 @@
# by way of its middleware system
class TracerMiddleware
def call(_worker_class, job, _queue, _redis_pool)
tracer.in_span(
span_name(job),
- attributes: {
- 'messaging.system' => 'sidekiq',
- 'messaging.sidekiq.job_class' => job['wrapped']&.to_s || job['class'],
- 'messaging.message_id' => job['jid'],
- 'messaging.destination' => job['queue'],
- 'messaging.destination_kind' => 'queue'
- },
+ attributes: build_attributes(job),
kind: :producer
) do |span|
OpenTelemetry.propagation.inject(job)
span.add_event('created_at', timestamp: job['created_at'])
yield
end
end
private
+
+ def build_attributes(job)
+ attributes = {
+ 'messaging.system' => 'sidekiq',
+ 'messaging.sidekiq.job_class' => job['wrapped']&.to_s || job['class'],
+ 'messaging.message_id' => job['jid'],
+ 'messaging.destination' => job['queue'],
+ 'messaging.destination_kind' => 'queue'
+ }
+ attributes['peer.service'] = config[:peer_service] if config[:peer_service]
+ attributes
+ end
def span_name(job)
if config[:enable_job_class_span_names]
"#{job['wrapped']&.to_s || job['class']} enqueue"
else