def instrument_call
::Grape::API.class_eval do
def call_with_new_relic(env)
begin
response = call_without_new_relic(env)
ensure
begin
endpoint = env[::NewRelic::Agent::Instrumentation::GrapeInstrumentation::API_ENDPOINT]
version = env[::NewRelic::Agent::Instrumentation::GrapeInstrumentation::API_VERSION]
::NewRelic::Agent::Instrumentation::GrapeInstrumentation.handle_transaction(endpoint, self.class.name, version)
rescue => e
::NewRelic::Agent.logger.warn("Error in Grape instrumentation", e)
end
end
response
end
alias_method :call_without_new_relic, :call
alias_method :call, :call_with_new_relic
end
end