in lib/elastic_apm/spies/rake.rb [26:54]
def execute(*args)
agent = ElasticAPM.start
unless agent && agent.config.instrumented_rake_tasks.include?(name)
return super(*args)
end
transaction =
ElasticAPM.start_transaction("Rake::Task[#{name}]", 'Rake')
begin
result = super(*args)
transaction&.result = 'success'
transaction&.outcome = Transaction::Outcome::SUCCESS
rescue StandardError => e
transaction&.result = 'error'
transaction&.outcome = Transaction::Outcome::FAILURE
ElasticAPM.report(e)
raise
ensure
ElasticAPM.end_transaction
ElasticAPM.stop
end
result
end