liveBook · Manning

Zipkin

As explained in Troubleshooting Java, Second Edition

Zipkin is an open-source distributed tracing system for collecting and visualizing timing data for requests across services.

Zipkin is an open-source distributed tracing backend that collects and displays spans from instrumented services. It groups spans by trace ID so developers can inspect request timing, errors, delays, and service-to-service flow. section 12.1.2 section 12.1.1

Use Zipkin when logs leave gaps across service boundaries:

  • Search and explore complete request traces across distributed services. section 12.1.2
  • Compare span durations to locate slow calls, database work, or services contributing to latency. section 12.1.2
  • Inspect failures and asynchronous paths when a request crosses HTTP, gRPC, or message queues. section 12.1.1

Following a missing order

A checkout request calls an order service, which publishes an event to Kafka, while fulfillment stores details in a database. A trace timeline can reveal whether the delay or failure occurs in the REST call, database work, Kafka publication, or downstream processing. A deserialization warning such as an unknown enum value can explain why fulfillment never processes the order. section 12.1.1 section 12.1.2

Figure 12.3 OpenTelemetry collects relevant data from the running service. Jaeger and Zipkin are tools that aggregate and display nicely this data to help you easily troubleshoot the system.

Use the architecture diagram to connect service instrumentation, OpenTelemetry collection, and Zipkin visualization. section 12.1.2

How Troubleshooting Java, Second Edition covers it

How deep it goes
Explains backend placement, span collection, trace grouping, and visualization, but defers detailed Zipkin configuration.
Examples
Uses a checkout trace tree, a missing-order investigation, Kafka event processing, and a deserialization warning.
What it assumes
Assumes distributed services and introduces trace IDs, spans, propagation, and instrumentation through concrete request flows.
What you can do after
Diagnose cross-service delays, failures, and broken request chains by inspecting correlated traces and spans.
How it connects
Connects OpenTelemetry, Jaeger, distributed tracing, trace IDs, spans, HTTP, gRPC, Kafka, Kubernetes, and Docker.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Troubleshooting Java, Second Edition. The section links point to the parts of the book it draws on.