Чем метрики, логи и трейсы дополняют друг друга? С какого сигнала начнёшь, если пользователи жалуются на медленный API?
как ответить Метрики быстро показывают масштаб и время проблемы, логи объясняют конкретные события, а трейсы раскладывают один запрос по сервисам и зависимостям. Я начну с метрик задержки и ошибок, сузю интервал и сегмент, затем открою медленный трейс и связанные с ним структурированные логи. Один сигнал редко даёт и симптом, и причину.
У сигналов разные сильные стороны:
- метрики дёшево агрегируются и подходят для алертов, трендов и сравнения сегментов;
- логи сохраняют дискретные события и контекст ошибки, но поиск по огромному потоку дорог;
- распределённый трейс показывает критический путь запроса, длительность спанов и границу, на которой возникла задержка.
Практический порядок — от общего к частному. Сначала подтверждаем пользовательский симптом по rate ошибок и распределению latency, отмечаем регион, маршрут и версию. Затем берём trace ID медленного запроса, находим самый долгий или ошибочный span и только после этого читаем логи нужного сервиса в том же временном окне.
Ловушка — начинать с случайного лога на одной машине: без масштаба и корреляции легко принять единичную ошибку за причину общего сбоя. Все три сигнала должны разделять согласованные имена сервиса, окружения и идентификаторы трассировки, но не обязаны хранить одинаковый объём данных.
чтобы прозвучать сильнее Добавь, что путь расследования должен сохранять контекст между сигналами: из алерта — в дашборд, из exemplar или trace ID — в трейс, из span — в логи конкретного сервиса.