Ruby agent configuration (original) (raw)
You can configure the New Relic Ruby agent with settings in a configuration file, environment variables, or programmatically with server-side configuration. This document summarizes the configuration options available for the Ruby agent.
If the default value for a configuration option is (Dynamic)
, this means the Ruby agent calculates the default at runtime. The value for the config setting defaults to the value of another setting as appropriate.
Configuration methods and precedence
The primary (default) method to configure the Ruby agent is via the configuration file (newrelic.yml
) in the config
subdirectory. To set configuration values using environment variables:
- Add the prefix
NEW_RELIC_
to the setting's name. - Replace any periods
.
with underscores_
.
You can also configure a few values in the UI via server-side configuration.
The Ruby agent follows this order of precedence for configuration:
- Environment variables
- Server-side configuration
- Configuration file (
newrelic.yml
) - Default configuration settings
In other words, environment variables override all other configuration settings and info, server-side configuration overrides the configuration file and default config settings, and so on.
View and edit config file options
The Ruby agent's newrelic.yml
is a standard YAML configuration file. It typically includes a Defaults
section at the top, plus sections below for each application environment (Development
, Test
, Staging
, and Production
).
The Ruby agent determines which section of the newrelic.yml
config file to read from by looking at certain environment variables to derive the application's environment. This can be useful when you want to use info
for the log_level
config setting in your production environment, and you want more verbose log_level
config settings (such as debug
) in your development environment.
Here is an example newrelic.yml
config file:
common: &default_settings
license_key: 'YOUR_LICENSE_KEY'
app_name: 'My Application Name'
production:
<<: *default_settings
log_level: info
development:
<<: *default_settings
log_level: debug
The Ruby agent looks for the following environment variables, in this order, to find the application environment:
NEW_RELIC_ENV
RUBY_ENV
RAILS_ENV
APP_ENV
RACK_ENV
If the Ruby agent doesn't detect values for any of those environment variables, it will default the application environment to development
and read from the development
section of the newrelic.yml
config file.
When running the Ruby agent in a Rails app, the agent first looks for the NEW_RELIC_ENV
environment variable to find the application environment and which section of the newrelic.yml
to use. If NEW_RELIC_ENV
is not present, the agent uses the Rails environment (RAILS_ENV
).
When you edit the config file, be sure to:
- Indent only with two spaces.
- Indent only where relevant, in sections such as
error_collector
.
If you do not indent correctly, the agent may throw an Unable to parse configuration file
error on startup.
To view the most current list of available Ruby agent configuration options, use the rake newrelic:config:docs
command. This document describes the most common options.
Update the config file
This documentation applies to the Ruby agent's latest release. For details on earlier versions, refer to the comments in newrelic.yml
itself.
To update newrelic.yml
file after a new release, use the template in the base directory of the agent gem. When you update to new gem versions, examine or diff config/newrelic.yml
and newrelic.yml
in the installation directory to take advantage of new configuration options.
Important
Updating the gem does not automatically update config/newrelic.yml
.
General
These settings are available for agent configuration. Some settings depend on your New Relic subscription level.
Transaction Tracer
The transaction traces feature collects detailed information from a selection of transactions, including a summary of the calling sequence, a breakdown of time spent, and a list of SQL queries and their query plans (on mysql and postgresql). Available features depend on your New Relic subscription level.
Error Collector
The agent collects and reports all uncaught exceptions by default. These configuration options allow you to customize the error collection.
For information on ignored and expected errors, see this page on Error Analytics in APM. To set expected errors via the NewRelic::Agent.notice_error
Ruby method, consult the Ruby agent API.
Browser Monitoring
The page load timing feature (sometimes referred to as real user monitoring or RUM) gives you insight into the performance real users are experiencing with your website. This is accomplished by measuring the time it takes for your users' browsers to download and render your web pages by injecting a small amount of JavaScript code into the header and footer of each page.
Transaction Events
Application Logging
The Ruby agent supports APM logs in context. For some tips on configuring logs for the Ruby agent, see Configure Ruby logs in context.
Available logging-related config options include:
AI Monitoring
This section includes Ruby agent configurations for setting up AI monitoring.
Important
You need to enable distributed tracing to capture trace and feedback data. It is turned on by default in Ruby agents 8.0.0 and higher.
Attributes
Attributes are key-value pairs containing information that determines the properties of an event or transaction. These key-value pairs can be viewed within transaction traces in APM, traced errors in APM, transaction events in dashboards, and page views in dashboards. You can customize exactly which attributes will be sent to each of these destinations
Audit Log
Autostart
Cloud
Code Level Metrics
Cross Application Tracer
Custom Attributes
Custom Events
Datastore Tracer
Disabling
Use these settings to toggle instrumentation types during agent startup.