Class: Trifle::Traces::Middleware::Sidekiq

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::ServerMiddleware
Defined in:
lib/trifle/traces/middleware/sidekiq.rb

Instance Method Summary collapse

Instance Method Details

#call(_worker, job, _queue) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/trifle/traces/middleware/sidekiq.rb', line 9

def call(_worker, job, _queue)
  Trifle::Traces.tracer = tracer_for(job: job)
  yield
rescue => e # rubocop:disable Style/RescueStandardError
  Trifle::Traces.tracer&.trace("Exception: #{e}", state: :error)
  Trifle::Traces.tracer&.fail!
  raise e
ensure
  Trifle::Traces.tracer&.wrapup
end

#tracer_for(job:) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/trifle/traces/middleware/sidekiq.rb', line 20

def tracer_for(job:)
  return nil unless job['tracer_key']

  Trifle::Traces.default.tracer_class.new(
    key: job['tracer_key'], meta: job['args']
  )
end