View Source NewRelic.Config (New Relic Elixir Agent v1.30.0)
New Relic Agent Configuration
All configuration items can be set via Environment variables or via Application
config
Summary
Functions
Required
An optional list of key/value pairs that will be automatic custom attributes on all event types reported (Transactions, etc). Values are determined at Agent start.
Some Agent features can be controlled via configuration.
Some Agent features can be toggled via configuration.
An optional list of labels that will be applied to the application.
Required
Configure the Agent logging mechanism.
Functions
Required
Configure your application name. May contain up to 3 names seperated by ;
Application name can be configured in two ways:
- Environment variable:
NEW_RELIC_APP_NAME=MyApp
- Application config:
config :new_relic_agent, app_name: "MyApp"
An optional list of key/value pairs that will be automatic custom attributes on all event types reported (Transactions, etc). Values are determined at Agent start.
Options:
{:system, "ENV_NAME"}
Read a System ENV variable{module, function, args}
Call a function."foo"
A direct value
This feature is only configurable with Application
config.
Example:
config :new_relic_agent,
automatic_attributes: [
environment: {:system, "APP_ENV"},
node_name: {Node, :self, []},
team_name: "Afterlife"
]
Some Agent features can be controlled via configuration.
Logs In Context
This feature can be run in multiple "modes":
forwarder
The recommended mode which formats outgoing logs as JSON objects ready to be picked up by a Log Forwarderdirect
Logs are buffered in the agent and shipped directly to New Relic. Your logs will continue being output to their normal destination.disabled
(default)
Logs In Context can be configured in two ways:
- Environment variable
NEW_RELIC_LOGS_IN_CONTEXT=forwarder
- Application config
config :new_relic_agent, logs_in_context: :forwarder
Infinite Tracing
Infinite Tracing gives you more control of sampling by collecting 100% of Spans and sending them to a Trace Observer for processing.
You can configure your Trace Observer in two ways:
- Environment variable
NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST=trace-observer.host
- Application config
config :new_relic_agent, infinite_tracing_trace_observer_host: "trace-observer.host"
Some Agent features can be toggled via configuration.
Security
:error_collector_enabled
(defaulttrue
)- Toggles collection of any Error traces or metrics
:db_query_collection_enabled
(defaulttrue
)- Toggles collection of Database query strings
function_argument_collection_enabled
(defaulttrue
)- Toggles collection of traced function arguments
Instrumentation
Opting out of Instrumentation means that :telemetry
handlers
will not be attached, reducing the performance impact to zero.
:plug_instrumentation_enabled
(defaulttrue
)- Controls all Plug instrumentation
:ecto_instrumentation_enabled
(defaulttrue
)- Controls all Ecto instrumentation
:redix_instrumentation_enabled
(defaulttrue
)- Controls all Redix instrumentation
:request_queuing_metrics_enabled
- Controls collection of request queuing metrics
Configuration
Each of these features can be configured in two ways, for example:
- Environment variables:
NEW_RELIC_ERROR_COLLECTOR_ENABLED=false
- Application config:
config :new_relic_agent, error_collector_enabled: false
An optional list of labels that will be applied to the application.
Configured with a single string containing a list of key-value pairs:
key1:value1;key2:value2
The delimiting characters ;
and :
are not allowed in the key
or value
Labels can be configured in two ways:
- Environment variables:
NEW_RELIC_LABELS=region:west;env:prod
- Application config:
config :new_relic_agent, labels: "region:west;env:prod"
Required
Configure your New Relic License Key.
License Key can be configured in two ways, though using Environment Variables is strongly recommended to keep secrets out of source code:
- Environment variables:
NEW_RELIC_LICENSE_KEY=abc123
- Application config:
config :new_relic_agent, license_key: "abc123"
Configure the Agent logging mechanism.
This controls how the Agent logs it's own behavior, and doesn't impact your applications own logging at all.
Defaults to the File "tmp/new_relic.log"
.
Options:
"stdout"
Write directly to Standard Out"Logger"
Send Agent logs to Elixir's Logger"file_name.log"
Write to a chosen file
Agent logging can be configured in two ways:
- Environment variable:
NEW_RELIC_LOG=stdout
- Application config:
config :new_relic_agent, log: "stdout"