Effective observability requires high-quality telemetry

OpenTelemetry makes robust, portable telemetry a built-in feature of cloud-native software.

OpenTelemetry is the next major version of the OpenTracing and OpenCensus projects



The leadership of OpenCensus and OpenTracing have come together to create OpenTelemetry, and it will supersede both projects. You can read more in this post about the OpenTelemetry roadmap.


What is OpenTelemetry?

OpenTelemetry is made up of an integrated set of APIs and libraries as well as a collection mechanism via an agent and collector. These components are used to generate, collect, and describe telemetry about distributed systems. This data includes basic context propagation, distributed traces, metrics, and other signals in the future. OpenTelemetry is designed to make it easy to get critical telemetry data out of your services and into your backend(s) of choice. For each supported language it offers a single set of APIs, libraries, and data specifications, and developers can take advantage of whichever components they see fit.

Where can I read the OpenTelemetry specification?

The spec is available in the open-telemetry/specification repo on GitHub.

I want to start instrumenting production code today. What should I use?

We are still working on the first production-ready release of OpenTelemetry. For those who want to start instrumenting production code immediately, use either OpenCensus or OpenTracing. OpenTelemetry will provide compatibility bridges and there is no need to wait for production-ready OpenTelemetry APIs in your language.

I want to help influence the future direction of cloud-native telemetry. What should I do?

Excellent! The OpenTelemetry community repo has the full details, but here are a few good starting points: - Join our community mailing list - Keep up to date with the OpenTelemetry blog - We also have a very active chatroom on Gitter - All project meetings are shared on the public calendar (web, gCal, iCal), and we recommend attending the monthly community meeting - If your contributions will be focused on a particular language or feature area, join the special interest group leading its development


The term observability stems from the discipline of control theory and refers to how well a system can be understood on the basis of the telemetry that it produces.

In software, observability typically refers to telemetry produced by services and is divided into three major verticals:

  • Tracing, aka distributed tracing, provides insight into the full lifecycles, aka traces, of requests to the system, allowing you to pinpoint failures and performance issues.
  • Metrics provide quantitative information about processes running inside the system, including counters, gauges, and histograms.
  • Logging provides insight into application-specific messages emitted by processes.

These verticals are tightly interconnected. Metrics can be used to pinpoint, for example, a subset of misbehaving traces. Logs associated with those traces could help to find the root cause of this behavior. And then new metrics can be configured, based on this discovery, to catch this issue earlier next time.

OpenTelemetry is an effort to combine all three verticals into a single set of system components and language-specific telemetry libraries. It is meant to replace both the OpenTracing project, which focused exclusively on tracing, and the OpenCensus project, which focused on tracing and metrics.

OpenTelemetry will not initially support logging, though we aim to incorporate this over time.


Project launchMay 2019
Reference candidate released (Java)*June 2019
Language libraries released (Golang, Python, NodeJS, C#)*September 2019
Sunsetting of the OpenCensus and OpenTracing libraries*November 2019
OpenTelemetry at KubeCon San Diego*November 2019

* Dates are subject to change based on community participation and other factors

OpenTelemetry is a Cloud Native Computing Foundation sandbox project