class TraceView::SidekiqClient
Public Instance Methods
call(0: worker_class, 1: msg, 2: queue, 3: redis_pool) { || ... }
click to toggle source
# File lib/traceview/inst/sidekiq-client.rb, line 28 def call(*args) # args: 0: worker_class, 1: msg, 2: queue, 3: redis_pool report_kvs = collect_kvs(args) TraceView::API.log_entry(:'sidekiq-client', report_kvs) args[1]['SourceTrace'] = TraceView::Context.toString if TraceView.tracing? result = yield report_kvs = { :JobID => result['jid'] } result rescue => e TraceView::API.log_exception(:'sidekiq-client', e, report_kvs) raise ensure TraceView::API.log_exit(:'sidekiq-client', report_kvs) end
collect_kvs(args)
click to toggle source
# File lib/traceview/inst/sidekiq-client.rb, line 6 def collect_kvs(args) begin # Attempt to collect up pertinent info. If we hit something unexpected, # keep calm and instrument on. report_kvs = {} worker_class, msg, queue, _ = args report_kvs[:Spec] = :pushq report_kvs[:Flavor] = :sidekiq report_kvs[:Queue] = queue report_kvs[:Retry] = msg['retry'] report_kvs[:JobName] = worker_class report_kvs[:MsgID] = msg['jid'] report_kvs[:Args] = msg['args'].to_s[0..1024] if TV::Config[:sidekiqclient][:log_args] report_kvs[:Backtrace] = TV::API.backtrace if TV::Config[:sidekiqclient][:collect_backtraces] rescue => e TraceView.logger.warn "[traceview/sidekiq] Non-fatal error capturing KVs: #{e.message}" end report_kvs end