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)
·
Ben Sigelman (bensigelman) LightStep
·
Josh MacDonald (jmacd) LightStep
·
Dimitrios Kouzis-Loukas (lookfwd) Bloomberg
·
Ben Sigelman (bensigelman) LightStep