Manfred Touron 5448f25fd6
glide up
2017-05-18 23:33:43 +02:00
..
2017-05-18 23:33:43 +02:00
2017-05-18 23:33:43 +02:00

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.