openzipkin / openzipkin.github.io

content for https://zipkin.io
https://zipkin.io
Apache License 2.0
39 stars 64 forks source link

Track systems who accept Zipkin trace format #65

Open codefromthecrypt opened 7 years ago

codefromthecrypt commented 7 years ago

Zipkin's interop story is half-told by instrumentation. For example, we track which instrumentation can send zipkin formatted traces and/or use B3 propagation. I continue to hear people say there's no interoperable tracing systems, so I think it would be valuable to catalog system compatibility.

For example, we can mention directly the systems which..

Some times, this list changes.. for example, a system could gain traction by accepting zipkin then later switch to exclusively their own format. For that reason, this list would need to be maintained so that it doesn't mislead folks. I think that maintenance would be worthwhile as it debunks the myth that there's no interop story in tracing except by sharing libraries.

Here's a list of public work I'm aware of

Zipkin specs used for system interop

zipkin-api - some aren't aware that we publish our data format and OpenApi definition b3-propagation - while usually doesn't affect out-of-band data, and B3 isn't required by zipkin, the de-facto propagation format is relevant (particularly aspects like debug)

Converters that allow applications to send in Zipkin format.

Apache HTrace - HTrace is a different tracing system than zipkin, notably supporting data flow operations with multiple parents. There's a library and reporting plugin to convert HTrace -> Zipkin format Nike Wingtips - Wingtips is a log-centric different tracing system used at Uber. There's a library and reporting plugin to convert Wingtips -> Zipkin Uber Jaeger - Jaeger was internally designed at Uber and has a different data format than Zipkin. It is in the process of being open sourced. Currently, Jaeger's oss clients report spans in Zipkin's thrift format, some directly to Zipkin.

Other tracing systems that present Zipkin http Endpoints

Apache Phoenix Zipkin Api - Phoenix has its own tracing depot, but it has an adapter which exposes the http api of zipkin for the purpose of re-using its UI. Tracer - Tracer is a ground up system written in go. It has a different format than Zipkin, but it has an adapter which exposes the http api of zipkin for the purpose of re-using its UI. Google Stackdriver Trace Connector - Google Stackdriver Trace is a different tracing system than zipkin, and there's a connector that pushes Zipkin traces into StackDriver. This allows reuse of Zipkin compatible instrumentation. Hawkular APM - Hawkular is a different tracing system than zipkin, but it exposes an Http collector that consumes Zipkin traces. This allows reuse of Zipkin compatible instrumentation.

Zipkin http server ports

zipkin-query-go - port of zipkin (including the same mysql schema), written in golang. zipkin riposte - high performance zipkin http server using Nike Riposte zipkin armeria - high performance zipkin http server using Line Armeria http4s - pure scala port of the zipkin http api

codefromthecrypt commented 7 years ago

cc @openzipkin/core @openzipkin/instrumentation-owners

codefromthecrypt commented 7 years ago

added a link to the google blog about stackdriver and zipkin https://cloudplatform.googleblog.com/2016/12/Stackdriver-Trace-Zipkin-distributed-tracing-and-performance-analysis-for-everyone.html