Status: Mixed This document defines standard attributes for resources. These attributes are typically used in the Resource and are also recommended to be used anywhere else where there is a need to describe a resource in a consistent manner. The majority of these attributes are inherited from OpenCensus Resource standard. TODOs Add more compute units: AppEngine unit, etc. Add Web Browser. Decide if lower case strings only. Consider to add optional/required for each attribute and combination o...| OpenTelemetry
Status: Alpha Overview Environment variables provide a mechanism to propagate context and baggage information across process boundaries when network protocols are not applicable. This specification extends the API Propagators to define how the TextMapPropagator can be used with environment variables. Common systems where context propagation via environment variables is useful include: Batch processing systems CI/CD environments Command-line tools Propagator Mechanisms Propagating context via ...| OpenTelemetry
Status: Stable Overview Cross-cutting concerns send their state to the next process using Propagators, which are defined as objects used to read and write context data to and from messages exchanged by the applications. Each concern creates a set of Propagators for every supported Propagator type. Propagators leverage the Context to inject and extract data for each cross-cutting concern, such as traces and Baggage. Propagation is usually implemented via a cooperation of library-specific reque...| OpenTelemetry
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 Overview Baggage is a set of application-defined properties contextually associated with a distributed request or workflow execution (see also the W3C Baggage Specification). Baggage can be used, among other things, to annotate telemetry, adding contextual information to metrics, traces, and logs. In OpenTelemetry Baggage is represented as a set of name/value pairs describing user-defined properties. Each name in Baggage MUST be associated with exactly one value. This is more r...| OpenTelemetry
Status: Development A Schema File is a YAML file that describes the schema of a particular version. It defines the transformations that can be used to convert the telemetry data represented in any other older compatible version of the same schema family to this schema version. File Structure Here is the structure of the Schema File: # Defines the file format. MUST be set to 1.1.0. file_format: 1.1.0 # The Schema URL that this file is published at. The version number in the URL # MUST match th...| OpenTelemetry
Status: Development A Schema File is a YAML file that describes the schema of a particular version. It defines the transformations that can be used to convert the telemetry data represented in any other older compatible version of the same schema family to this schema version. File Structure Here is the structure of the Schema File: # Defines the file format. MUST be set to 1.0.0. file_format: 1.0.0 # The Schema URL that this file is published at. The version number in the URL # MUST match th...| OpenTelemetry
Status: Stable, except where otherwise specified Tracer Provider Tracer Creation It SHOULD only be possible to create Tracer instances through a TracerProvider (see API). The TracerProvider MUST implement the Get a Tracer API. The input provided by the user MUST be used to create an InstrumentationScope instance which is stored on the created Tracer. Status: Development - The TracerProvider MUST compute the relevant TracerConfig using the configured TracerConfigurator, and create a Tracer who...| 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 Motivation Telemetry sources such as instrumented applications and consumers of telemetry such as observability backends sometimes make implicit assumptions about the emitted telemetry. They assume that the telemetry will contain certain attributes or otherwise have a certain shape and composition of data (this is referred to as “telemetry schema” throughout this document). This makes it difficult or impossible to change the composition of the emitted telemetry data without...| 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
Status: Stable except where otherwise specified A Resource is an immutable representation of the entity producing telemetry as Attributes. For example, a process producing telemetry that is running in a container on Kubernetes has a Pod name, it is in a namespace and possibly is part of a Deployment which also has a name. All three of these attributes can be included in the Resource. Note that there are certain “standard attributes” that have prescribed meanings.| OpenTelemetry
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 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