Observability: как связать traces, metrics и logs при расследовании сбоя
Наблюдаемость нужна не для накопления как можно большего числа графиков, а для ответа на неизвестные вопросы о системе. Метрики показывают масштаб проблемы, трассы — путь запроса, журналы — детали конкретного события.
Начните с пользовательского результата
Определите критические сценарии и SLI: успешность, задержку, свежесть данных или корректность обработки. SLO задаёт приемлемую цель. Телеметрия должна помогать понять, почему сценарий нарушился, а не отражать только загрузку серверов.
Коррелируйте сигналы
Передавайте trace ID между сервисами и добавляйте его в структурированные журналы. Метрика сообщает, когда и где выросла ошибка; exemplar или ссылка ведёт к трассе; трасса помогает открыть нужные логи. Используйте стабильные атрибуты, но не помещайте персональные данные в labels.
Проектируйте полезные алерты
Алерт должен указывать наблюдаемое влияние, владельца и первый шаг проверки. Сигнал по каждому исключению создаёт шум. После инцидента сохраните timeline, первопричину и корректирующие меры, затем улучшите instrumentation и runbook на основе реального пробела.
Короткий чек-лист
- Телеметрия привязана к пользовательскому сценарию
- Trace ID проходит через сервисы
- Логи структурированы
- Алерты основаны на воздействии
- После инцидента обновляется runbook