Zipkin is a distributed tracing system that helps us gather timing data for all the disparate services at Twitter.
See http://twitter.github.com/zipkin
Zipkin provides three services:
- To collect data:
bin/collector
- To extract data:
bin/query
- To display data:
bin/web
You can run these services immediately after downloading Zipkin. Once all three daemons are running, you should be able to visit http://localhost:8080 to view the Zipkin UI. There is also a browser extension which shows visualizations of traces of each page as you browse your website.
The next step is to collect trace data to view in Zipkin. To do this, interface with the collector (e.g. by using Scribe) to record trace data. There are several libraries to make this easier to do in different environments. Twitter uses Finagle; external libraries (currently for Python, REST, node, and Java) are listed in the wiki; and there is also a Ruby gem and Ruby Thrift client.
See the in-depth installation guide for more information on larger / more complex Zipkin installations.
Check out the #zipkin IRC channel on chat.freenode.com to see if any developers are there for questions or live debugging tips. Otherwise, there are two mailing lists you can use to get in touch with other users and developers.
Users: https://groups.google.com/group/zipkin-user
Developers: https://groups.google.com/group/zipkin-dev
Noticed a bug? https://github.com/twitter/zipkin/issues
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
We use SemVer style versioning.
Copyright 2012 Twitter, Inc.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0