Go agent attributes

Attributes are key-value pairs containing information for transaction events, error events, and traced errors. You can adjust the destinations of default attributes and create custom attributes for the attributes collected by New Relic's Go language agent, including:

  • Error traces in New Relic APM
  • Transaction events in New Relic Insights
  • Page views in New Relic Insights

For an extra level of monitoring detail, create custom attributes.

Go agent attributes

The Go agent receives the following default attributes from your app. You can adjust these default settings and turn attributes on or off for certain destinations.

request.headers.accept

The type as read from the HTTP request's Accept header, called with newrelic.AttributeRequestAccept

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestAccept)
request.headers.contentLength

The incoming request size in bytes as read from the Content-Length request header, called with newrelic.AttributeRequestContentLength.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestContentLength)
request.headers.contentType

The incoming request content type as read from the Content-Type request header, called with newrelic.AttributeRequestContentType.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestContentType)
request.headers.host

The name from the HTTP host request header, called with newrelic.AttributeRequestHost.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestHost)
request.headers.referer

The incoming request referer as read from the Referer request header, called with newrelic.AttributeRequestReferer.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Disabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestReferer)
request.headers.User-Agent

The contents of the User-Agent HTTP header, called with newrelic.AttributeRequestUserAgent

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Disabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestUserAgent)
request.method

The HTTP method of the incoming request, called with newrelic.AttributeRequestMethod

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeRequestMethod)
httpResponseCode

The response status code for a web request, called with newrelic.AttributeResponseCode

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeResponseCode)
response.headers.contentLength

The outgoing response size in bytes as read from the Content-Length response header, called with newrelic.AttributeResponseContentLength.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeResponseContentLength)
response.headers.contentType

The outgoing response content-type as read from the Content-Type response header, called with newrelic.AttributeResponseContentType.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeResponseContentType)
host.displayName

The name of the server host under which the current script is executing, called with newrelic.AttributeHostDisplayName.

Default settings:

  • Transaction traces: Enabled
  • Error collector (traced errors): Enabled
  • Transaction events: Disabled

Example of excluding this attribute:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeHostDisplayName)

Change attribute destination

Use these options to change attribute destinations:

Turn destinations on/off

To open or close an entire destination to attributes, set the .Enabled flag to true or false.

For example, to turn off APM error collection: After the config, add:

config.ErrorCollector.Attributes.Enabled = false
Turn attributes on/off

To turn specific attributes on or off, use the .Include or .Exclude methods.

For example, to disable AttributeResponseCode: After the config, add:

config.Attributes.Exclude = append(config.Attributes.Exclude, newrelic.AttributeResponseCode)

Create custom attributes

Add custom attributes by using this method in a transaction:

txn.AddAttribute("key", "value")

The txn variable is the one instrumented for the Go transaction. For example:

txn.AddAttribute("product", "widget")
txn.AddAttribute("price", 19.99)
txn.AddAttribute("importantCustomer", true)

Default settings for custom attribute destinations:

  • Error collector (traced errors): Enabled
  • Transaction events: Enabled

For more help

Additional documentation resources include:

Recommendations for learning more: