class ElasticAPM::Spies::SidekiqSpy::Middleware

@api private

def call(_worker, job, queue)

rubocop:disable Metrics/MethodLength
def call(_worker, job, queue)
  name = SidekiqSpy.name_for(job)
  transaction = ElasticAPM.transaction(name, 'Sidekiq')
  ElasticAPM.set_tag(:queue, queue)
  yield
  transaction.submit('success') if transaction
rescue ::Exception => e
  ElasticAPM.report(e, handled: false)
  transaction.submit(:error) if transaction
  raise
ensure
  transaction.release if transaction
end