Мониторинг и Наблюдаемость — два термина, которые применяются, чтобы оценить "что происходит?" с системой (мониторинг) и "почему это происходит?" (наблюдаемость):

  • Мониторинг говорит нам, что что-то сломалось
  • Наблюдаемость позволяет погрузиться в детали и разобраться что именно и как.

Чтобы это удавалось делать, необходимо собирать, хранить и обрабатывать различные виды данных: обычно метрики, логи, трейсы. Но данные скорее являются следствием, основа — это вопрос "WHAT THE F..." или делая литературную озвучку Lost — "Что случилось?" или даже "Что может случиться". С этого и начнём рассказывать про эту тему.

Что не измерено, тем сложно/нельзя управлять (с) Питер Друкер. Самая популярная цитата по теме.

Что-то сломалось. Зачем нужен мониторинг

Мониторинг показывает, что ошибка есть, но не позволяет "дебаггером" ее анализировать

IT-продукты создаются командами, которые передают результат между друг другом, например согласно
Software Development Life Cycle:

  • QA команда проверяет реализацию на соответствие требованиям, убеждается, что нет блокирующих изъянов в продукте.
  • Dev команда реализует требования, учитывая узкие места и corner-cases.
  • Ops команда обеспечивает доступ пользователей к продукту согласно их ожиданий.

Каждый знает что он делает, но в моменты сбоя системы становится ясно, что общую картину никто не держит и на выяснении кто прав, а кто виноват уходит множество времени. Именно здесь и возникает мониторинг, который позволяет оценить корректность работы системы и из чего состоит:

  1. Какие основные процессы/системы?
  2. Как можно понять, что процесс выполняется корректно?
  3. Какие данные теоретически существуют, чтобы это посчитать в числах?
  4. Кто поставщик данных? Какая частота данных? Полнота? Корректность?
  5. Какая альтернатива есть, чтобы проверить работу процесса?

Что именно и как. Зачем нужна наблюдаемость

Получить доступ к полному материалу
Полный текст доступен в курсе