Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Фундамент мониторинга: зачем, что и как мониторить
monitoring_fundamentals

Фундамент мониторинга: зачем, что и как мониторить

Базовые концепции мониторинга, типы метрик, золотые сигналы SRE и почему мониторинг критичен для production

Фундамент мониторинга: зачем, что и как мониторить

«Без данных вы просто ещё один человек с мнением» — W. Edwards Deming

#Почему мониторинг — это не опция, а необходимость

Представьте: вы запустили приложение в production. Пользователи работают, всё выглядит нормально. Но что происходит на самом деле?

  • Сколько запросов в секунду обрабатывает сервер?
  • Как быстро он отвечает?
  • Сколько ошибок возникает?
  • Хватает ли ресурсов?

Без мониторинга вы слепы. Вы узнаете о проблеме только когда пользователи начнут жаловаться. А это уже поздно.

#Что такое observability

Observability (наблюдаемость) — это способность понять внутреннее состояние системы по её внешним выходам.

Три столпа observability:

  1. Metrics (метрики) — числовые измерения во времени (CPU 75%, 100 запросов/сек, 2% ошибок)
  2. Logs (логи) — записи о событиях с деталями («User 123 failed login at 14:32:01»)
  3. Traces (трейсы) — путь запроса через распределённую систему

В этом курсе мы сфокусируемся на метриках (Prometheus) и логах (Loki), потому что это база, без которой нельзя двигаться дальше.


#Типы метрик: что измерять

Не все метрики одинаково полезны. Давайте разберёмся, что и зачем измерять.

#Четыре золотых сигнала SRE

Google в своей книге Site Reliability Engineering выделяет четыре ключевых типа метрик:

СигналЧто измеряетПример
Latency (задержка)Время обработки запроса95-й перцентиль ответа API = 250ms
Traffic (трафик)Нагрузка на систему1000 запросов/секунду
Errors (ошибки)Частота неудач0.5% HTTP 5xx ответов
Saturation (насыщение)Насколько система «заполнена»85% использования памяти

Почему именно эти четыре? Они универсальны. Неважно, что вы мониторите — веб-сервер, базу данных или очередь сообщений — эти сигналы работают везде.

#Пример: мониторинг веб-приложения

┌─────────────────────────────────────────────────┐
│              Ваше приложение                     │
├─────────────────────────────────────────────────┤
│                                                 │
│  Traffic:    ████████░░ 1000 req/s              │
│  Latency:    ██████░░░░ 250ms (p95)             │
│  Errors:     █░░░░░░░░░ 0.5% (5xx)              │
│  Saturation: ███████░░░ 75% CPU, 60% RAM        │
│                                                 │
└─────────────────────────────────────────────────┘

Если Traffic резко упал — возможно, проблема с балансировщиком или сетью. Если Latency выросла — приложение тормозит, нужно искать узкое место. Если Errors подскочили — что-то сломалось, пора смотреть логи. Если Saturation высокая — пора масштабироваться.


#Уровни мониторинга

Мониторинг работает на нескольких уровнях абстракции:

#1. Инфраструктурный уровень

Что мониторим: серверы, виртуальные машины, контейнеры

Ключевые метрики:

  • CPU usage (%)
  • Memory usage (%)
  • Disk I/O (чтение/запись)
  • Network I/O (входящий/исходящий трафик)
  • Disk space (свободное место)

Зачем: чтобы понять, хватает ли ресурсов. Если CPU постоянно на 100% — приложение не сможет работать быстро, сколько бы вы ни оптимизировали код.

#2. Уровень приложения

Что мониторим: само приложение, его внутреннее состояние

Ключевые метрики:

  • Request rate (запросов в секунду)
  • Response time (время ответа)
  • Error rate (процент ошибок)
  • Active connections (активные подключения)
  • Queue size (размер очереди задач)

Зачем: чтобы понять, как приложение ведёт себя под нагрузкой. Инфраструктура может быть в порядке, но приложение — тормозить из-за блокировок в коде или медленных запросов к БД.

#3. Уровень бизнеса

Что мониторим: метрики, важные для бизнеса

Ключевые метрики:

  • Количество активных пользователей
  • Количество заказов/транзакций
  • Конверсия
  • Выручка

Зачем: чтобы связать технические проблемы с бизнес-последствиями. Если упала база данных — это техническая проблема. Если из-за этого упала выручка на 50% — это уже проблема бизнеса.


#Pull vs Push: как собирать метрики

Существует два основных подхода к сбору метрик:

#Push-модель

Приложение само отправляет метрики в систему мониторинга.

Приложение ──(метрики)──> Мониторинг

Плюсы:

  • Легко реализовать для событийных метрик
  • Хорошо для кратковременных задач (cron, batch jobs)

Минусы:

  • Приложение должно знать адрес мониторинга
  • Сложнее контролировать частоту отправки
  • Если мониторинг упал — метрики теряются

#Pull-модель

Система мониторинга сама забирает метрики у приложения.

Мониторинг ──(запрос)──> Приложение
              <(метрики)──

Плюсы:

  • Централизованный контроль сбора
  • Легко добавить/убрать цели
  • Приложение не зависит от мониторинга

Минусы:

  • Приложение должно хранить метрики и отдавать их по запросу
  • Сложнее с динамическими целями (контейнеры, которые часто перезапускаются)

Prometheus использует pull-модель. Это фундаментальное решение, которое влияет на всю архитектуру.


#Timeseries: основа всего

Временной ряд (timeseries) — это последовательность значений метрики во времени.

Пример:

Время       │ CPU usage
────────────┼──────────
10:00:00    │ 45%
10:00:15    │ 47%
10:00:30    │ 52%
10:00:45    │ 48%
10:01:00    │ 55%

Каждая точка данных имеет:

  • Метрику (что измеряем, например cpu_usage)
  • Временную метку (когда измерили)
  • Значение (результат измерения)
  • Лейблы (дополнительные параметры, например host=server1, region=us-east)

Лейблы — это мощнейший механизм. Они позволяют «нарезать» данные разными способами:

cpu_usage{host="server1", region="us-east"} = 45%
cpu_usage{host="server2", region="us-east"} = 52%
cpu_usage{host="server1", region="eu-west"} = 38%

Теперь можно задать вопросы:

  • «Покажи CPU для server1»
  • «Покажи средний CPU по региону us-east»
  • «Покажи максимальный CPU среди всех серверов»

#Алертинг: когда реагировать

Мониторинг без алертинга — как дымовая сигнализация, которая не звонит пожарным.

#Хорошие алерты

  • Действенные — есть что сделать при срабатывании
  • Специфичные — понятна причина срабатывания
  • Своевременные — срабатывают до того, как проблема станет критической

#Плохие алерты

  • Шумные — срабатывают слишком часто, вызывают «alert fatigue»
  • Бесполезные — непонятно, что делать
  • Запоздалые — срабатывают, когда уже всё упало

Пример хорошего алерта:

«Error rate превысил 5% за последние 5 минут на сервисе payment-api. Проверь логи и последние деплои.»

Пример плохого алерта:

«CPU high on server-42» (И что делать? Какой CPU считается высоким? Когда началось?)

Далее: Архитектура Prometheus: как устроен сбор метрик