Enabling and disabling attributes (Ruby)

This describes the properties to enable or disable attributes, and the rules that New Relic uses when determining which attributes to include or exclude for a destination. This also includes a summary of the Ruby agent properties that have been deprecated with the release of New Relic agent attributes.

Properties

Use the following properties to enable or disable attributes:

attributes.enabled
Type Boolean
Default true
Environ variable NEW_RELIC_ATTRIBUTES_ENABLED

If true, enables capture of attributes for all destinations.

transaction_tracer.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_ENABLED

If true, the agent captures attributes from transaction traces.

transaction_events.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_ENABLED

If true, the agent captures attributes from transaction events.

error_collector.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_ENABLED

If true, the agent captures attributes from error collection.

browser_monitoring.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_ENABLED

If true, the agent captures attributes from browser monitoring.

span_events.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_SPAN_EVENTS_ATTRIBUTES_ENABLED

If true, the agent captures attributes on span events.

transaction_segments.attributes.enabled
Type Boolean
Default (Dynamic)
Environ variable NEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_ENABLED

If true, the agent captures attributes on transaction segments.

attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from all destinations. Allows * as wildcard at end.

transaction_tracer.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from transaction traces. Allows * as wildcard at end.

transaction_events.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from transaction events. Allows * as wildcard at end.

error_collector.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from error collection. Allows * as wildcard at end.

browser_monitoring.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from browser monitoring. Allows * as wildcard at end.

span_events.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_SPAN_EVENTS_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from span events. Allows * as wildcard at end.

transaction_segments.attributes.exclude
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_EXCLUDE

Prefix of attributes to exclude from transaction segments. Allows * as wildcard at end.

attributes.include
Type Array
Default []
Environ variable NEW_RELIC_ATTRIBUTES_INCLUDE

Prefix of attributes to include in all destinations. Allows * as wildcard at end.

transaction_tracer.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_INCLUDE

Prefix of attributes to include in transaction traces. Allows * as wildcard at end.

transaction_events.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_INCLUDE

Prefix of attributes to include in transaction events. Allows * as wildcard at end.

error_collector.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_INCLUDE

Prefix of attributes to include in error collection. Allows * as wildcard at end.

browser_monitoring.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_INCLUDE

Prefix of attributes to include in browser monitoring. Allows * as wildcard at end.

span_events.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_SPAN_EVENTS_ATTRIBUTES_INCLUDE

Prefix of attributes to include in span events. Allows * as wildcard at end.

transaction_segments.attributes.include
Type Array
Default []
Environ variable NEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_INCLUDE

Prefix of attributes to include in transaction segments. Allows * as wildcard at end.

Attribute rules

New Relic follows these rules when determining which attributes to include or exclude for a destination.

Root level takes precedence for enabled.

The attributes.enabled field trumps all other settings. When false, no attributes will be reported to New Relic.

Example configuration:

    attributes.enabled: false
    attributes.include: foo, bar
    transaction_tracer.attributes.enabled: true

Example output:

    Keys passed in: foo, bar, baz
    Keys included for all destinations:
    Keys excluded for all destinations: foo, bar, baz
Destination enabled takes precedence over include and exclude.

The YOUR_DESTINATION.attributes.enabled flags take precedence over include and exclude keys.

Example configuration:

    transaction_tracer.attributes.enabled: false
    attributes.include: one, two
    transaction_tracer.attributes.include: three, four

Example output:

    Keys passed in: one, two, three, four
    Keys included for transaction traces:
    Keys excluded for transaction traces: one, two, three, four
Attribute is included if the destination is enabled.

If a destination is enabled, all user attributes are sent to that destination by default.

Note: All user attributes default to true. However, by default, request parameters are disabled for all destinations.

Example configuration:

    attributes.enabled: true
    attributes.exclude: baz    

Example output:


    Keys passed in: foo, bar, baz
    Keys included: foo, bar
    Keys excluded: baz
    
Exclude always supersedes include.

If the same key is listed in the include and exclude lists, then attributes with the specified key will be excluded.

Example configuration:

    attributes.enabled: true
    attributes.include: foo, bar
    attributes.exclude: nerd, bar

Example output:

    Keys passed in: foo, bar, nerd
    Keys included: foo
    Keys excluded: nerd, bar
Keys are case sensitive.

Keys are case-sensitive.

Example configuration:

    attributes.enabled: true
    attributes.exclude: username, UsErNaMe

Example output:

    Keys passed in: username, Username, USERNAME, UsErNaMe, userNAME
    Keys included: Username, USERNAME, userNAME
    Keys excluded: username, UsErNaMe
Use * for wildcards.

You can use an asterisk * at the end of a key as a wildcard. This will match a set of attributes with the same prefix.

Example configuration:

    attributes.enabled: true
    attributes.include: custom*
    attributes.exclude: request.parameters.*

Example output:

    Keys passed in: custom, custom.key1, custom.key2, request.parameters., request.parameters.foo, request.parameters.bar
    Keys included: custom, custom.key1, custom.key2
    Keys excluded: request.parameters., request.parameters.foo, request.parameters.bar
Most specific setting for a key takes priority.

If multiple include or exclude attributes affect the same key, the most specific setting will have priority.

Example configuration:


    attributes.enabled: true
    attributes.include: request.parameters.foo
    attributes.exclude: request.parameters.*

Example output:

    Keys passed in: request.parameters., request.parameters.foo, request.parameters.bar
    Keys included: request.parameters.foo
    Keys excluded: request.parameters., request.parameters.bar
Include or exclude affects the specific destination.

If the attribute include or exclude is specified on a destination, then it only impacts that destination.

Example configuration:

    attributes.include: foo
    transaction_events.attributes.exclude: foo

Example output:

    Keys passed in: foo
    Keys included for transaction events: 
    Keys included for other destinations: foo
    Keys excluded for transaction events: foo

URI-related properties

By default, the Ruby Agent reports Uniform Resource Identifiers (URIs) to New Relic in several different places, including the following destinations:

New Relic recommends having these URIs reported, as they can contain useful debugging information. If your URIs contain sensitive data that you don't want reported, URI reporting can be disabled. For example, sensitive data could include email addresses or account IDs. To disable URI reporting, add any of the above attribute names to the attributes.exclude list.

For example, if you adding the following key to your configuration file will stop the agent from reporting any of the URI-related properties:

    attributes.exclude: uri

Deprecated properties

The following properties have been deprecated. Switch to the new attributes configuration for these properties when upgrading your Ruby agent.

Deprecated property New property

capture_params

attributes.include: request.parameters.*

resque.capture_params

attributes.include: job.resque.args.*

sidekiq.capture_params

attributes.include: job.sidekiq.args.*

transaction_tracer.capture_attributes

transaction_tracer.attributes.enabled

error_collector.capture_attributes

error_collector.attributes.enabled

browser_monitoring.capture_attributes

browser_monitoring.attributes.enabled

analytics_events.capture_attributes

transaction_events.attributes.enabled

For more help

Additional documentation resources include:

Recommendations for learning more: