OpenTelemetry (OTEL) is an open source observability framework that offers a group of technologies for instrumenting, generating, compiling and exporting telemetry data (traces, metrics and logs).
Traces give you the big picture of what happens when a request is made to an application. Whether your application is a monolith with a single database or a sophisticated mesh of services, traces are essential to understanding the full “path” a request takes in your application (taken from here).
A trace represents the entire execution path of the request, and each span in the trace represents a single unit of work during that journey, such as an API call or database query.
Whenever the request enters a service, a top-level child span is created. If the request made multiple commands or queries within the same service, the top-level child span may act as a parent to additional child spans nested beneath it.
Distributed tracing is a method of tracking application requests as they flow from frontend devices to backend services and database.
Context Propagation is the core concept that enables Distributed Tracing. With Context Propagation, Spans can be correlated with each other and assembled into a trace, regardless of where Spans are generated.
A metric is a measurement of a service captured at runtime.
A log is a timestamped text record, either structured (recommended) or unstructured, with metadata.
The purpose of OTEL is to provide a Software Development Kit (SDK), API and standardized tools for consuming, transforming and sending data to an observability backend.
OpenTelemetry is focused on the generation, collection, management, and export of telemetry.
A major goal of OpenTelemetry is that you can easily instrument your applications or systems, no matter their language, infrastructure, or runtime environment. The storage and visualization of telemetry is left to other tools (Observability Backends).
Why OpenTelemetry?