class AppPerfRpm::SidekiqClient
Public Instance Methods
call(*args) { || ... }
click to toggle source
# File lib/app_perf_rpm/instruments/sidekiq.rb, line 46 def call(*args) worker, msg, queue = args if ::AppPerfRpm::Tracer.tracing? operation = "Sidekiq_#{queue}##{msg["wrapped"]}" span = AppPerfRpm.tracer.start_span(operation, tags: { "component" => "Sidekiq", "span.kind" => "client", "http.url" => "/sidekiq/#{queue}/#{msg['wrapped']}", "peer.address" => Socket.gethostname, "bg.queue" => queue, "bg.job_name" => worker.class.to_s }) AppPerfRpm::Utils.log_source_and_backtrace(span, :sidekiq) inject(span, msg) end yield rescue Exception => e if span span.set_tag('error', true) span.log_error(e) end raise ensure span.finish if span end
Private Instance Methods
inject(span, job)
click to toggle source
# File lib/app_perf_rpm/instruments/sidekiq.rb, line 77 def inject(span, job) carrier = {} AppPerfRpm.tracer.inject(span.context, OpenTracing::FORMAT_TEXT_MAP, carrier) job[AppPerfRpm::TRACE_CONTEXT_KEY] = carrier end