OpenCensus and OpenTracing are now OpenTelemetry
Published by Steve Flanders on
The future of observability is here! Not only are the two projects merging to create unilateral support and development towards observability standards, OpenTelemetry has also been accepted as a CNCF project. Developers now have an integrated set of APIs and libraries as well as a collection mechanism for distributed traces and metrics (logs coming soon).
Microservices have become the de facto standard for how new applications are being architected. The benefits to scale and developer agility have been well documented. The downsides, however, are most apparent when application issues occur. Existing solutions for monitoring and observability were not designed to keep up with the rapid pace of change in these environments, nor the scale and distribution of these applications. This is the leading driver for establishing an open source standard for observability.
In 2016, OpenTracing introduced an open-standard API specification for distributed tracing data. In addition, it supplemented this specification with open-source client libraries and semantic conventions. The focus of OpenTracing was on API standards, not implementation. As a result, users were left with tackling the problem of implementation.
In 2018, Google announced the OpenCensus project. The goal was to define an end-to-end implementation for observability data (the initial focus was distributed tracing data and metrics). It did this by defining an end-to-end implementation via a wire format, client libraries, an agent, and a collector. Along with Google, we (Omnition), and Microsoft are the core contributors and maintainers.
Unfortunately, OpenTracing and OpenCensus had some overlap and were not compatible. This caused confusion in the user community and OpenTelemetry is the result of an effort to combine the two solutions. The goal of OpenTelemetry is to retain the best aspects from both OpenCensus and Opentracing, while offering a single vendor-agnostic, open-standards and open-source solution for all observability data.
To successfully merge the two projects, we’ll be deprecating the OpenTracing and OpenCensus projects. The dates we are currently tracking are:
|Sep 6||C#, Golang, Java, NodeJS, and Python reach parity with existing projects.|
|Nov 6||OpenTracing and OpenCensus projects are officially sunset.|
|Nov 20||Sunset party at Observability Summit, Kubecon San Diego.|
So what does this mean for existing users of either solution? The plan is to offer a bridge between the previous projects and this new one. The bridge will ensure backwards compatibility while users adopt the OpenTelemetry standard. Existing users of either project will be supported via backwards compatibility until 2021.
In addition, if you are using the OpenCensus Service (either Agent or Collector) then nothing will change. In the near future, a new receiver will be introduced. This receiver will be available in an upgrade to the existing Service. In short, nothing should prevent you from using the OpenCensus Service today.
We joined Google on OpenCensus from the beginning as we believe that open standards and open source telemetry collection is extremely beneficial to application developers. In addition to standardization, we believe it is critical that any collection mechanism be vendor-agnostic empowering users to choose the tools that best solve their particular business needs. While we work behind the scenes transitioning OpenCensus to OpenTelemetry we are also tackling the three remaining challenges of observability:
- Ingesting high volumes of data at full fidelity
- Being able to ask the right questions of your data while delivering a great user experience
- Solving availability and performance issues through event causality