Средний

Структурированное логирование

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

Содержание курса (2/3)
1 Три столпа observability
2 Структурированное логирование
3 Метрики и алерты

Структурированное логирование

структурированные логи (JSON) — машиночитаемы и запрашиваемы, в отличие от строчных.

Почему это важно: Парсинг текстовых логов регулярками — кошмар. Структурированные логи сразу индексируются и запрашиваются.

Главная идея

Каждая строка лога — это JSON-объект с полями, которые можно фильтровать и агрегировать.

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

  1. Приложение пишет лог: { 'level': 'error', 'msg': 'db connect', 'user_id': 42, 'request_id': 'abc' }.
  2. Лог агрегатор (Loki, ELK, CloudWatch) получает JSON.
  3. Инженер ищет: все ошибки по user_id = 42 за последний час.
  4. Результат появляется за секунды, без регулярок.

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

  • Уровни логирования: debug, info, warn, error, fatal.
  • Context propagation: request_id, trace_id, user_id должны автоматически добавляться ко всем логам запроса.
  • Sampling: в high-traffic сервисах логируется только часть запросов.
  • Секреты (пароли, токены) никогда не должны попадать в логи.

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

  • Ошибка: логировать всё подряд. Это ведёт к огромным счетам и медленному поиску.
  • Ошибка: puts/println достаточно. Строчные логи сложно парсить и индексировать.
  • Ошибка: логи нужны только для отладки. Они критичны для аудита и инцидентов.
  • Ошибка: информация в логах не утекает. Логи — частый источник утечек (PII, токены).

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

  • JSON-логи — стандарт современных backend-сервисов.
  • Контекст должен пробрасываться автоматически.
  • Выбирайте уровень логирования осознанно.
  • Не логируйте секреты и PII.

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

Structured logging: логи в машиночитаемом формате (обычно JSON).
Log level: приоритет сообщения (debug/info/warn/error).
Context propagation: автоматическое добавление метаданных к логам.
PII: Personally Identifiable Information, персональные данные.

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

Переход от строчных к структурированным логам — один из самых дешёвых шагов к observability, но даёт огромный выигрыш.

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

После инцидента команда потратила 4 часа на парсинг текстовых логов регулярками, чтобы найти всех затронутых пользователей. После миграции на JSON тот же запрос занял минуту.

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

  • Логи должны быть запрашиваемыми.
  • Контекст — ключ к корреляции.
  • Никогда не логируйте секреты.

Итог

Структурированное логирование — простой, но мощный инструмент для понимания поведения продакшена.

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

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

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