New Relic RPM Ruby Agent
Ruby Other
Latest commit e859dc1 Mar 1, 2017 @kenichi kenichi Merge pull request #1516 from ruby-agent/dev
4.0.0 RC 2 (updated CHANGELOG)
Failed to load latest commit information.
bin Scarier warning on nrdebug Dec 2, 2013
cert RUBY-1350: Update certificate with update_ca_bundle rake task. Aug 19, 2014
config RUBY-945 Run Unit Tests in Standalone Mode Nov 14, 2012
lib Merge pull request #1512 from ruby-agent/RUBY-1669_reintegrate_dep_de… Feb 22, 2017
recipes Add license header to source files Feb 22, 2013
test RUBY-1681 revert Exception#cause behavior, gate original_exception on… Feb 21, 2017
ui cleanup of warnings removal work Aug 2, 2016
vendor/gems/metric_parser-0.1.0.pre1 RUBY-1669 reintegrate dependency detection "gem" Feb 21, 2017
.gitignore Added test/performance/script/log/ to .gitignore Aug 29, 2014
.project Aptana .project file change May 18, 2011
.travis.yml RUBY-1668 initial test/ tree cleanup Feb 3, 2017
.yardopts Update CONTRIBUTING filename elsewhere in codebase Feb 18, 2016 4.0.0 changelog updates Feb 28, 2017 RUBY-1707 Remove references to old Ruby versions in Jan 26, 2017
Gemfile move dep from Gemfile to gemspec, note possible bundler issue Nov 29, 2016
Guardfile Run orphaned config tests on changes to default_source.rb Sep 10, 2014
LICENSE RUBY-1669 Remove TimerLib abstraction for Ruby 1.9 Feb 8, 2017 Update Oct 6, 2016
Rakefile RUBY-1695 cleanup/refactor multiverse lib code Jan 6, 2017 RUBY-1388: Remove unused config settings. Dec 3, 2014
init.rb Point customers to if they experience issues. Jan 17, 2014
install.rb Module namespace fixup Jul 22, 2014
newrelic.yml newrelic.yml: Avoid trailing whitespace in comment Jan 30, 2016
newrelic_rpm.gemspec RUBY-1522 Clean up gemspec Jan 20, 2017

New Relic Ruby Agent

New Relic is a performance management system, developed by New Relic, Inc ( It provides you with deep information about the performance of your Rails or Ruby application as it runs in production. The New Relic Ruby Agent is dual-purposed as a either a Gem or a Rails plugin, hosted on github.

The New Relic Ruby Agent runs in one of two modes:

Production Mode Low overhead instrumentation that captures detailed information on your application running in production and transmits them to where you can monitor them in real time.

Developer Mode A Rack middleware that maps /newrelic to an application for showing detailed performance metrics on a page by page basis. Installed automatically in Rails applications.

Supported Environments

An up-to-date list of Ruby versions and frameworks for the latest agent can be found on our docs site.

You can also monitor non-web applications. Refer to the "Other Environments" section under "Getting Started".

Contributing Code

We welcome code contributions (in the form of pull requests) from our user community. Before submitting a pull request please review these guidelines.

Following these helps us efficiently review and incorporate your contribution and avoid breaking your code with future changes to the agent.

Getting Started

Add the Ruby Agent to your project's Gemfile.

gem 'newrelic_rpm'

To monitor your applications in production, create an account at . There you can sign up for a free Lite account or one of our paid subscriptions.

Once you receive the welcome email with a license key and newrelic.yml file, you can copy the newrelic.yml file into your app config directory OR can generate the file manually with command:

newrelic install --license_key="YOUR_KEY" "My application"

The initial configuration is done in the newrelic.yml file. This file is by default read from the config directory of the application root and is subsequently searched for in the application root directory, and then in a ~/.newrelic directory. Once you're up and running you can enable Server Side Config and manage your newrelic configuration from the web UI.

Rails Installation

You can install the agent as a Gem:

For Bundler:

Add the following line to your Gemfile:

gem 'newrelic_rpm'

For Rails 2.x without Bundler:

edit environment.rb and add to the initalizer block:

config.gem "newrelic_rpm"

Sinatra Installation

To use the Ruby Agent with a Sinatra app, add:

require 'newrelic_rpm'

in your Sinatra app, below the Sinatra require directive.

Then make sure you set RACK_ENV to the environment corresponding to the configuration definitions in the newrelic.yml file; e.g., development, staging, production, etc.

To use Developer Mode in Sinatra, add NewRelic::Rack::DeveloperMode to the middleware stack. See the sample below.

Other Environments

You can use the Ruby Agent to monitor any Ruby application. Add:

require 'newrelic_rpm'

to your startup sequence and then manually start the agent using:


For information about instrumenting pure Rack applications, see our Rack middlewares documentation.

Refer to the New Relic's Docs for details on how to monitor other web frameworks, background jobs, and daemons.

The Ruby Agent provides an API that allows custom instrumentation of additional frameworks. You can find a list of community created intrumentation plugins (e.g. newrelic-redis) in the extends_newrelic_rpm project.

Developer Mode

When running the Developer Mode, the Ruby Agent will track the performance of every HTTP request serviced by your application, and store in memory this information for the last 100 HTTP transactions.

To view this performance information, including detailed SQL statement analysis, open /newrelic in your web application. For instance if you are running mongrel or thin on port 3000, enter the following into your browser:


Developer Mode is only initialized if the developer_mode setting in the newrelic.yml file is set to true. By default, it is turned off in all environments but development.

Developer Mode in Rails

Developer Mode is available automatically in Rails Applications based on Rails 2.3 and later. No additional configuration is required. When your application starts and developer_mode is enabled, the Ruby Agent injects a middleware into your Rails middleware stack.

For earlier versions of Rails that support Rack, you can use a as below.

Developer Mode in Rack Applications

Developer Mode is available for any Rack based application such as Sinatra by installing the NewRelic::Rack::DeveloperMode middleware. This middleware passes all requests that do not start with /newrelic.

Here's an example entry for Developer Mode in a file:

require 'new_relic/rack/developer_mode'
use NewRelic::Rack::DeveloperMode

Production Mode

When your application runs in the production environment, the New Relic agent runs in production mode. It connects to the New Relic service and sends deep performance data to the UI for your analysis. To view this data, log in to

NOTE: You must have a valid account and license key to view this data online. Refer to instructions in Getting Started.

Recording Deploys

The Ruby Agent supports recording deployments in New Relic via a command line tool or Capistrano recipes. For more information on these features see our deployment documentation for more information.


You can find more detailed documentation on our website, and specifically in the Ruby category.

If you can't find what you're looking for there, reach out to us on our support site or our community forum and we'll be happy to help you.

Also available is community support on IRC: we generally use #newrelic on

Find a bug? Contact us via, or email

Thank you, and may your application scale to infinity plus one.

Lew Cirne, Founder and CEO

New Relic, Inc.