[VOTE] OpenTracing Project Proposal
The OpenTracing (http://opentracing.io/) team has iterated on their project proposal to a final one which is ready for voting by TOC members: https://github.com/cncf/toc/pull/15
So please vote! The proposal is also embedded below for your convenience:
Name of project: OpenTracing
Description: A set of consistent, expressive, vendor-neutral APIs for distributed tracing and context propagation, seeslides for the content we presented to the CNCF TOC.
Sponsor / Advisor from TOC: Bryan Cantrill <bryan@...>
Unique Identifier: opentracing
License: Apache License v2.0
Source control repositories:
Infrastructure requirements: CI and potentially CNCF Community Cluster access
Issue tracker: global - https://github.com/opentracing/opentracing.github.io/issues and per-platform issues are raised on the per-platform repository’s issues area
Release methodology and mechanics: Various across platforms
Social media accounts: Twitter: @opentracing
Existing sponsorship: Nothing formal; LightStep occasionally spends small amounts of money (hosting events, etc) on behalf of OpenTracing tech talks and so forth.
Really very little. The core OpenTracing libraries are facade APIs and thus only bring in dependencies that are needed to describe various function parameters and return values. In some cases there are test harnesses that bring in ubiquitous testing packages. OpenTracing is willing to go through and formally enumerate all of these dependencies, but suffice to say there’s nothing interesting to see and everything is permissively licensed.
Statement on alignment with CNCF mission:
OpenTracing is an open API standard for distributed tracing in applications and OSS packages. Developers with experience building microservices at scale understand the role and importance of distributed tracing: per-process logging and metric monitoring have their place, but neither can reconstruct the elaborate journeys that transactions take as they propagate across a distributed system. Distributed traces are these journeys.
So if distributed tracing is so valuable, why doesn’t everyone do it already? Because tracing instrumentation has been fragmented, syntactically inconsistent, and thus excessively expensive to deploy end-to-end across most cloud-native stacks.
Distributed tracing is challenging because the instrumentation must propagate the tracing context both within and between processes. Accomplishing this involves many distinct pieces in a (micro-)service stack. In particular, tracing context must be passed through:
And there’s the rub: It is not reasonable to ask all OSS services and all OSS packages and all application-specific code to use a single tracing vendor; yet, if they don’t share a mechanism for trace description and propagation, the causal chain is broken and the traces are truncated, often to the point of uselessness. We need a single, standard mechanism to describe the behavior of our systems. OpenTracing is that single, standard mechanism.
Regarding CNCF’s charter mission, OpenTracing is specifically concerned with making loosely-coupled [micro]services easier to manage. As such, it is strongly aligned with CNCF and its goal to “significantly increase the overall agility and maintainability of applications” by “[making] technology ubiquitous and easily available through reliable interfaces.” Indeed, OpenTracing and CNCF as a whole mutually benefit one another. (It should be noted that, as it is focused on standard instrumentation more than standard encoding formats, OpenTracing today is most relevant at the application layer; it has few specific opinions about — or strong dependencies on — the container layer or orchestration systems more generally, though service discovery and high-quality tracing are symbiotic.)
See also: the OpenTracing raison d’être on Medium
OpenTracing Semantics Repo (formally the opentracing.github.io docs repo)
Github issue/discussion participation:
Chris Aniszczyk (@cra) | +1-512-961-6719