# # This file configures the New Relic Agent. New Relic monitors Ruby, Java, # .NET, PHP, Python, Node, and Go applications with deep visibility and low # overhead. For more information, visit www.newrelic.com. # Generated <%= Time.now.strftime('%B %d, %Y') %><%= ", for version #{@agent_version}" if @agent_version %> #<%= "\n# #{generated_for_user}\n#" if generated_for_user %> # For full documentation of agent configuration options, please refer to # https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration common: &default_settings # Required license key associated with your New Relic account. license_key: <%= license_key %> # Your application name. Renaming here affects where data displays in New # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications app_name: <%= app_name %> # To disable the agent regardless of other settings, uncomment the following: # agent_enabled: false # Logging level for log/newrelic_agent.log; options are error, warn, info, or # debug. log_level: info # All of the following configuration options are optional. Review them, and # uncomment or edit them if they appear relevant to your application needs. # If true, enables analytics event sampling. # analytics_events.enabled: true # Defines the maximum number of request events reported from a single harvest. # analytics_events.max_samples_stored: 1200 # If true, enables analytics event sampling. # analytics_events.enabled: true # If true, enables analytics event sampling. # analytics_events.enabled: true # Defines the maximum number of request events reported from a single harvest. # analytics_events.max_samples_stored: 1200 # Defines the maximum number of request events reported from a single harvest. # analytics_events.max_samples_stored: 1200 # Prefix of attributes to exclude from all destinations. Allows * as wildcard at # end. # attributes_exclude: [] # Prefix of attributes to include in all destinations. Allows * as wildcard at # end. # attributes_include: [] # If true, enables capture of attributes for all destinations. # attributes.enabled: true # If true, enables an audit log which logs communications with the New Relic # collector. # audit_log.enabled: false # List of allowed endpoints to include in audit log. # audit_log.endpoints: [".*"] # Specifies a path to the audit log file (including the filename). # audit_log.path: "/audit_log" # Specify a list of constants that should prevent the agent from starting # automatically. Separate individual constants with a comma ,. # For example, Rails::Console,UninstrumentedBackgroundJob. # autostart.denylisted_constants: "rails::console" # Defines a comma-delimited list of executables that the agent should not # instrument. For example, rake,my_ruby_script.rb. # autostart.denylisted_executables: "irb,rspec" # Defines a comma-delimited list of Rake tasks that the agent should not # instrument. For example, assets:precompile,db:migrate. # autostart.denylisted_rake_tasks: "about,assets:clean,assets:clobber,assets:environment,assets:precompile,assets:precompile:all,db:create,db:drop,db:fixtures:load,db:migrate,db:migrate:status,db:rollback,db:schema:cache:clear,db:schema:cache:dump,db:schema:dump,db:schema:load,db:seed,db:setup,db:structure:dump,db:version,doc:app,log:clear,middleware,notes,notes:custom,rails:template,rails:update,routes,secret,spec,spec:features,spec:requests,spec:controllers,spec:helpers,spec:models,spec:views,spec:routing,spec:rcov,stats,test,test:all,test:all:db,test:recent,test:single,test:uncommitted,time:zones:all,tmp:clear,tmp:create,webpacker:compile" # Backports the faster Active Record connection lookup introduced in Rails 6, # which improves agent performance when instrumenting Active Record. Note that # this setting may not be compatible with other gems that patch Active Record. # backport_fast_active_record_connection_lookup: false # If true, the agent captures attributes from browser monitoring. # browser_monitoring_attributes.enabled: false # Prefix of attributes to exclude from browser monitoring. Allows * as wildcard # at end. # browser_monitoring.attributes.exclude: [] # Prefix of attributes to include in browser monitoring. Allows * as wildcard at # end. # browser_monitoring.attributes.include: [] # If true, enables auto-injection of the JavaScript header for page load timing # (sometimes referred to as real user monitoring or RUM). # browser_monitoring.auto_instrument: false # This is true by default, this enables auto-injection of the JavaScript header # for page load timing (sometimes referred to as real user monitoring or RUM). # browser_monitoring.auto_instrument: true # Manual override for the path to your local CA bundle. This CA bundle will be # used to validate the SSL certificate presented by New Relic's data collection # service. # ca_bundle_path: nil # Enable or disable the capture of memcache keys from transaction traces. # capture_memcache_keys: false # When true, the agent captures HTTP request parameters and attaches them to # transaction traces, traced errors, and TransactionError events. When using the # capture_params setting, the Ruby agent will not attempt to filter secret # information. Recommendation: To filter secret information from request # parameters,use the attributes.include setting instead. For more information, # see the Ruby attribute examples. # capture_params: false # If true, the agent will clear Tracer::State in Agent.drop_buffered_data. # clear_transaction_state_after_fork: false # Path to newrelic.yml. If undefined, the agent checks the following directories # (in order): config/newrelic.yml, newrelic.yml, $HOME/.newrelic/newrelic.yml # and $HOME/newrelic.yml. # config_path: newrelic.yml # If true, enables cross application tracing. Cross application tracing is now # deprecated, and disabled by default. Distributed tracing is replacing cross # application tracing as the default means of tracing between services. # To continue using it, set `cross_application_tracer.enabled: true` and # `distributed_tracing.enabled: false` # cross_application_tracer.enabled: false # If false, custom attributes will not be sent on New Relic Insights events. # custom_attributes.enabled: true # If true, the agent captures New Relic Insights custom events. # custom_insights_events.enabled: true # Specify a maximum number of custom Insights events to buffer in memory at a # time. # custom_insights_events.max_samples_stored: 1000 # If false, the agent will not add database_name parameter to transaction or # # slow sql traces. # datastore_tracer.database_name_reporting.enabled: true # If false, the agent will not report datastore instance metrics, nor add host # or port_path_or_id parameters to transaction or slow SQL traces. # datastore_tracer.instance_reporting.enabled: true # If true, disables Action Cable instrumentation. # disable_action_cable_instrumentation: false # If true, disables instrumentation for Active Record 4, 5, and 6. # disable_active_record_notifications: false # If true, disables Active Storage instrumentation. # disable_active_storage: false # If true, disables Active Job instrumentation. # disable_activejob: false # If true, disables Active Record instrumentation. # disable_active_record_instrumentation: false # If true, the agent won't sample the CPU usage of the host process. # disable_cpu_sampler: false # If true, disables DataMapper instrumentation. # disable_data_mapper: false # If true, the agent won't measure the depth of Delayed Job queues. # disable_delayed_job_sampler: false # If true, disables the use of GC::Profiler to measure time spent in garbage # collection # disable_gc_profiler: false # If true, the agent won't sample the memory usage of the host process. # disable_memory_sampler: false # If true, the agent won't wrap third-party middlewares in instrumentation # (regardless of whether they are installed via Rack::Builder or Rails). # disable_middleware_instrumentation: false # If true, disables the collection of sampler metrics. Sampler metrics are # metrics that are not event-based (such as CPU time or memory usage). # disable_samplers: false # If true, disables Sequel instrumentation. # disable_sequel_instrumentation: false # If true, disables Sidekiq instrumentation. # disable_sidekiq: false # If true, disables agent middleware for Sinatra. This middleware is responsible # for advanced feature support such as distributed tracing, page load # timing, and error collection. # disable_sinatra_auto_middleware: false # If true, disables view instrumentation. # disable_view_instrumentation: false # If true, the agent won't sample performance measurements from the Ruby VM. # disable_vm_sampler: false # Distributed tracing tracks and observes service requests as they flow through distributed systems. # With distributed tracing data, you can quickly pinpoint failures or performance issues and fix them. # distributed_tracing.enabled: true # The Entity GUID for the entity that is running this agent. # entity_guid: nil # If true, the agent captures attributes from error collection. # error_collector.attributes.enabled: false # Prefix of attributes to exclude from error collection. # Allows * as wildcard at end. # error_collector.attributes.exclude: [] # Prefix of attributes to include in error collection. # Allows * as wildcard at end. # error_collector.attributes.include: [] # If true, the agent collects TransactionError events. # error_collector.capture_events: false # If true, the agent collects TransactionError events. # error_collector.capture_events: true # If true, the agent captures traced errors and error count metrics. # error_collector.enabled: true # If true, the agent captures traced errors and error count metrics. # error_collector.enabled: true # A list of error classes that the agent should treat as expected. # error_collector.expected_classes: [] # A map of error classes to a list of messages. When an error of one of the # classes specified here occurs, if its error message contains one of the # strings corresponding to it here, that error will be treated as expected. # error_collector.expected_messages: {} # A comma separated list of status codes, possibly including ranges. Errors # associated with these status codes, where applicable, will be treated as # expected. # error_collector.expected_status_codes: "" # A list of error classes that the agent should ignore. # error_collector.ignore_classes: [] # A map of error classes to a list of messages. When an error of one of the # classes specified here occurs, if its error message contains one of the # strings corresponding to it here, that error will be ignored. # error_collector.ignore_messages: "" # A comma separated list of status codes, possibly including ranges. Errors # associated with these status codes, where applicable, will be ignored. # error_collector.ignore_status_codes: "" # Defines the maximum number of frames in an error backtrace. Backtraces over # this amount are truncated at the beginning and end. # error_collector.max_backtrace_frames: 50 # Defines the maximum number of TransactionError events sent to Insights per # harvest cycle. # error_collector.max_event_samples_stored: 100 # Allows newrelic distributed tracing headers to be suppressed on outbound # requests. # exclude_newrelic_header: false # Forces the exit handler that sends all cached data to collector before # shutting down to be installed regardless of detecting scenarios where it # generally should bot be. Known use-case for this option is where Sinatra is # running as an embedded service within another framework and the agent is # detecting the Sinatra app and skipping the at_exit handler as a result. # Sinatra classically runs the entire application in an at_exit block and would # otherwise misbehave if the Agent's at_exit handler was also installed in # those circumstances. Note: send_data_on_exit should also be set to true in # tandem with this setting. # force_install_exit_handler: false # Ordinarily the agent reports dyno names with a trailing dot and process ID # (for example, worker.3). You can remove this trailing data by specifying the # prefixes you want to report without trailing data (for example, worker). # heroku.dyno_name_prefixes_to_shorten: ["scheduler", "run"] # If true, the agent uses Heroku dyno names as the hostname. # heroku.use_dyno_names: true # If true, enables high security mode. Ensure that you understand the # implication of enabling high security mode before enabling this setting. # https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/high-security-mode/ # high_security: false # Configures the hostname for the Trace Observer Host. When configured, enables # tail-based sampling by sending all recorded spans to a Trace Observer for # further sampling decisions, irrespective of any usual agent sampling decision. # infinite_tracing.trace_observer.host: "" # Configures the TCP/IP port for the Trace Observer Host # infinite_tracing.trace_observer.port: 443 # Controls auto-instrumentation of bunny at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.bunny: auto # Controls auto-instrumentation of Curb at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.curb: auto # Controls auto-instrumentation of Delayed Job at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.delayed_job: auto # Controls auto-instrumentation of Excon at start up. # May be one of [enabled|disabled]. # instrumentation.excon: auto # Controls auto-instrumentation of Grape at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.grape: auto # Controls auto-instrumentation of HTTPClient at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.httpclient: auto # Controls auto-instrumentation of http.rb gem at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.httprb: auto # Controls auto-instrumentation of memcache-client gem for Memcache at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.memcache_client: auto # Controls auto-instrumentation of dalli gem for Memcache at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.memcache: auto # Controls auto-instrumentation of memcached gem for Memcache at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.memcached: auto # Controls auto-instrumentation of Mongo at start up. # May be one of [enabled|disabled]. # instrumentation.mongo: auto # Controls auto-instrumentation of Net::HTTP at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.net_http: auto # Controls auto-instrumentation of Puma::Rack::URLMap at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.puma_rack_urlmap: auto # Controls auto-instrumentation of Puma::Rack. When enabled, the agent hooks # into the to_app method in Puma::Rack::Builder to find gems to instrument # during application startup. May be one of [auto|prepend|chain|disabled]. # instrumentation.puma_rack: auto # Controls auto-instrumentation of Rack::URLMap at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.rack_urlmap: auto # Controls auto-instrumentation of Rack. When enabled, the agent hooks into the # to_app method in Rack::Builder to find gems to instrument during application # startup. May be one of [auto|prepend|chain|disabled]. # instrumentation.rack: auto # Controls auto-instrumentation of rake at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.rake: auto # Controls auto-instrumentation of Redis at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.redis: auto # Controls auto-instrumentation of resque at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.resque: auto # Controls auto-instrumentation of Sinatra at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.sinatra: auto # Controls auto-instrumentation of Typhoeus at start up. # May be one of [auto|prepend|chain|disabled]. # instrumentation.typhoeus: auto # A dictionary of label names and values that will be applied to the data sent # from this agent. May also be expressed asa semicolon-delimited ; string of # colon-separated : pairs. # For example,Server:One;Data Center:Primary. # labels: "" # Defines a name for the log file. # log_file_name: "newrelic_agent.log" # Defines a path to the agent log file, excluding the filename. # log_file_path: "log/" # Specifies a marshaller for transmitting data to the New Relic collector. # Currently json is the only valid value for this setting. # marshaller: json # If true, the agent will collect metadata about messages and attach them as # segment parameters. # message_tracer.segment_parameters.enabled: true # If true, the agent captures Mongo queries in transaction traces. # mongo.capture_queries: true # If true, the agent obfuscates Mongo queries in transaction traces. # mongo.obfuscate_queries: true # When true, the agent transmits data about your app to the New Relic collector. # monitor_mode: true # If true, uses Module#prepend rather than alias_method for Active Record # instrumentation. # prepend_active_record_instrumentation: false # Specify a custom host name for display in the New Relic UI # Be be aware that you cannot rename a hostname, so please rename # process_host.display_name: "default hostname" # Defines a host for communicating with the New Relic collector via a proxy # server. # proxy_host: nil # Defines a password for communicating with the New Relic collector via a proxy # server. # proxy_pass: nil # Defines a port for communicating with the New Relic collector via a proxy # server. # proxy_port: nil # Defines a user for communicating with the New Relic collector via a proxy # server. # proxy_user: nil # Timeout for waiting on connect to complete before a rake task # rake.connect_timeout: 10 # Specify an array of Rake tasks to automatically instrument. # rake.tasks: [] # Define transactions you want the agent to ignore, by specifying a list of # patterns matching the URI you want to ignore. # rules.ignore_url_regexes: [] # Applies Language Agent Security Policy settings. # security_policies_token: "" # If true, enables the exit handler that sends data to the New Relic collector # before shutting down. # send_data_on_exit: true # If true, the agent collects slow SQL queries. # slow_sql.enabled: false # If true, the agent collects explain plans in slow SQL queries. If this setting # is omitted, the transaction_tracer.explain.enabled setting will be applied as # the default setting for explain plans in slow SQL as well. # slow_sql.explain_enabled: false # Specify a threshold in seconds. The agent collects slow SQL queries and # explain plans that exceed this threshold. # slow_sql.explain_threshold: 1.0 # Defines an obfuscation level for slow SQL queries. # Valid options are obfuscated, raw, or none. # slow_sql.record_sql: none # Generate a longer sql_id for slow SQL traces. sql_id is used for aggregation # of similar queries. # slow_sql.use_longer_sql_id: false # If true, the agent captures attributes on span events. # span_events_attributes.enabled: true # Defines the maximum number of span events reported from a single harvest. # This can be any integer between 1 and 10000. Increasing this value may impact # memory usage. # span_events.max_samples_stored: 2000 # Prefix of attributes to exclude from span events. Allows * as wildcard at end. # span_events.attributes.exclude: [] # Prefix of attributes to include on span events. Allows * as wildcard at end. # span_events.attributes.include: [] # If true, enables span event sampling. # span_events.enabled: true # Sets the maximum number of span events to buffer when streaming to the trace # observer. # span_events.queue_size: 10000 # Specify a list of exceptions you do not want the agent to strip when # strip_exception_messages is true. Separate exceptions with a comma. For # example, "ImportantException,PreserveMessageException". # strip_exception_messages.allowed_classes: "" # If true, the agent strips messages from all exceptions except those in the # allowlist. Enabled automatically in high security mode. # strip_exception_messages.enabled: true # When set to true, forces a synchronous connection to the New Relic collector # during application startup. For very short-lived processes, this helps ensure # the New Relic agent has time to report. # sync_startup: false # If true, enables use of the thread profiler. # thread_profiler.enabled: false # Defines the maximum number of seconds the agent should spend attempting to # connect to the collector. # timeout: 120 # If true, the agent captures attributes from transaction events. # transaction_events_attributes.enabled: false # Prefix of attributes to exclude from transaction events. # Allows * as wildcard at end. # transaction_events.attributes.exclude: [] # Prefix of attributes to include in transaction events. # Allows * as wildcard at end. # transaction_events.attributes.include: [] # If true, the agent captures attributes on transaction segments. # transaction_segments_attributes.enabled: true # Prefix of attributes to exclude from transaction segments. # Allows * as wildcard at end. # transaction_segments.attributes.exclude: [] # Prefix of attributes to include on transaction segments. # Allows * as wildcard at end. # transaction_segments.attributes.include: [] # If true, the agent captures attributes from transaction traces. # transaction_tracer.attributes.enabled: false # Prefix of attributes to exclude from transaction traces. # Allows * as wildcard at end. # transaction_tracer.attributes.exclude: [] # Prefix of attributes to include in transaction traces. # Allows * as wildcard at end. # transaction_tracer.attributes.include: [] # If true, enables collection of transaction traces. # transaction_tracer.enabled: true # Threshold (in seconds) above which the agent will collect explain plans. # Relevant only when explain.enabled is true. # transaction_tracer.explain_threshold: 0.5 # If true, enables the collection of explain plans in transaction traces. # This setting will also apply to explain plans in slow SQL traces if # slow_sql.explain enabled is not set separately. # transaction_tracer.explain.enabled: true # Maximum number of transaction trace nodes to record in a single transaction # trace. # transaction_tracer.limit_segments: 4000 # If true, the agent records Redis command arguments in transaction traces. # transaction_tracer.record_redis_arguments: false # Obfuscation level for SQL queries reported in transaction trace nodes. # By default, this is set to obfuscated, which strips out the numeric and string # literals. If you do not want the agent to capture query information, set this # to 'none'. If you want the agent to capture all query information in its # original form, set this to 'raw'. When you enable high security mode this is # automatically set to 'obfuscated' # transaction_tracer.record_sql: 'obfuscated' # Specify a threshold in seconds. The agent includes stack traces in transaction # trace nodes when the stack trace duration exceeds this threshold. # transaction_tracer.stack_trace_threshold: 0.5 # Specify a threshold in seconds. Transactions with a duration longer than this # threshold are eligible for transaction traces. Specify a float value or the # string apdex_f. # transaction_tracer.transaction_threshold: 1.0 # If true, the agent automatically detects that it is running in an AWS # environment. # utilization.detect_aws: true # If true, the agent automatically detects that it is running in an Azure # environment. # utilization.detect_azure: true # If true, the agent automatically detects that it is running in Docker. # utilization.detect_docker: true # If true, the agent automatically detects that it is running in an Google Cloud # Platform environment. # utilization.detect_gcp: true # If true, the agent automatically detects that it is running in Kubernetes. # utilization.detect_kubernetes: true # If true, the agent automatically detects that it is running in a Pivotal Cloud Foundry environment. # utilization.detect_pcf: true # Environment-specific settings are in this section. # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment. # If your application has other named environments, configure them here. development: <<: *default_settings app_name: <%= app_name %> (Development) test: <<: *default_settings # It doesn't make sense to report to New Relic from automated test runs. monitor_mode: false staging: <<: *default_settings app_name: <%= app_name %> (Staging) production: <<: *default_settings