Fixes #52
package tracing
package tracing
provides Dapper-style request tracing to services.
Rationale
Request tracing is a fundamental building block for large distributed applications. It's instrumental in understanding request flows, identifying hot spots, and diagnosing errors. All microservice infrastructures will benefit from request tracing; sufficiently large infrastructures will require it.
OpenTracing
Go kit builds on top of the OpenTracing API and uses the opentracing-go
package to provide tracing middlewares for its servers and clients. Currently
kit/transport/http
and kit/transport/grpc
transports are supported.
Since OpenTracing is an upcoming standard API, Go kit should support a multitude of tracing backends. If a Tracer implementation in Go for your back-end exists, it should work out of the box. The following tracing back-ends are known to work with Go kit through the OpenTracing interface and are highlighted in the addsvc example.
LightStep
LightStep support is available through their standard Go package lightstep-tracer-go.
AppDash
Appdash support is available straight from their system repository in the appdash/opentracing directory.
Zipkin
Zipkin support is now available from the zipkin-go-opentracing package which
can be found at the Open Zipkin GitHub page. This means our old custom
tracing/zipkin
package is now deprecated. In the kit/tracing/zipkin
directory you can still find the docker-compose
script to bootstrap a Zipkin
development environment and a README detailing how to transition from the
old package to the new.