# openzipkin/zipkin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openzipkin-zipkin).**

17,430 stars · 3,103 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/openzipkin/zipkin
- Homepage: https://zipkin.io/
- awesome-repositories: https://awesome-repositories.com/repository/openzipkin-zipkin.md

## Topics

`distributed-tracing` `observability` `openzipkin` `tracing` `zipkin`

## Description

Zipkin is an open-source distributed tracing system designed to collect, store, and visualize timing data across complex service architectures. It provides a platform for monitoring request lifecycles, enabling developers to identify latency bottlenecks and performance issues by tracking operations as they move through heterogeneous service environments.

The system distinguishes itself through a standardized data model and a pluggable storage architecture that supports various backend databases. It utilizes sampling strategies to manage telemetry volume and employs asynchronous collection methods to minimize the performance impact on instrumented applications. By propagating unique trace identifiers across service boundaries, it maintains a continuous view of request execution even in asynchronous messaging scenarios.

The platform includes a comprehensive suite of tools for instrumenting code, transporting telemetry via multiple protocols, and reconstructing traces for analysis. It generates service dependency maps to visualize interaction patterns and provides a graphical interface for querying and inspecting trace data, including support for custom metadata and temporal event logging.

## Tags

### System Administration & Monitoring

- [Distributed Tracing Systems](https://awesome-repositories.com/f/system-administration-monitoring/distributed-tracing-systems.md) — Provides a platform for collecting, storing, and visualizing timing data to troubleshoot latency in distributed service architectures.
- [Application Performance Monitoring Platforms](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring-platforms.md) — Records temporal events and trace context to provide end-to-end visibility into request flows across complex microservice environments.
- [Distributed Tracing Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/distributed-tracing-instrumentation.md) — Integrates tracing logic into application code to capture timing data and propagate trace context across service boundaries. ([source](https://zipkin.io/pages/tracers_instrumentation))
- [Telemetry Sampling Strategies](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-sampling-strategies.md) — Selectively records a subset of incoming requests to balance system visibility with the overhead of processing and storing telemetry.
- [Trace Visualization](https://awesome-repositories.com/f/system-administration-monitoring/trace-visualization.md) — Provides a graphical interface to inspect and analyze distributed traces, helping developers identify latency and performance bottlenecks. ([source](https://zipkin.io/pages/architecture.html))
- [Application Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring.md) — Tracks runtime performance and latency bottlenecks in distributed software to ensure system reliability.
- [Asynchronous Telemetry](https://awesome-repositories.com/f/system-administration-monitoring/asynchronous-telemetry.md) — Buffers and transmits timing data in the background to minimize performance impact on the primary application execution path.
- [Distributed Observability Platforms](https://awesome-repositories.com/f/system-administration-monitoring/distributed-observability-platforms.md) — Provides a unified platform for monitoring request lifecycles and identifying latency bottlenecks across complex microservice architectures.
- [Service Dependency Mapping](https://awesome-repositories.com/f/system-administration-monitoring/service-dependency-mapping.md) — Identifies network request destinations and generates diagrams showing request flow between applications to visualize aggregate behavior. ([source](https://zipkin.io/pages/data_model.html))
- [Trace Querying](https://awesome-repositories.com/f/system-administration-monitoring/trace-querying.md) — Enables searching and retrieving indexed trace data based on specific services, time ranges, or custom annotations. ([source](https://zipkin.io/pages/architecture.html))
- [Trace Sampling](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling.md) — Manages telemetry volume by selectively recording requests to balance system visibility with processing overhead. ([source](https://zipkin.io/pages/tracers_instrumentation.html))
- [Trace Metadata](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/execution-tracing-analysis/trace-metadata.md) — Allows attaching key-value pairs to trace data to provide necessary context for requests and enable exact-match searching. ([source](https://zipkin.io/pages/instrumenting.html))

### Networking & Communication

- [Distributed Tracing](https://awesome-repositories.com/f/networking-communication/distributed-tracing.md) — Records timing data for inbound and outbound service calls to visualize the flow of operations across a distributed system architecture. ([source](https://zipkin.io/pages/data_model.html))
- [Tracing Context Propagation](https://awesome-repositories.com/f/networking-communication/tracing-context-propagation.md) — Passes unique identifiers across service boundaries using standard protocols to maintain a continuous trace across distributed system components. ([source](https://zipkin.io/pages/tracers_instrumentation.html))
- [Interoperability Standards](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/interoperability-standards.md) — Defines a consistent schema for timing information and metadata to ensure interoperability between diverse services and analysis tools.

### Development Tools & Productivity

- [Observability Suites](https://awesome-repositories.com/f/development-tools-productivity/open-source-software/observability-suites.md) — Functions as an open-source telemetry collection and analysis suite for tracking request lifecycles across heterogeneous services.

### Part of an Awesome List

- [Distributed Tracing](https://awesome-repositories.com/f/awesome-lists/devops/distributed-tracing.md) — Collects and visualizes timing data for distributed system requests.
- [Monitoring & APM](https://awesome-repositories.com/f/awesome-lists/devops/monitoring-apm.md) — Distributed tracing system for latency troubleshooting.
- [JVM Profiling Tools](https://awesome-repositories.com/f/awesome-lists/devtools/jvm-profiling-tools.md) — Distributed tracing system for timing data.

### Data & Databases

- [Data Storage](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage.md) — Persists collected span data into various backend databases or cloud-native storage systems for long-term analysis and retrieval. ([source](https://zipkin.io/pages/architecture.html))
- [Pluggable Storage Drivers](https://awesome-repositories.com/f/data-databases/pluggable-storage-drivers.md) — Abstracts database interactions through a common interface to allow swapping between memory, relational, or NoSQL storage systems.

### Software Engineering & Architecture

- [Dependency Graph Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-graph-analyzers.md) — Analyzes collected span metadata to map service interactions and visualize the flow of requests across complex system architectures.
- [Asynchronous Tracing](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-tracing.md) — Links producers and consumers of messages by creating child spans that maintain trace context without requiring shared span identifiers. ([source](https://zipkin.io/pages/instrumenting.html))
- [Data Interoperability](https://awesome-repositories.com/f/software-engineering-architecture/data-interoperability.md) — Relays collected span information to secondary analysis systems or exposes standardized data formats to ensure cross-platform compatibility. ([source](https://zipkin.io/pages/extensions_choices))
- [Event Logging](https://awesome-repositories.com/f/software-engineering-architecture/event-logging.md) — Logs specific points in time during a request lifecycle to measure latency and identify the start and end of operations. ([source](https://zipkin.io/pages/instrumenting.html))

### Testing & Quality Assurance

- [Performance Measurement](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-diagnostics/performance-measurement.md) — Records start timestamps and total elapsed time in microseconds to ensure accurate performance analysis and avoid errors caused by clock skew. ([source](https://zipkin.io/pages/instrumenting.html))

### DevOps & Infrastructure

- [Telemetry Data Pipelines](https://awesome-repositories.com/f/devops-infrastructure/telemetry-data-pipelines.md) — Ingests, stores, and forwards performance data from various transport protocols to centralized backends for analysis.
