class OpenTelemetry::Instrumentation::Sidekiq::Middlewares::Client::TracerMiddleware
TracerMiddleware
propagates context and instruments Sidekiq
client by way of its middleware system
Public Instance Methods
call(_worker_class, job, _queue, _redis_pool) { || ... }
click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/middlewares/client/tracer_middleware.rb, line 15 def call(_worker_class, job, _queue, _redis_pool) # rubocop:disable Metrics/AbcSize 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] span_name = case config[:span_naming] when :job_class then "#{job['wrapped']&.to_s || job['class']} send" else "#{job['queue']} send" end tracer.in_span(span_name, attributes: attributes, kind: :producer) do |span| OpenTelemetry.propagation.inject(job) span.add_event('created_at', timestamp: job['created_at']) yield end end
Private Instance Methods
config()
click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/middlewares/client/tracer_middleware.rb, line 39 def config Sidekiq::Instrumentation.instance.config end
tracer()
click to toggle source
# File lib/opentelemetry/instrumentation/sidekiq/middlewares/client/tracer_middleware.rb, line 43 def tracer Sidekiq::Instrumentation.instance.tracer end