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.

FAQ


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.

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?

You should join us in the OpenTelemetry community! You can find more details in the OpenTelemetry community repo on GitHub: all are welcome and there’s lots to do.

Observability


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.

Timeline


MilestoneDate
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