module ElasticAPM::Spies::ResqueSpy::Ext

def perform

def perform
  name = @payload && @payload['class']&.to_s
  transaction = ElasticAPM.start_transaction(name, TYPE)
  super
  transaction&.done 'success'
  transaction&.outcome = Transaction::Outcome::SUCCESS
rescue ::Exception => e
  ElasticAPM.report(e, handled: false)
  transaction&.done 'error'
  transaction&.outcome = Transaction::Outcome::FAILURE
  raise
ensure
  ElasticAPM.end_transaction
end