Send more custom events with the latest APM agents

Starting Oct 26th 2022, New Relic will be releasing a new update for the APM language agents that increases the default and maximum limit for custom events. When you upgrade to the latest versions of the Go, Java, .NET, Node.js, Python, Ruby APM agents, you will be able to send more custom events with this increased limit.

Custom events can be used to define, visualize, and get alerts on additional data(for example, a change in server setting), just as you can with any data we provide from our core agents. With the custom event limit increase, you can now ingest more custom events to track critical actions for analysis and troubleshooting.

Track critical actions for analysis and troubleshooting

What you’ll need

Before you begin, ensure you have a New Relic account, or sign up for a free account here (no credit card needed).

You will also need to have the latest version of the APM agents:

FAQs

How do I monitor current custom event ingestion?

In the New Relic UI, select “Manage your data” select “Data ingestion” and view “Custom events”

(or)

You can also use a query like the below:

SELECT rate(sum(GigabytesIngested), 1 day) AS avgGbIngestTimeseries FROM NrConsumption WHERE productLine = 'DataPlatform' and usageMetric = 'CustomEventsBytes' LIMIT MAX TIMESERIES AUTO SINCE 30 days AGO

How do I change the custom event limits?

The defaults are changing. However, you can configure the maximum number of events sent to New Relic in a range of 1 - 100,000 events per minute using agent configuration (Go, Java, .NET, Node.js, Python, Ruby).

For instance to set custom event limit to 5000 for your Java application:

custom_insights_events:

enabled: true

max_samples_stored: 5000

How do I turn off custom events?

You can also turn off custom events reporting at any point by configuring the respective agents(Go, Java, .NET, Node.js, Python, Ruby).

How do I know if my custom events are being dropped?

For a specific application you can query the number of events being dropped with a query like below:

SELECT filter(count(newrelic.timeslice.value), WHERE metricTimesliceName ='Supportability/Events/Customer/Seen') - filter(count(newrelic.timeslice.value), WHERE metricTimesliceName ='Supportability/Events/Customer/Sent') AS 'Events_Dropped' FROM Metric WHERE appName = '[APPNAME]' AND metricTimesliceName IN ('Supportability/Events/Customer/Sent','Supportability/Events/Customer/Seen') SINCE [TIME WINDOW] ago

To see the percentage of events being sent for an application use a query like this:

SELECT Filter(count(newrelic.timeslice.value), WHERE metricTimesliceName ='Supportability/Events/Customer/Sent')/filter(count(newrelic.timeslice.value), WHERE metricTimesliceName ='Supportability/Events/Customer/Seen') * 100 as 'Percent Sent' FROM Metric WHERE appName = '[APPNAME]' AND metricTimesliceName IN ('Supportability/Events/Customer/Sent','Supportability/Events/Customer/Seen') SINCE [TIMEWINDOW]

How much more data will be sent?

This depends on how many events are being dropped and the size of those events. For applications dropping a large percentage of events the new limits will allow for a maximum of 3 times more events to be sent.

What are the default current limits?

Most agents use 10,000 except the following:

What are the new default limits?

The new default limits are 3x the current default and as follows:

  • Java: 30,000 per minute
  • .NET: 30,000 per minute
  • PHP: 30,000 per minute
  • Go: 30,000 per minute
  • Node: 3,000 per minute
  • Ruby: 3,000 per minute
  • Python: 3600 per minute

Support

For more information about custom events, read these docs or contact Support.

2 Likes