DEV.co
Open-Source Observability · openzipkin

zipkin

Zipkin is an open-source distributed tracing system that collects and visualizes timing data across microservices to help diagnose latency issues. It provides a web UI for querying traces by service, operation, tags, and duration, plus dependency graphs showing service interactions. Applications instrument themselves to report trace data via HTTP, Kafka, or other transports, with storage options including in-memory, Cassandra, and Elasticsearch.

Source: GitHub — github.com/openzipkin/zipkin
17.4k
GitHub stars
3.1k
Forks
Java
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryopenzipkin/zipkin
Owneropenzipkin
Primary languageJava
LicenseApache-2.0 — OSI-approved
Stars17.4k
Forks3.1k
Open issues170
Latest release3.6.1 (2026-04-08)
Last updated2026-04-08
Sourcehttps://github.com/openzipkin/zipkin

What zipkin is

Zipkin is a Java-based tracing backend with a lightweight core library (155 KB, Java 8+) for encoding spans in v1/v2 JSON, a server requiring JRE 17+, and pluggable storage backends (in-memory, Cassandra 3.11.3+, Elasticsearch 5+, legacy MySQL v1). It supports multiple ingest transports (HTTP, Kafka, RabbitMQ, gRPC, ActiveMQ, Pulsar) and exposes REST APIs for span collection and querying, with optional search indexing and dependency link aggregation via separate jobs.

Quickstart

Get the zipkin source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/openzipkin/zipkin.gitcd zipkin# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Microservices latency troubleshooting

Pinpoint which services or operations are bottlenecks by tracing request flows end-to-end across service boundaries; jump directly to traces via trace IDs in logs.

Service dependency mapping and error path analysis

Automatically build dependency diagrams showing which services call which, with request counts and failure rates; identify deprecated service calls or unintended call chains.

Continuous operational observability

Maintain a persistent tracing backend for long-term trace retention and historical analysis; scale to high-volume production workloads with Cassandra or Elasticsearch.

Implementation considerations

  • Instrumentation required: applications must use a tracer library (e.g., Brave, OpenTelemetry instrumentation) to send trace data; Zipkin itself does not auto-instrument.
  • Storage backend choice drives scalability and retention: in-memory is dev-only; Cassandra and Elasticsearch require separate provisioning, monitoring, and backup procedures.
  • Dependency aggregation is asynchronous: requires running separate Spark jobs (zipkin-dependencies) to compute the dependency graph; real-time dependency visualization is not available.
  • Sampling strategy critical for cost: at high throughput, capture every trace is infeasible; configure head-based or tail-based sampling in instrumentation libraries to control ingest volume.
  • Java version baseline: core library supports Java 8+, but server requires JRE 17+; verify availability in your deployment environment.

When to avoid it — and what to weigh

  • Minimal operational overhead required — Zipkin requires running a dedicated server and storage backend; even the slim variant needs Elasticsearch or in-memory storage, plus ongoing maintenance.
  • Single-threaded or legacy monolith tracing only — Zipkin's value is clearest in distributed systems; monolithic applications or single-machine workloads may not justify the infrastructure overhead.
  • Real-time alerting is the primary need — Zipkin focuses on trace collection and lookup; it is not a metrics system or alerting platform. Use alongside Prometheus or similar for operational alerts.
  • No Java runtime environment available — Zipkin server requires JRE 17+; if your infrastructure cannot run Java, deployment becomes problematic (though Docker option exists).

License & commercial use

Apache License 2.0 (Apache-2.0). Permissive OSI-approved license allowing commercial use, modification, and distribution with standard ASL 2.0 obligations (preservation of copyright/license notice, statement of material changes).

Apache-2.0 permits unrestricted commercial use, including private deployment and modifications. No payment or licensing restrictions apply. Standard ASL 2.0 compliance required: retain copyright notices and state significant modifications. Review Apache-2.0 terms directly for your specific commercial context if uncertain.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

No security vulnerabilities reported in provided data. Typical considerations for a tracing backend: (1) Zipkin UI and REST API expose trace details; restrict network access and use TLS in production. (2) Span data may include sensitive information (user IDs, request payloads); implement filtering or sampling policies at instrumentation layer. (3) Storage backend security (Cassandra, Elasticsearch) is independent; apply standard hardening. (4) Java runtime security: stay current with JRE 17+ patches. No end-to-end encryption or authentication built into core; use reverse proxy or API gateway if needed.

Alternatives to consider

Jaeger (CNCF/Uber)

Cloud-native distributed tracing; CNCF-graduated, tighter Kubernetes integration, native gRPC support, and out-of-the-box sampling. Larger operational footprint but maturing faster in cloud-native ecosystems.

OpenTelemetry (with exporter to backend)

Vendor-agnostic instrumentation framework; you choose the backend (Jaeger, Zipkin, Tempo, etc.). Reduces lock-in and allows easier switching if needs evolve. Requires separate collector/exporter setup.

Grafana Tempo

Cloud-native, storage-agnostic tracing backend designed for scale and cost efficiency. Integrates natively with Grafana ecosystem. Newer project; less production history than Zipkin.

Software development agency

Build on zipkin with DEV.co software developers

Start with the Zipkin quick-start guide, choose your storage backend, and integrate a tracer library like Brave or OpenTelemetry into your applications.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

zipkin FAQ

Do I need to modify my code to use Zipkin?
Yes. Applications must integrate a tracer library (Brave, OpenTelemetry, etc.) to instrument code and send spans to Zipkin. Zipkin itself does not auto-instrument or use agents; this is intentional for control and minimal overhead.
Can Zipkin run on a single machine without a database?
Yes, for development/testing only. The in-memory storage option requires no external DB but does not persist traces and is unsuitable for production workloads. Production requires Cassandra, Elasticsearch, or legacy MySQL v1.
How much does Zipkin cost?
Zipkin software is free (Apache-2.0). Costs are operational: infrastructure for the Zipkin server (JVM), storage backend (Cassandra/Elasticsearch), and ingest/egress bandwidth. No licensing fees.
Does Zipkin work with Kubernetes?
Yes. Docker images (openzipkin/zipkin, openzipkin/zipkin-slim) simplify Kubernetes deployment. Standard Helm charts or manual manifests work. Ensure JRE 17+ and storage backend are configured (e.g., Elasticsearch StatefulSet).

Custom software development services

Adopting zipkin is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source observability software in production.

Ready to instrument your microservices?

Start with the Zipkin quick-start guide, choose your storage backend, and integrate a tracer library like Brave or OpenTelemetry into your applications.