Merging OpenTracing and OpenCensus: Goals and Non-Goals
Authored by the “bootstrap committee” (Ben Sigelman, Bogdan Drutu, Sarah Novotny, Sergey Kanzhelev, and Yuri Shkuro) for the merged project.
Two projects — OpenTracing and OpenCensus — are very similar in that they aim to unify app instrumentation and make observability a built-in feature in every modern application. Over the past few months, leaders from both communities have formed a seed committee to define how the projects can converge. The seed committee has created a technical committee that will actually facilitate project convergence.
What follows are a few overarching goals (and non-goals) regarding the merger:
Not a third project
The technical committee’s goal is to develop a plan and set up the grounds for the projects and communities behind OpenCensus and OpenTracing to merge, rather than creating a separate project that provides compatibility between them. The idea is to have a plan in place that will maximize compatibility and optimize for an easy (and brief) migration period for existing repositories.
Not a fresh start
The technical committee’s first priority is to reduce the number of instrumentation standards to one. Part of this tradeoff is resisting the temptation to add net-new features or undertake a larger refactor or redesign which could hinder migrations or backwards-compatibility. After merging the projects and communities, we will be in a better position to enable new features and innovations down the road.
Not a complete superset of functionality
The technical committee will ensure that the most important developer scenarios remain supported and will prioritize end-user benefits and standardization over feature requests from individual tracing/observability projects or vendors. Furthermore, we recognize that the converged project will not necessarily be a complete superset of all features from both projects, though of course essential functionality will be preserved. When backwards-compatibility is in tension with our other objectives here, we will reach out to end-users to help guide our decision-making process.
Adoption and community migration
One of the greatest user priorities is the ease of migration. To that end, we will do our best to satisfy the following requirements:
- An application using OpenTracing instrumentation today “just works” with the new project
- An app using OpenCensus instrumentation today “just works” with the new project
- A mix of OpenTracing, OpenCensus, and “native” instrumentation “just works” with the new project
For implementers of the OpenTracing and OpenCensus APIs/SPIs — be they vendors or other open-source projects — we will create clear guidance for migrations to support the new project natively.
Loose coupling of components
The converged project will be easy to enable and use, and will provide a compelling set of features out of the box. However, there will still be a room for customizations and innovations. While we will prefer built-in customizations, we will design components to be loosely coupled in order to leave room for innovations and forwards-compatibility.
Not just “tracing”
Though the various components will be loosely coupled and consumed separately, the scope of the merged project includes data sources beyond distributed transaction traces. After all, instrumentation and observability involve other data sources, too. So the surface area of merged project APIs will incorporate a variety of signals, like metrics, traces and logs.
We are publishing this set of goals (and non-goals) to make our intentions to merge clear to our shared ecosystem. As of the time of this writing, there is a small technical committee hashing out the nitty-gritty details of an API and reference implementation consistent with the above principles. Per our “ease of adoption” goal, we are trying our best to provide backwards-compatibility as well as clean, gradual transition plans for existing users of both OpenTracing and OpenCensus.
We would love to hear from the larger community: please provide feedback proactively on the OpenCensus gitter, OpenTracing gitter or file an issue. As we continue to make progress, we will post updates to the OpenCensus and OpenTracing blogs.
We are optimistic about the future of this single converged project and the larger ecosystem it will enable!