Zipkin: открытая система распределенного трейсинга от Twitter. Состоит из сервера (хранилище + UI) и клиентов. Spring Cloud Sleuth имеет интеграцию: если включить зависимость spring-cloud-sleuth-zipkin, приложение будет посылать собранные спаны на Zipkin Server (по умолчанию на http://localhost:9411) в фоновом режиме
spring.io. Zipkin Server можно быстро запустить: скачав jar zipkin.jar или через Docker, он хранит данные либо в памяти, либо в Elasticsearch/MySQL (в продуктиве). В Zipkin UI вы можете выбрать нужный Trace по id или отфильтровать по сервисам/меткам. Он отображает временную диаграмму: оси – микросервисы, по горизонтали – время. Видно, сколько мс запрос провел в OrderService, потом параллельно Payment и Inventory дернулись, Payment вызвал внешнюю систему и ждал 300 мс, и т.д. Это очень ценно для анализа производительности: легко обнаружить, что, скажем, 80% времени запроса уходит в внешнюю платежную систему – узкое место. Также помогает в отладке: если traceId известен из логов ошибки, в Zipkin можно найти этот trace и увидеть всю цепочку вызовов, какие статусы были, на каком шаге была ошибка (Zipkin помечает эроспаны).
Zipkin работает по принципу push: приложения шлют ему данные (Sleuth делает POST на /api/v2/spans). Есть альтернативы: Jaeger (CNCF, от Uber) – Sleuth может слать в него (через OpenTracing или OpenTelemetry Bridge), OpenTelemetry Collector – новый стандарт, Sleuth 3.x может через OTLP. Но на 2025 Spring еще поддерживает Brave/Zipkin как встроенный.
