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.

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.

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.

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

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:

Join the discussion about Ruby in the New Relic Online Technical Community! The Technical Community is a public platform to discuss and troubleshoot your New Relic toolset.

If you need additional help, get support at support.newrelic.com.