What is OpenTelemetry?
OpenTelemetry is an open-source observability framework hosted by Cloud Native Computing Foundation. It is a merger of OpenCensus and OpenTracing projects.
OpenTelemetry aims to provide a single standard across all types of observability signals such as OpenTelemetry traces, logs, and metrics.
OpenTelemetry specifies how to collect and send telemetry data to backend platforms. By providing a common data format and API, OpenTelemetry makes it easier for organizations to share and reuse telemetry data, and to integrate with a variety of observability tools and platforms.
OpenTelemetry works across cloud, on-premise, and hybrid environments, and supports a wide range of programming languages and technologies.
How to use OpenTelemetry?
The easiest way to get started with OpenTelemetry is to pick a distributed tracing tool (vendor) and follow the documentation. Most vendors provide pre-configured OpenTelemetry distros that allow you to skip some steps and can significantly improve your experience.
If you are looking for an open source solution, Jaeger is historically the default option, but Uptrace provides more features and might be a better choice nowadays.
Uptrace is an OpenTelemetry APM that uses ClickHouse database to store traces, metrics, and logs. You can use it to monitor applications and set up automatic alerts to receive notifications via email, Slack, Telegram, and more.
OpenTelemetry API is a programming interface that you can use to instrument code to collect telemetry data such as traces, metrics, and logs.
OpenTelemetry SDK is the official implementation of OpenTelemetry API that processes and exports collected telemetry to backends.
OpenTelemetry Instrumentations are plugins for popular frameworks and libraries that use OpenTelemetry API to record important operations, for example, HTTP requests, DB queries, logs, errors, and more.
OpenTelemetry Collector is a proxy between your application and a backend. It receives telemetry data, transforms it, and then exports data to backends that can store it permanently. Collector can also act as an agent that pulls telemetry data from monitored systems, for example, OpenTelemetry Redis or filesystem metrics.
OTLP is the OpenTelemetry protocol used by SDK and Collector to export data to backends or other collectors. As a transport, OTLP can use gRPC (OTLP/gRPC) or HTTP (OTLP/HTTP).
OpenTelemetry backend is responsible for receiving, storing, and analyzing the telemetry data collected by OpenTelemetry. It acts as a central repository or processing pipeline for the data, allowing you to aggregate, query, visualize, and gain insights from the telemetry data generated by your applications.