class Sidekiq::Tracer::ClientMiddleware
Attributes
active_span[R]
tracer[R]
Public Class Methods
new(tracer:, active_span:)
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 10 def initialize(tracer:, active_span:) @tracer = tracer @active_span = active_span end
Public Instance Methods
call(_worker_class, job, _queue, _redis_pool) { || ... }
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 15 def call(_worker_class, job, _queue, _redis_pool) span = build_span(job) inject(span, job) yield rescue StandardError => e tag_errors(span, e) if span raise ensure span&.finish end
Private Instance Methods
build_span(job)
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 30 def build_span(job) tracer.start_span(operation_name(job), child_of: active_span.respond_to?(:call) ? active_span.call : active_span, tags: tags(job, "producer")) end
inject(span, job)
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 41 def inject(span, job) carrier = {} tracer.inject(span.context, OpenTracing::FORMAT_TEXT_MAP, carrier) job[TRACE_CONTEXT_KEY] = carrier end
tag_errors(span, error)
click to toggle source
# File lib/sidekiq/tracer/client_middleware.rb, line 36 def tag_errors(span, error) span.set_tag("error", true) span.log(event: "error", 'error.object': error) end