Authored by Ted Young, Pritam Shah and the “technical specification committee” (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev, and Yuri Shkuro).
Update:The merged project now has a name! http://opentelemetry.io
We’re merging! The high level goal is to synthesize the OpenTracing and OpenCensus projects into a single, unified project. The core of the new project will be a set of clean and well thought interfaces, and a canonical distribution of libraries implementing those interfaces, referred to as the SDK. Recommended standards for data and wire protocols, along with common pieces of infrastructure, complete the project.
The result will be a complete telemetry system — suitable for monitoring microservices and other types of modern, distributed systems — and will be compatible with most major OSS and commercial backends.
4/24The reference candidate is presented for review.
5/8Teams form, and work begins in all languages.
5/20Project officially launched at Kubecon Barcelona.
9/6C#, Golang, Java, NodeJS, and Python reach parity with existing projects.
11/6OpenTracing and OpenCensus projects are officially sunset.
11/20Sunset party at Observability Summit, Kubecon San Diego.
The migration for each language involves building a production-ready SDK, instrumentation for popular libraries, documentation, CI, a backwards compatibility bridge, and closing down the associated OpenCensus and OpenTracing projects (“sunsetting”). We have set an ambitious goal of September 2019 as the target date for parity in C#, Golang, Java, NodeJS, and Python. If a language is not ready by that time, we will push back the sunset date until it is. But we prefer this not to happen.
Click here to view the timeline as aninfographic.
It is important that the project remain cohesive, even as we work in parallel on separate languages. The Cross-Language Specification provides this guidance for the project. It is written in prose, and ensures that we maintain a coherent system which feels familiar regardless of programming language.
The first draft of the x-lang spec requires the following:
This goal blocks all other work, and a first draft must be completed by May 8th.
The Data Specification defines a common data format for tracing and metrics, so that data exported by all processes can be processed by the same telemetry infrastructure, regardless of how the process generated the data. This includes a data schema for the tracing model described in the Cross-Language spec. But it is also includes metadata definitions for common operations that tracing is used to capture, such as HTTP requests, errors, and database queries. These semantic conventions are an example.
The first draft is based on the current OpenCensus data format, and will contain the following:
Note that there is also a wire protocol for propagating traces in-band, which we would like to standardize on. The Trace-Context propagation format is being developed via the W3C, and can be found here .
In order for the new project to replace the current ones, we must achieve parity with existing language ecosystems.
We also value backwards compatibility, and ensuring a smooth migration from the existing projects.
It is a lot of work to create a best-in-class SDK for each language, and this is where we need the most help.
Documentation is critical to the success of any open source project. We really want documentation and learning to be a first-class component, and people who write documentation are considered primary committers to this project. Teaching developers how to observe their software correctly is a critical part of the impact we want to make on the world.
At minimum, we need the following to get started:
Writers of all backgrounds and skill levels are welcome! The new website is based on Hugo, written in markdown, and is very easy to contribute to.
Another critical component is the Registry, an improved version of the OpenTracing Registry .
If you’re interested in design, front end, and UX, this is a great project to be a part of.
We have a project wide commitment to building a quality testing and release pipeline, to ensure we continue to ship safe code we can rely on. If you care about testing, benchmarking, and release pipelines, please let us know. We will clearly mark the level of production readiness and the maturity of the testing infrastructure will be a major deciding factor.
By September 6th, if the new project has reached parity, the existing projects will begin to be shut down. Two months after each language reaches parity, the corresponding OpenTracing and OpenCensus projects will be sunset. This means the following:
This is a huge project, and we need all hands on deck. If you’ve been curious to learn about observability, this is the perfect time to get involved!