Class: Mnemosyne::Probes::Sidekiq::Client::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/mnemosyne/probes/sidekiq/client.rb

Instance Method Summary collapse

Instance Method Details

#call(_worker, job, _queue, _redis) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mnemosyne/probes/sidekiq/client.rb', line 18

def call(_worker, job, _queue, _redis)
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
    meta = {
      worker: job['class'],
      queue: job['queue'],
      arguments: job['args'],
      raw: job.clone
    }

    span = ::Mnemosyne::Span.new('external.job.sidekiq', meta: meta)
    span.finish! oneshot: true

    job['mnemosyne.transaction'] = trace.transaction
    job['mnemosyne.origin'] = span.uuid

    trace << span
  end

  yield
end