Class: TraceView::SidekiqClient
- Inherits:
-
Object
- Object
- TraceView::SidekiqClient
- Defined in:
- lib/traceview/inst/sidekiq-client.rb
Instance Method Summary collapse
Instance Method Details
#call(*args) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 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.}" end report_kvs end |