Zipkin is a distributed tracing system. It is used by Twitter to help gather timing data for all their disparate services. The front end is a "waterfall" style graph of service calls showing call durations as horizontal bars:
Zipkin is a collection of processes (a backend for the data, a "collector", and query engine, and a web UI) and all of them need to be running to make any progress:
If you are familiar with Docker, the
quickest way to get started quickly is to use the
Docker Zipkin project,
which (in addition to being able to build docker images) provides
scripts and a
for launching pre-built images, e.g.
$ git clone https://github.com/openzipkin/docker-zipkin $ cd docker-zipkin $ docker-compose up
If you are happy building from source you can use the scripts in the
bin directory of this repository.
Here's how to start zipkin using the default file-based backend and view traces.
# get the zipkin source and change to its directory $ git clone https://github.com/openzipkin/zipkin; cd zipkin # start the collector server in a new terminal session or tab $ ./bin/collector # start the query server in a new terminal session or tab $ ./bin/query # start the web server in a new terminal session or tab $ ./bin/web # create dummy traces $ ./bin/tracegen # open the ui and look at them! $ open http://localhost:8080/
Join the openzipkin/zipkin gitter chat for questions and to talk with the developers. Otherwise, there are two mailing lists you can use to get in touch with other users and developers.
Noticed a bug? Please file an issue
See CONTRIBUTING.md for guidelines.
Areas where we'd love to see contributions:
- adding tracing to more libraries and protocols
- interesting reports generated with Hadoop from the trace data
- extending collector to support more transports and storage systems
- trace data visualizations in the web UI