class ElasticAPM::Spies::DelayedJobSpy

def self.invoke_job(job, *args, &block)

def self.invoke_job(job, *args, &block)
  job_name = job_name(job)
  transaction = ElasticAPM.start_transaction(job_name, TYPE)
  job.invoke_job_without_apm(*args, &block)
  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