A timeseries is a single, unique combination of a metric name and any attributes. Timeseries received above this limit are dropped. This limit is enforced prior to and in addition to standard metric limits.
Additional account conditions
Metric API limits apply at the individual account level. The default limits for DPM and cardinality range from 3M for organizations on our free tier, up to 10.2M for some paying organizations. To understand your organization's limits, see the Limits UI. DPM and cardinality can be increased to 15M on request for paying organizations. Max payloads per minute can be adjusted above 100k on a case-by-case basis. To request changes to your metric rate limits, contact your New Relic account representative, or visit our Support portal.
Rate limit violations
This section describes how the Metric API behaves when you exceed the rate limits, and how to respond if limits are exceeded.
Data points per minute refers to the per minute rate at which individual metric values are sent to the Metric API.
When the maximum DPM limit is exceeded for an account, the New Relic Metric API returns a 429 response for the remainder of the minute. The response will include a Retry-After header indicating how long to wait in seconds before resubmitting or sending new data.
To resolve this issue, either reduce the number of data points you are sending, or request a rate limit change. Subsequent subscription changes do not impact modified rate limits. If an account change impacts your rate limit, you must notify us to adjust your rate limit.
To request rate limit changes, contact your New Relic account representative, or visit our Support portal.
A timeseries is a single, unique combination of a metric name and any attributes assigned to that metric. For example, if a CPU utilization metric with a single attribute hostname is sent from ten different hosts, this equals ten distinct values for the hostname attribute and ten unique metric timeseries.
If the per-account, per-day unique metric timeseries (cardinality) limit is exceeded during a 24 hour period, the endpoint will continue to receive and store raw metric data. However, New Relic will stop creating additional aggregate rollups (1 minute, 5 minutes, etc.) for the remainder of the 24 hour period. (These rollups are used used by default to query time windows longer than 60 minutes.)
You can continue to query your data when such a violation occurs by specifying a 60 minute or shorter time window or specifying the RAW keyword as described in view and query your metrics. This can be helpful in identifying potential causes for the violation.
A timeseries is a single, unique combination of a metric name and any attributes assigned to that metric. For example, if a CPU utilization metric with a single attribute hostname is sent from ten different hosts, this equals ten distinct values for the hostname attribute and ten unique metric timeseries.
If the per-metric name, per-day unique metric timeseries (cardinality) limit is exceeded during a 24 hour period, the endpoint will continue to receive and store raw metric data. However, New Relic will stop creating additional aggregate rollups (1 minute, 5 minutes, etc.) for the remainder of the 24 hour period. (These rollups are used used by default to query time windows longer than 60 minutes.)
You can continue to query your data when such a violation occurs by specifying a 60 minute or shorter time window or specifying the RAW keyword as described in view and query your metrics. This can be helpful in identifying potential causes for the violation.
If you make more than 100k POST requests to the Metric API endpoint within a minute, the endpoint will return a 429 response for the remainder of the minute. The response will include a Retry-After header indicating how long to wait in seconds before resubmitting or sending new data.
In general, if you reach this limit, consider creating larger payloads. To do this, combine more data points into each request to reduce the number of POSTs that are necessary.
If this is not an option, you can request a rate limit increase by contacting your New Relic account representative or visiting our Support portal.
Restricted attributes
These attributes are restricted by the New Relic platform. Any values submitted with these keys in the attributes section of a metric data point will cause the data point to be dropped, or the value to be omitted or overwritten:
Attribute
Description
newrelic.source
This resets to the value metricAPI.
metricName
This resets to the name value passed into each data point. This allows name to be an attribute key.
endTimestamp
timestamp and interval.ms will be converted to an endTimestamp for the data point.
These attributes are used internally to identify entities. Any values submitted with these keys in the attributes section of a metric data point may cause undefined behavior such as missing entities in the UI or telemetry not associating with the expected entities. For more information please refer to Entity synthesis:
Attribute
Description
entity.guid
Unique identifier assigned to an entity by New Relic.
entity.name
Human-readable name of an entity, often used to identify an entity in the UI.
entity.type
Used to differentiate between different types of entities, like hosts, applications, etc.
Additional restrictions include:
Restriction
Comments
Metric and attribute names
You cannot pass the same value for metric name and attribute name.
In the following example, the metric is invalid because the metric is named service.errors.all and there is an attribute service.errors.all.
Example: Metric value used as an attribute (invalid)
[
{
"metrics":[
{
"name":"service.errors.all",
"type":"count",
"value":15,
"timestamp":1531414060739,
"interval.ms":10000,
"attributes":{
"service.response.statuscode":"400",
"service.errors.all":"test",
"service.name":"foo"
}
}
]
}
]
Reserved words
Avoid using reserved words, such as accountId, appId, and eventType. You should also avoid using NRQL syntax terms unless you backtick (``) them.
Keys within metric JSON
All keys used within the metric JSON cannot be attribute keys. This includes interval.ms, timestamp, value, common, min, max, count, sum, and metrics.
Exception: You can use name as an attribute key.
Restricted metric values
Any metric data submitted to the Metric API with a value equal to NaN (not a number), positive infinity, or negative infinity will be dropped.