class Sidekiq::Tracer::ClientMiddleware
Attributes
opts[R]
tracer[R]
Public Class Methods
new(tracer: nil, opts: {})
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 9 def initialize(tracer: nil, opts: {}) @tracer = tracer @opts = opts end
Public Instance Methods
call(worker_class, job, queue, redis_pool) { || ... }
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 14 def call(worker_class, job, queue, redis_pool) scope = tracer.start_active_span( operation_name(job), tags: tags(job, 'client') ) inject(scope.span, job) if opts.fetch(:propagate_context, true) yield rescue Exception => e if scope scope.span.set_tag('error', true) scope.span.log_kv(event: 'error', :'error.object' => e) end raise ensure scope.close if scope end
Private Instance Methods
inject(span, job)
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 32 def inject(span, job) carrier = {} tracer.inject(span.context, OpenTracing::FORMAT_TEXT_MAP, carrier) job[TRACE_CONTEXT_KEY] = carrier end