Распределенная трассировка: от основ до production
2 / 1811%
Первый трейс за 15 минут
25 минут
Цель урока
Увидеть реальный трейс в UI за ~15 минут — так же, как в истории из первой главы. Никакой теории, только запуск и результат.
Что понадобится
- Docker (любая свежая версия).
- 2 свободных порта:
16686(для просмотра трейсов) и8080(для демо-приложения). Порт4318слушает Jaeger для приема данных от приложений.
Шаг 1. Запускаем Jaeger (демо-режим)
docker run -d --name jaeger \
-e COLLECTOR_OTLP_ENABLED=true \
-p 16686:16686 -p 4318:4318 \
jaegertracing/all-in-one:1.55Что происходит:
16686— браузерный порт: откройтеhttp://localhost:16686и увидите UI.4318— порт для приема данных (OTLP HTTP) от приложений.all-in-one— упрощенный демо-режим, не для продакшена.
Если 16686 занят, замените его в -p 16686:16686 на, например, -p 16687:16686 и откройте http://localhost:16687.
Шаг 2. Запускаем демо-приложение (HotROD)
docker run -d --name hotrod \
-p 8080:8080 \
--link jaeger \
jaegertracing/example-hotrod:1.55 \
all \
--jaeger-agent.host=jaegerЧто происходит:
- Поднимается демо такси-приложение на
http://localhost:8080. - Параметр
--jaeger-agent.host=jaegerговорит приложению, куда слать трейсы. - Флаг
--link jaegerдает контейнеру имяjaegerв сети (достаточно для демо).
Шаг 3. Создаем трейсы
- Откройте
http://localhost:8080. - Нажмите любую кнопку на карте (“123” или “987”).
- Подождите 3–5 секунд — в этот момент создается трейс.
- Повторите 2–3 раза, чтобы появился список трассировок.
Каждый клик генерирует цепочку спанов через несколько сервисов.
Шаг 4. Смотрим трейс в Jaeger
- Откройте
http://localhost:16686→ вкладка Search. - В поле Service выберите
frontend. - Нажмите Find Traces и кликните на самый верхний (свежий) трейс.
Что ищем в открывшемся трейсе:
- Вверху — общее время запроса (например, “4.8s”).
- Разноцветные горизонтальные полоски — это spans (отдельные операции).
- Ищите самую длинную полоску — обычно это
routeилиdatabaseв HotROD. - Название span подскажет, что именно тормозит.
Чеклист успеха
- В поиске Jaeger вижу список трейсов с временем (“4.8s”, “2.1s”).
- Открыл трейс — вижу разноцветные полоски (спаны).
- Нашел самую длинную полоску и прочитал ее название (
route/database). - Понимаю, что это тот самый «GPS-трекер для запроса» из первой главы.
Не видите трейсы? Проверьте: docker ps — оба контейнера в статусе Up.
Подождите 30 секунд после кликов. Попробуйте другой сервис в поиске:
customer или route. Если порты заняты, смените значения в -p и
перезапустите контейнеры.
Что дальше
Теперь, когда вы увидели трейс «вживую», переходите к разбору его внутренностей: spans, context и propagation.