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:
Ben Sigelman (@bensigelman)
Yuri Shkuro (@yurishkuro)
see the Contributors section for more information
Infrastructure requirements: CI and potentially CNCF Community Cluster access
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:
Self-contained OSS services (e.g., NGINX, Cassandra, Redis, etc)
OSS packages linked into custom services (e.g., grpc, ORMs, etc)
Arbitrary application glue and business logic built around the above
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.)
Ben Sigelman (bensigelman) LightStep
Yuri Shkuro (yurishkuro) Uber
Dan Kuebrich (dkuebric) AppNeta
Ben Cronin (bcronin) LightStep
Priyanka Sharma (pritianka) LightStep
Dimitrios Kouzis-Loukas (lookfwd) Bloomberg
Mck (michaelsembwever) Apache
Ivan Fraixedes (ifraixedes)
Github issue/discussion participation:
Rodrigo Fonseca (rfonseca) Brown University
Colin Patrick McCabe (cmccabe) Cloudera
Cagatay Kavukcuoglu (tinkerware) Base60Labs
Benjamin Eberlei (beberlei) Qafoo
Władysław Bodzek (wladekb)
Bogdan Drutu (bogdandrutu) Google
Grayson Koonce (breerly) Uber
Marcin Grzejszczak (marcingrzejszczak) Zipkin
Fabian Lange (CodingFabian) Instana
Paul Caporn (drpacman) BBC
Ben Sigelman (bensigelman) LightStep
Tobias Schottdorf (tschottdorf) Cockroach Labs
Yuri Shkuro (yurishkuro) Uber
Brandon Gonzales (bg451) Student
Josh MacDonald (jmacd)
Bas van Beek (basvanbeek)
Stephen Gutekanst (slimsag) Sourcegraph
Richard Scothern (RichardScothern) Docker
Tamir Duberstein (tamird) Cockroach Labs
Kris Kowal (kriskowal) (I think Uber)
Aleksey (IncSW)
Kyle Conroy (kyleconroy) Stripe
Blake Mizerany (bmizerany) Life360
Sebastián Vera (sebastianvera)
Ben Cronin (bcronin) LightStep
Ben Sigelman (bensigelman) LightStep
Onwukike Ibe (oike) Uber
Alexander Sorokin (syrnick)
Yuri Shkuro (yurishkuro) Uber
Yuri Shkuro (yurishkuro) Uber
Ben Sigelman (bensigelman) LightStep
Brandon Gonzales (bg451)
Dan Kuebrich (dkuebric) AppNeta
Ben Sigelman (bensigelman) LightStep
Adrian Cole (adriancole) Pivotal / Zipkin
Mck (michaelsembwever) Apache / Cassandra
Onwukike Ibe (oike) Uber
Yuri Shkuro (yurishkuro) Uber
Mohamed Ezzat (m-ezzat)
Christian Weiss (cwe1ss) Consultant
Daniel Wallin (dawallin) Frontwalker
Ben Sigelman (bensigelman)
Josh MacDonald (jmacd) LightStep
Dimitrios Kouzis-Loukas (lookfwd) Bloomberg
Ben Sigelman (bensigelman) LightStep