--- title: Ruby agent configuration tags: - Agents - Ruby agent - Configuration metaDescription: 'APM for Ruby: how to configure the Ruby agent, including editing the config file and setting environment variables.' redirects: - /docs/agents/ruby-agent/configuration/ruby-agent-configuration - /docs/ruby/ruby-agent-configuration - /docs/agents/ruby-agent/installation-and-configuration/ruby-agent-configuration - /docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration freshnessValidatedDate: never --- This file is automatically generated from values defined in `lib/new_relic/agent/configuration/default_source.rb`. Make all changes directly to `default_source.rb.` Submit PRs or raise issues at: https://github.com/newrelic/newrelic-ruby-agent 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 [#Options] 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: 1. Add the prefix `NEW_RELIC_` to the setting's name. 2. Replace any periods `.` with underscores `_`. You can also configure a few values in the UI via [server-side configuration](/docs/agents/manage-apm-agents/configuration/server-side-agent-configuration). The Ruby agent follows this order of precedence for configuration: 1. Environment variables 2. Server-side configuration 3. Configuration file (`newrelic.yml`) 4. 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 [#Edit] 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: ```yaml 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: 1. `NEW_RELIC_ENV` 2. `RUBY_ENV` 3. `RAILS_ENV` 4. `APP_ENV` 5. `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 [#Updates] 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](/docs/agents/manage-apm-agents/troubleshooting/find-agent-root-directory#ruby-agent) to take advantage of new configuration options. Updating the gem does not automatically update `config/newrelic.yml`. <% sections.each do |(section_key, section_name, section_description, configs)| %> ## <%=section_name%> <%= "#{section_description}" unless section_description.nil? %> <% configs.each do |config|%>
Type<%=config[:type]%>
Default`<%=config[:default]%>`
Environ variable`<%=config[:env_var]%>`
<%=config[:description]%>
<% end %>
<% end %>