Zipkin
What is Zipkin?
Zipkin is an open-source
Distributed Tracing System (DTS) (observability) that collects, stores, and visualizes timing data for requests as they propagate through microservice-based and distributed architectures.
- Distributed tracing data collection, storage, and query across services (observability)
- Switched Port Analyzer (SPAN) and trace model for timing, latency, and dependency analysis (application performance monitoring)
- Hypertext Transfer Protocol (HTTP) and message-based APIs for ingesting and querying trace data (data integration)
- UI for visualizing traces, spans, and service dependencies (monitoring and troubleshooting)
- Integration with tracing instrumentation libraries and middleware in multiple languages (developer tooling)
Show more
More About Zipkin
Zipkin addresses distributed tracing (observability) for microservices and other distributed systems by recording timing and metadata about requests as they traverse multiple services and infrastructure components. It provides a central service that receives tracing data from instrumented applications, stores it, and exposes it through query APIs and a web user interface. Enterprises use Zipkin to understand request paths, measure latency, and identify where time is spent across service boundaries.
At the core of Zipkin is a tracing data model based on spans and traces (application performance monitoring). A trace represents a single logical request or transaction, while spans represent individual units of work within that trace, such as an HTTP call, a database operation, or an internal function. Each span records timestamps, duration, tags, and relationships to parent or child spans, enabling construction of an end-to-end view of how a request flows through a system. This structure supports dependency analysis, latency breakdowns, and error localization.
Zipkin exposes HTTP and related APIs for tracing data ingestion and querying (data integration). Instrumented services send span data to Zipkin using client libraries or middleware that implement Zipkin’s trace context propagation format. The server component accepts incoming spans, writes them to configured storage backends, and provides query endpoints that drive the user interface or external tools. The Zipkin UI (monitoring and troubleshooting) allows users to search for traces by service, duration, annotations, or time window, and then inspect individual traces through timeline and dependency views.
The project supports pluggable storage backends (data storage), as described in its official materials, enabling deployment with different databases depending on operational requirements. This allows organizations to align Zipkin deployments with existing infrastructure architectures. Zipkin’s integration model (developer tooling) focuses on interoperability with widely used instrumentation libraries and frameworks, which propagate trace identifiers across process and network boundaries. Through these integrations, Zipkin can collect traces from polyglot environments and heterogeneous service stacks.
In enterprise settings, Zipkin is deployed as a core observability component (IT operations) within microservice platforms, service meshes, and cloud-native environments. Operations teams use it to diagnose latency issues, verify service dependencies, and support performance tuning. Architects employ trace data to validate system designs and to understand cross-service interactions. From a taxonomy perspective, Zipkin fits into distributed tracing and application performance monitoring categories within the broader observability and monitoring landscape.