class Sidekiq::Tracer::ServerMiddleware
Attributes
opts[R]
tracer[R]
Public Class Methods
new(tracer: nil, opts: {})
click to toggle source
# File lib/sidekiq/tracer/server_middleware.rb, line 9 def initialize(tracer: nil, opts: {}) @tracer = tracer @opts = opts end
Public Instance Methods
call(worker, job, queue) { || ... }
click to toggle source
# File lib/sidekiq/tracer/server_middleware.rb, line 14 def call(worker, job, queue) parent_span_context = extract(job) if opts.fetch(:propagate_context, true) scope = tracer.start_active_span( operation_name(job), child_of: parent_span_context, tags: tags(job, 'server') ) 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
extract(job)
click to toggle source
# File lib/sidekiq/tracer/server_middleware.rb, line 36 def extract(job) carrier = job[TRACE_CONTEXT_KEY] return unless carrier tracer.extract(OpenTracing::FORMAT_TEXT_MAP, carrier) end