Средний

Три столпа observability

Урок 1 из 3 в курсе Наблюдаемость backend-сервисов

Содержание курса (1/3)

Три столпа observability

логи, метрики и трейсы — разные типы данных, отвечающие на разные вопросы.

Почему это важно: Без observability продакшен — это чёрный ящик. Любой инцидент превращается в гадание.

Главная идея

Логи отвечают на 'что случилось', метрики — 'как часто и насколько', трейсы — 'где в цепочке сервисов произошло'.

Как это выглядит на практике

  1. Пользователь жалуется на медленный ответ API.
  2. Метрики показывают рост p99 latency на эндпоинте.
  3. Трейсинг указывает, что узкое место — вызов внешнего сервиса.
  4. Логи дают точный контекст запроса и ошибку.

Что происходит под капотом

  • Логи — дискретные события с контекстом (timestamp, level, message, metadata).
  • Метрики — числовые временные ряды: counters, gauges, histograms.
  • Трейсы — связанные спаны, показывающие путь запроса через сервисы.
  • Корреляция: request_id в логах позволяет связать их с трейсами и метриками.

Типичные ошибки и заблуждения

  • Ошибка: логи заменяют метрики. Подсчёт событий по логам дорого и медленно.
  • Ошибка: достаточно CPU и memory. Это метрики инфраструктуры, а не приложения.
  • Ошибка: observability = мониторинг. Мониторинг отвечает на известные вопросы, observability — на неизвестные.
  • Ошибка: трейсинг нужен только для микросервисов. Он полезен и в монолите для понимания узких мест.

Ключевые выводы

  • Три типа данных отвечают на разные вопросы.
  • Request ID — клей между логами, метриками и трейсами.
  • Observability — про инвестигацию неизвестных проблем.
  • Начните с логов и базовых метрик, трейсинг добавляйте по мере нужды.

Термины урока

Observability: способность понять внутреннее состояние системы по её внешним сигналам.
Span: единица работы в распределённом трейсе.
Cardinality: количество уникальных комбинаций меток у метрики.
SLI/SLO: Service Level Indicator/Objective, измеримые показатели качества.

Связь с работой backend-разработчика

Без observability backend-разработчик не может уверенно менять продакшен. Это не опция, а базовое требование.

Мини-разбор реальной ситуации

Команда видела рост latency, но не могла понять причину. После добавления трейсинга стало ясно: один из микросервисов делал N+1 запрос в Redis, который появлялся только под нагрузкой.

Что запомнить

  • Логи, метрики, трейсы — не дубликаты, а дополнения.
  • Request ID связывает всё воедино.
  • Observability > мониторинг.

Итог

Три столпа observability — фундамент надёжной эксплуатации современных систем.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.