Метрики, логи и трейсы

Урок про три столпа наблюдаемости и про то, какой сигнал какую задачу решает.

Три столпа наблюдаемости — это метрики, логи и трейсы: три типа телеметрии, дополняющих друг друга.

Когда что-то ломается, вы обычно проходите путь: «вижу аномалию» → «понимаю масштаб» → «нахожу конкретную причину». Эти три фазы хорошо ложатся на три типа сигналов. Понимать их различия важно, чтобы не пытаться, например, считать процентили задержки по логам, когда удобнее метрики.

Метрики

Метрика — это число во времени с набором меток (лейблов). Например, «количество HTTP-запросов» с метками метода и кода ответа. Метрики дёшевы в хранении и идеальны для трендов, графиков и алертов.

http_requests_total{method="GET", status="200"} 14823
http_requests_total{method="GET", status="500"} 37

По метрикам легко спросить «сколько ошибок в секунду» или «какая задержка у 99% запросов», но нельзя узнать детали конкретного сбойного запроса.

Логи

Лог — это запись о конкретном событии с подробностями: время, сообщение, контекст. Логи отвечают на вопрос «что именно произошло вот в этом случае».

2026-06-22T10:15:03Z level=error msg="db timeout" user_id=991 query_ms=5021

Логи богаты деталями, но дороги при больших объёмах и плохо подходят для подсчёта агрегатов в реальном времени.

Трейсы

Трейс — это путь одного запроса через несколько сервисов, разбитый на span'ы с длительностями. Трейсы незаменимы, когда задержку создаёт цепочка из десятка микросервисов и нужно понять, где именно теряется время.

trace abc123
 |-- gateway        12ms
 |   |-- auth        4ms
 |   |-- orders     180ms   <-- узкое место
 |       |-- db     175ms

Как работает под капотом

Метрики хранятся как временные ряды: пара «момент времени → число». Они компактны, потому что система запоминает не каждое событие, а агрегат за интервал. Логи и трейсы хранят отдельные записи, поэтому их объём растёт линейно с трафиком — отсюда и более высокая стоимость.

СигналОтвечает на вопросСтоимость
МетрикиСколько? Как быстро? Какова доля ошибок?Низкая
ЛогиЧто именно случилось в этом событии?Средняя/высокая
ТрейсыГде в цепочке сервисов теряется время?Высокая

Частые ошибки

  • Гонять алерты по логам. Для подсчёта «ошибок в секунду» дешевле и надёжнее метрика-counter, а не парсинг логов.
  • Хранить всё вечно. Особенно логи и трейсы — настраивайте срок хранения и сэмплирование.
  • Класть высококардинальные данные в метки метрик. ID пользователя в лейбле метрики — путь к взрыву числа временных рядов; такие детали — место для логов.

Итог

  • Метрики — дешёвые числа во времени, основа графиков и алертов.
  • Логи — детальные записи событий для расследования.
  • Трейсы — путь запроса через сервисы, чтобы найти узкое место.
Проверьте себя
1. Какой сигнал лучше всего подходит для алерта «доля ошибок выросла»?
AЛоги
BМетрики
CТрейсы
DСкриншоты
2. Зачем нужны распределённые трейсы?
AЧтобы хранить пароли
BЧтобы понять, на каком сервисе в цепочке теряется время
CЧтобы заменить метрики
DЧтобы уменьшить трафик