As you get ready to send us data from your services instrumented with OpenTelemetry, make sure you're familiar with our support for OTLP.
OpenTelemetry Protocol (OTLP) is the telemetry exchange protocol used by OpenTelemetry instrumentation, agents, backends, and collectors. The protocol specification requires backwards compatibility to allow these components to continue communicating across versions, potentially with degraded functionality. As a backend, New Relic initially announced general availability support for OTLP version 0.10.0 on September 23, 2021. Since that time, a number of changes have been made to the protocol as it matures. As of September 30, 2022, New Relic supports OTLP version 0.18.0.
A milestone in protocol version 0.18.0 is the stability of core telemetry signals (logs, metrics, and traces) in the protocol. The stability definition details specific fields, numbers, and names which are guaranteed not to change and which ones may still change.
At this time, OTLP/JSON is not yet stable. Once it is, some parts of the protocol subject to change now will no longer be allowed as they would be visible on the wire.
Another key feature added between 0.10.0 and 0.18.0 is exponential histograms, which were added in 0.11.0 and refined in more recent releases. Exponential histograms are better for representing long tail distributions such as HTTP response time, more efficient to transport, and can be more optimally processed by backends like New Relic.
Below are more details about the notable changes between these two releases:
- Exponential histograms: New Relic supports the ingestion of exponential histograms using delta aggregation temporality. The min, max, and sum fields are optional but will be accepted.
LogRecord ObservedTimestamp: Added in 0.13.0, this field represents when a log record was first seen by OpenTelemetry collection components, for example, application instrumentation or a collector.
InstrumentationLibrary was renamed to
InstrumentationScope. Metrics, logs, and traces are stored under
InstrumentationScope are accepted. For each, the name and version are added as attributes:
We recommend the newer
InstrumentationLibrary will cease to be supported at some point in the future.
Some messages and fields were deprecated for metrics. Integer versions of each metric type have been removed.
StringKeyValue labels were removed, but older versions of OpenTelemetry components still using "labels" will be accepted as attributes by New Relic for backwards compatibility. This support will be removed at some point in the future.