The OpenTelemetry Protocol (OTLP) is a set of rules, conventions, and standards that specify how OpenTelemetry-related components exchange telemetry data between a generating source system (the client), and its destination (the server). The protocol is part of the OpenTelemetry project and is implemented over gRPC and HTTP 1.1.
As part of the OpenTelemetry Project, OTLP is developed under the management of the Cloud Native Computing Foundation (CNCF). The protocol supports three types of observability data necessary to understand the state of information systems:
- Traces describe the execution flow of services and help identify bottlenecks in services composed of multiple components.
- Metrics are numerical and statistical information about the performance of applications and infrastructure, such as CPU utilization or network throughput.
- Logs provide detailed information about the state of applications and servers.
OTLP is designed to provide reliable delivery, high throughput, and support for encryption. The protocol attempts to address some limitations of earlier protocols. OTLP also tries to minimize the compute load for serialization and deserialization and use minimal memory. In addition, OTLP provides backpressure signaling, which allows servers to notify clients when they're unable to keep up with the load. In those cases, clients can throttle the amount of data sent to the server.
OTLP serves as a unified, vendor-neutral, and open standard for collecting and transmitting telemetry data from distributed systems. By adopting OTLP, organizations can achieve better insights into system behavior, enabling effective monitoring, troubleshooting, and performance optimization.