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

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

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

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

Зачем нужен мониторинг

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

Современный IT построен на активном применении цикличных "конвейеров". Например, Software Development Life Cycle разделяет между собой этапы разработки, тестирования и эксплуатации, которые выполняются сотрудниками с разными компетенциями:

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

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

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

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

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

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