• /
  • Log in
  • Free account

Metric API limits and restricted attributes

This document describes data requirements for the Metric API, including:

  • Maximum limits
  • Restricted attributes

Maximum limits

The following default limits apply for all Metric data:

Condition

Limit

Age range for timestamp values

Metrics reported with a timestamp older than 48 hours ago or newer than 24 hours from the time they are reported are dropped.

Max data points per minute (DPM)

See Additional account conditions.

1 million DPM

Max unique timeseries (cardinality) per account per day

See Additional account conditions.

1 million

A timeseries is a single, unique combination of a metric name and any attributes.

Max unique timeseries (cardinality) per metric name per day

100k

Max payloads per minute

100k

Max attributes per metric

100

Max metric attribute name length

255 characters

Max characters for an attribute key

255 characters

Max metric attribute value length

4096 characters

Allowed HTTP protocols

HTTPS only

Numerical long values falling outside minimum or maximum Java long values

Numerical long values that fall outside of the minimum or maximum Java long value will be rejected.

  • If the number is in the common block, then the entire block will be dropped.
  • If the number is in a metric data point, then the metric data point it resides in will be dropped.

Numerical double values falling outside minimum or maximum Java double values

Numeric double values that fall outside of a the minimum or maximum Java double value will be rejected.

  • If the number is in the common block, then the entire block will be dropped.
  • If the number is in a metric data point, then the metric data point it resides in will be dropped.

Payload size

Total maximum size or length: 1MB (10^6 bytes) maximum per POST. We highly recommend using compression.

Payload format

The payload must encoded as UTF-8.

Attribute naming syntax

Attribute names can be a combination of alphanumeric characters, colons (:), periods (.), and underscores (_).

The following default limits apply only to data collected via the Prometheus Remote Write integration:

Condition

Limit

Max unique Count and Summary timeseries (cardinality) per account per 5 minute interval

See Additional account conditions.

1 million

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. Trial and paid accounts receive a 1M DPM and 1M cardinality limit for trial purposes, but you can request up to 15M DPM and 15M cardinality for your account. 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.

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

The Metric API inherits some reserved words from New Relic Insights, including accountID, appId, and eventType. Additionally, the syntax terms for NRQL are restricted unless you backtick (``) them. For a full list, see Reserved words: NRQL syntax terms.

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.

Create issueEdit page
Copyright © 2022 New Relic Inc.