class Mnemosyne::Probes::Sidekiq::Client::Middleware

Public Instance Methods

call(_worker, job, _queue, _redis) { || ... } click to toggle source
# 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