Getting started with Rack
editGetting started with Rack
editAdd the gem to your Gemfile
:
gem 'elastic-apm'
Create a file config/elastic_apm.yml
:
server_url: http://localhost:8200 secret_token: ''
Include the middleware, start (and stop) Elastic APM when booting your app:
# config.ru app = lambda do |env| [200, {'Content-Type' => 'text/plain'}, ['ok']] end # Wraps all requests in transactions and reports exceptions use ElasticAPM::Middleware # Start an instance of the Agent ElasticAPM.start(service_name: 'NothingButRack') run app # Gracefully stop the agent when process exits. # Makes sure any pending transactions are sent. at_exit { ElasticAPM.stop }
Sinatra example
edit# Example config.ru require 'sinatra/base' class MySinatraApp < Sinatra::Base use ElasticAPM::Middleware # ... end # Takes optional ElasticAPM::Config values ElasticAPM.start(app: MySinatraApp, ...) # You can also do the following, which is equivalent to the above: # ElasticAPM::Sinatra.start(MySinatraApp, ...) run MySinatraApp at_exit { ElasticAPM.stop }
Grape example
edit# Example config.ru require 'grape' module Twitter class API < Grape::API use ElasticAPM::Middleware # ... end end # Start the agent and hook in your app ElasticAPM::Grape.start(Twitter::API, config) run Twitter::API