class Honeybadger::Plugins::Sidekiq::ServerMiddlewareInstrumentation

def call(worker, msg, queue, &block)

def call(worker, msg, queue, &block)
  context = if msg["wrapped"]
    {
      jid: msg["jid"],
      worker: msg["wrapped"],
      queue: queue
    }
  else
    {
      jid: msg["jid"],
      worker: msg["class"],
      queue: queue
    }
  end
  begin
    duration = Honeybadger.instrumentation.monotonic_timer { block.call }[0]
    status = "success"
  rescue
    status = "failure"
    raise
  ensure
    context[:duration] = duration
    context[:status] = status
    if Honeybadger.config.load_plugin_insights_events?(:sidekiq)
      Honeybadger.event("perform.sidekiq", context)
    end
    if Honeybadger.config.load_plugin_insights_metrics?(:sidekiq)
      metric_source "sidekiq"
      gauge "perform", context.slice(:worker, :queue, :duration)
    end
  end
end