class ElasticAPM::Spies::ResqueSpy
@api private
def install
def install install_perform_spy end
def install_perform_spy
def install_perform_spy ::Resque::Job.class_eval do alias :perform_without_elastic_apm :perform def perform name = @payload && @payload['class']&.to_s transaction = ElasticAPM.start_transaction(name, TYPE) perform_without_elastic_apm transaction.done 'success' rescue ::Exception => e ElasticAPM.report(e, handled: false) transaction.done 'error' if transaction raise ensure ElasticAPM.end_transaction end end end
def perform
def perform name = @payload && @payload['class']&.to_s transaction = ElasticAPM.start_transaction(name, TYPE) perform_without_elastic_apm transaction.done 'success' rescue ::Exception => e ElasticAPM.report(e, handled: false) transaction.done 'error' if transaction raise ensure ElasticAPM.end_transaction end