About this project

Zipkin is a distributed tracing system for gathering timing data needed to troubleshoot latency problems in service architectures. It supports both collection and lookup of trace data. Users can open a trace directly by ID from logs or query by service, operation name, tags, duration, and other attributes. The UI summarizes information such as time spent in services and operation failures, and it displays a dependency diagram showing traced request volume between applications, including aggregate error paths. Applications must be instrumented with a tracer or instrumentation library to report spans. Zipkin can receive data over HTTP and Kafka, with additional transport options including ActiveMQ, gRPC, RabbitMQ, and Pulsar. The server serves the web UI and APIs, while span data can be kept in memory for testing or stored in supported persistent backends. Deployment options include a self-contained executable JAR requiring JRE 17 or later, Docker images, Homebrew, and Helm charts. A slim build is smaller and starts faster, supporting in-memory and Elasticsearch storage but omitting messaging transports such as Kafka and RabbitMQ. Storage components include in-memory storage for tests, Cassandra, and Elasticsearch/OpenSearch. Cassandra and Elasticsearch dependency links are aggregated through the separate zipkin-dependencies job. A legacy MySQL v1 storage component remains for transition, although the README notes its schema was not designed for high performance. Search endpoints can be disabled to reduce storage cost or increase write throughput, leaving trace retrieval by ID only. The repository also contains the minimal Java core library used by instrumentation and server code, including codecs for Zipkin v1 and v2 JSON span models. The core library targets Java 8+, while storage components and the current server require Java 17+. Server artifacts are published under the io.zipkin Maven group, library artifacts under io.zipkin.zipkin2, and container images are available on Docker Hub and GitHub Container Registry.