class Mmtrix::SidekiqInstrumentation

Public Class Methods

default_trace_args(msg) click to toggle source
# File lib/mmtrix/agent/instrumentation/sidekiq.rb, line 37
def self.default_trace_args(msg)
  {
    :name => 'perform',
    :class_name => msg['class'],
    :category => 'OtherTransaction/SidekiqJob'
  }
end

Public Instance Methods

call(worker, msg, queue, *_) { || ... } click to toggle source

Client middleware has additional parameters, and our tests use the middleware client-side to work inline.

# File lib/mmtrix/agent/instrumentation/sidekiq.rb, line 22
def call(worker, msg, queue, *_)
  trace_args = if worker.respond_to?(:mmtrix_trace_args)
    worker.mmtrix_trace_args(msg, queue)
  else
    self.class.default_trace_args(msg)
  end

  perform_action_with_mmtrix_trace(trace_args) do
    Mmtrix::Agent::Transaction.merge_untrusted_agent_attributes(msg['args'], :'job.sidekiq.args',
      Mmtrix::Agent::AttributeFilter::DST_NONE)

    yield
  end
end