Adding Additional Data to the Occurrence

All Rollbar SDKs support adding additional custom data to the occurrence payload.

Additional data can be used to:

  • Understand the root cause of an error more easily
  • Better understand the business impact of an error
  • Make an automated response decision

Some common additional data fields that are added to the payload include:

  • Session ID
  • Trace ID - Extra context in in web service based application
  • Feature Flag ID - To trigger a Webhook notification to turn off a feature with errors
  • End User Type - To trigger a notification if important end users are experiencing errors
  • Owning Team - To route an error to the correct team

Adding additional data

Additional data can be added to the configuration at any time.

Adding additional data when Rollbar is initialized

If the value of the additional data is known when Rollbar is initialized, it can be added at initialization.

This is an example of adding the custom data when instantiating Rollbar in a JavaScript application

var _rollbarConfig = {
    accessToken: "*********",
    payload: {
        environment: "production", code_version: '1.0.1',
        custom: {session_id: '1234', container_id: '6789'} }};

Adding additional data after initialization

This is an example of additional data being added after Rollbar initialization in a JavaScript application.

Rollbar.configure({payload: { custom: { customer_type: "premium"}} });

Adding additional data in log messages sent to Rollbar

Additional data can also be added when Rollbar is called explicitly

This is an example of adding the custom data added to an error occurrence in a JavaScript application.

Rollbar.error("An error has occurring processing data ", {error_owner: "DataPipelineTeam"});

Additional data can also be added when Rollbar is called explicitly for a caught exception

Adding additional data to a caught exception sent to Rollbar

This is an example of adding the custom data added to an error occurrence along with the exception/error object

Rollbar.error("An error has occurring processing data ", excp, {error_owner: "DataPipelineTeam"});

Adding additional data in a payload transformer

A payload transformer is a method that gets called before an occurrence payload is sent. The payload transformer allows data to added, deleted, or relocated in the occurrence payload. It can be used to additional contextual information to the error just before occurrence is sent

Payload Transformer Examples

Javascript

Java

Python

Ruby

Triggering notifications based on additional custom data

To trigger a notification based on additional custom data see Notifications Path Filter documentation.
This can be useful to trigger a Webhook notification under specific circumstances, or to send a Slack notification to a different Slack channel based on the custom data.

Creating a Service Link with additional custom data

Service Links are Query URLs that can include additional custom data.
See the Service Links documentation for examples.

Adding trace_id as additional custom data in web service applications

Web service applications often include a trace_id to make it easier to triage an error across multiple services. Adding the trace_id as custom data is helpful extra context.

This data can also be included in RQL queries and to build Service Links.

Creating custom fingerprinting rules using custom data

Custom data that you include in the error occurrence payload can be used in custom fingerprinting rules. Errors can be grouped differently based on the custom data in the error occurrence payload.

See Custom Fingerprinting Rules

For example: Grouping errors from the same endpoint differently based on the status code returned

Rollbar.error("An error has occurring adding a new user", 
    {custom: {{endpoint: "new_user", status_code: "429"});

Including additional custom data in an RQL query

Additional custom data is supported in the Rollbar Query Language (RQL) schema. You can write queries that filter by custom data fields.
RQL supports querying across multiple Rollbar projects.
This is an example of querying for all occurrences with a specific trace_id in the last 24 hours, potentially across multiple Rollbar projects.

select * from item_occurrence WHERE custom.trace_id='16865426728' AND
  timestamp > unix_timestamp() - 60 * 60 * 24

See also the RQL documentation.

Other Information

Language Examples

See the language SDK documentation for more details on how to add additional custom data to the occurrence payload for a specific language.

Recommendations

It is recommended that you group additional custom data under a specific node in the JSON payload to make maintenance easier.

Limitations

Additional custom data fields cannot have the title data