Apache Zipkin website screenshot

Apache Zipkin

Apache Zipkin is a distributed tracing system that helps gather timing data needed to troubleshoot latency problems in service architectures. It manages both the collection and lookup of tracing data through a collector and query service. Zipkin provides a REST API, web UI, and multiple storage backends (Cassandra, Elasticsearch, MySQL). It supports the B3 propagation format and is compatible with OpenZipkin instrumentation libraries. Originally created at Twitter, it is now maintained as an open-source project.

1 APIs 6 Features
Distributed TracingMicroservicesMonitoringObservabilityOpen Source

APIs

Apache Zipkin REST API

The Zipkin REST API v2 provides endpoints for querying trace data, service names, span names, and dependencies. Key endpoints include GET /api/v2/services (list services), GET /...

Collections

Zipkin API

OPEN

Pricing Plans

Rate Limits

Apache Zipkin Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Distributed Trace Collection

Collect timing and metadata for distributed service calls with B3 propagation headers.

Trace Query and Visualization

Web UI and REST API for searching and visualizing distributed traces with latency analysis.

Service Dependency Graph

Automatic service call graph generation from collected trace data.

Multiple Storage Backends

Cassandra, Elasticsearch, and MySQL storage backends for different scale requirements.

OpenTelemetry Compatible

Accepts OTLP/Zipkin spans from OpenTelemetry instrumented services.

B3 Propagation

Standard B3 trace propagation headers for distributed context passing across services.

Use Cases

Microservices Latency Troubleshooting

Identify bottlenecks and slow service calls in distributed architectures.

Service Dependency Mapping

Automatically discover and visualize service-to-service call graphs.

Performance Regression Detection

Compare trace data before and after deployments to detect performance regressions.

Root Cause Analysis

Follow distributed call chains to identify the root cause of errors and failures.

Integrations

Spring Cloud Sleuth

Spring Boot auto-instrumentation for trace propagation and Zipkin reporting.

Brave

Java instrumentation library (Brave) for adding Zipkin tracing to Java applications.

Elasticsearch

Elasticsearch storage backend for scalable trace data storage and search.

Apache Cassandra

Cassandra storage backend for high-volume trace data.

OpenTelemetry

OpenTelemetry Zipkin exporter for reporting OTLP traces to Zipkin.

Kafka

Kafka collector for ingesting spans from high-throughput microservice architectures.

Resources

👥
GitHubRepository
GitHubRepository
🔗
Documentation
Documentation
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
📄
ReleaseNotes
ReleaseNotes
💬
Support
Support
📜
TermsOfService
TermsOfService
📦
Python SDK
SDKs
📦
Java SDK
SDKs

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Zipkin API
  version: '2.0'
items:
- info:
    name: services
    type: folder
  items:
  - info:
      name: List service names with recorded spans
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/services
    docs: List service names with recorded spans
  - info:
      name: Get service dependency links
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/dependencies
      params:
      - name: endTs
        value: ''
        type: query
      - name: lookback
        value: ''
        type: query
    docs: Get service dependency links
- info:
    name: spans
    type: folder
  items:
  - info:
      name: Get span names recorded by a service
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/spans
      params:
      - name: serviceName
        value: ''
        type: query
    docs: Get span names recorded by a service
  - info:
      name: Upload a list of spans
      type: http
    http:
      method: POST
      url: http://{host}:{port}/api/v2/spans
      body:
        type: json
        data: '{}'
    docs: Upload a list of spans
- info:
    name: traces
    type: folder
  items:
  - info:
      name: Search traces matching filter criteria
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/traces
      params:
      - name: serviceName
        value: ''
        type: query
      - name: spanName
        value: ''
        type: query
      - name: annotationQuery
        value: ''
        type: query
      - name: minDuration
        value: ''
        type: query
      - name: maxDuration
        value: ''
        type: query
      - name: endTs
        value: ''
        type: query
      - name: lookback
        value: ''
        type: query
      - name: limit
        value: ''
        type: query
    docs: Search traces matching filter criteria
  - info:
      name: Get a single trace by id
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/trace/:traceId
      params:
      - name: traceId
        value: ''
        type: path
    docs: Get a single trace by id
  - info:
      name: Get multiple traces by comma-delimited ids
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/traceMany
      params:
      - name: traceIds
        value: ''
        type: query
    docs: Get multiple traces by comma-delimited ids
- info:
    name: autocomplete
    type: folder
  items:
  - info:
      name: List tag keys eligible for autocompletion
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/autocompleteKeys
    docs: List tag keys eligible for autocompletion
  - info:
      name: List known values for an autocomplete key
      type: http
    http:
      method: GET
      url: http://{host}:{port}/api/v2/autocompleteValues
      params:
      - name: key
        value: ''
        type: query
    docs: List known values for an autocomplete key
bundled: true