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