View Source NewRelic.Config (New Relic Elixir Agent v1.29.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"
  ]
Link to this function

feature(configurable_agent_feature)

View Source

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 Forwarder
  • direct 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"
Link to this function

feature?(toggleable_agent_feature)

View Source

Some Agent features can be toggled via configuration.

Security

  • :error_collector_enabled (default true)
    • Toggles collection of any Error traces or metrics
  • :db_query_collection_enabled (default true)
    • Toggles collection of Database query strings
  • function_argument_collection_enabled (default true)
    • 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 (default true)
    • Controls all Plug instrumentation
  • :ecto_instrumentation_enabled (default true)
    • Controls all Ecto instrumentation
  • :redix_instrumentation_enabled (default true)
    • 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"