Status: Stable. Overview A Context is a propagation mechanism which carries execution-scoped values across API boundaries and between logically associated execution units. Cross-cutting concerns access their data in-process using the same shared Context object. A Context MUST be immutable, and its write operations MUST result in the creation of a new Context containing the original values and the specified values updated. Languages are expected to use the single, widely used Context implement...| OpenTelemetry
Status: Stable This document defines the stability guarantees offered by the OpenTelemetry clients, along with the rules and procedures for meeting those guarantees. In this document, the terms “OpenTelemetry” and “language implementations” both specifically refer to the OpenTelemetry clients. These terms do not refer to the specification or the Collector in this document. Each language implementation MUST take these versioning and stability requirements, and produce a language-specif...| OpenTelemetry
Status: Stable, except where otherwise specified Overview The Metrics API consists of these main components: MeterProvider is the entry point of the API. It provides access to Meters. Meter is responsible for creating Instruments. Instrument is responsible for reporting Measurements. Here is an example of the object hierarchy inside a process instrumented with the metrics API: +-- MeterProvider(default) | +-- Meter(name='io.opentelemetry.runtime', version='1.0.0') | | | +-- Instrument(name='c...| OpenTelemetry
If you’ve been following OpenTelemetry for a while, you’ve probably heard a lot about logs. Log bridges, Logs API, events, you name it, we’ve talked about it. This blog post is intended to be a discussion of the rationale and current design direction of logging in OpenTelemetry. Definitions Let’s get started with a basic definition of how OpenTelemetry thinks about logs. Broadly, logs are any telemetry that is emitted through a log pipeline, and are created by calling the Logs API. Th...| OpenTelemetry
This quote from Charity Majors is probably the best summary of the current state of observability in the tech industry - a total, mass confusion.| isburmistrov.substack.com
Status: Mixed Users of OpenTelemetry need a way for instrumentation interactions with the OpenTelemetry API to actually produce telemetry. The OpenTelemetry SDK (henceforth referred to as the SDK) is an implementation of the OpenTelemetry API that provides users with this functionally. All language implementations of OpenTelemetry MUST provide an SDK. MeterProvider Status: Stable A MeterProvider MUST provide a way to allow a Resource to be specified. If a Resource is specified, it SHOULD be a...| OpenTelemetry
Status: Stable, except where otherwise specified The Tracing API consists of these main components: TracerProvider is the entry point of the API. It provides access to Tracers. Tracer is responsible for creating Spans. Span is the API to trace an operation. Data types While languages and platforms have different ways of representing data, this section defines some generic requirements for this API. Time OpenTelemetry can operate on time values up to nanosecond (ns) precision. The representati...| OpenTelemetry
Status: Stable, except where otherwise specified This is a data model and semantic conventions that allow to represent logs from various sources: application log files, machine generated events, system logs, etc. Existing log formats can be unambiguously mapped to this data model. Reverse mapping from this data model is also possible to the extent that the target log format has equivalent capabilities. The purpose of the data model is to have a common understanding of what a log record is, wh...| OpenTelemetry
The Instrumentation scope represents a logical unit within the application code with which the emitted telemetry can be associated. Developers can decide what denotes a reasonable instrumentation scope. For example, they can select a module, a package, or a class as the instrumentation scope. In the case of a library or framework, a common approach is to use an identifier as scope that is unique to the library or framework, such as a fully qualified name and version of the library or framewor...| OpenTelemetry
This document provides an overview of the OpenTelemetry project and defines important fundamental terms. Additional term definitions can be found in the glossary. OpenTelemetry Client Architecture At the highest architectural level, OpenTelemetry clients are organized into signals. Each signal provides a specialized form of observability. For example, tracing, metrics, and baggage are three separate signals. Signals share a common subsystem – context propagation – but they function indepe...| OpenTelemetry