Учебник Мониторинг для начинающих
Этот учебник проведёт вас от идеи «зачем вообще мониторинг» до рабочей системы наблюдаемости на Prometheus и Grafana. Вы разберётесь, как устроена pull-модель сбора метрик, научитесь писать запросы на PromQL, настраивать экспортеры и алерты, инструментировать собственное приложение и строить дашборды. Отдельный раздел посвящён SLI/SLO, error budget и типичным ошибкам вроде взрыва кардинальности лейблов. Курс рассчитан на разработчиков и DevOps-инженеров, которые хотят понимать, что происходит с их сервисами в продакшене.
Курс «Мониторинг: Prometheus и Grafana» состоит из 6 разделов и 18 уроков: Зачем нужен мониторинг и наблюдаемость, Архитектура Prometheus, Конфигурация и PromQL, Правила, алерты и инструментирование, Grafana: дашборды и алерты и SLI, SLO и типичные ошибки. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Зачем нужен мониторинг и наблюдаемость
- Что такое мониторинг и наблюдаемость
Разбираемся, чем мониторинг отличается от наблюдаемости, зачем они нужны и какие вопросы помогают закрыть в эксплуатации.
- Метрики, логи и трейсы
Три столпа наблюдаемости: чем метрики отличаются от логов и распределённых трейсов и когда какой сигнал использовать.
- Золотые сигналы, RED и USE
Четыре золотых сигнала Google SRE и методики RED и USE: как выбрать минимальный набор метрик для сервиса и для ресурса.
- Что такое мониторинг и наблюдаемость
2 Архитектура Prometheus
- Pull-модель, TSDB и scrape
Как Prometheus собирает метрики по pull-модели, что такое scrape, как устроено хранилище временных рядов TSDB и target.
- Типы метрик: counter, gauge, histogram, summary
Четыре типа метрик Prometheus: counter, gauge, histogram и summary — когда какой использовать и как с ними работать в PromQL.
- Экспортеры и endpoint /metrics
Что такое экспортеры в Prometheus, как работает node_exporter и формат текстового endpoint /metrics для экспозиции метрик.
- Pull-модель, TSDB и scrape
3 Конфигурация и PromQL
- Конфиг prometheus.yml и scrape_configs
Структура prometheus.yml: global, scrape_configs, job_name, targets и static_configs — как настроить сбор метрик с целей.
- Основы PromQL: селекторы и rate
Введение в PromQL: instant-векторы, селекторы по лейблам, операторы сравнения, диапазоны и функция rate для counter.
- Агрегация: sum, by и продвинутые запросы
Агрегация в PromQL: операторы sum, avg, max, группировка by и without, доля ошибок и процентили задержки.
- Конфиг prometheus.yml и scrape_configs
4 Правила, алерты и инструментирование
- Правила записи и алертинга
Recording rules для ускорения запросов и alerting rules с условиями for и labels — как описать алерт в Prometheus.
- Alertmanager и маршрутизация
Alertmanager: группировка, подавление и маршрутизация алертов по route и receivers, silences и inhibition.
- Инструментирование своего приложения
Клиентские библиотеки Prometheus: как добавить кастомные метрики counter и histogram в приложение и выставить endpoint /metrics.
- Правила записи и алертинга
5 Grafana: дашборды и алерты
- Источники данных и первая панель
Как подключить Prometheus как источник данных в Grafana и создать первую панель с PromQL-запросом и визуализацией.
- Дашборды и переменные шаблонов
Дашборды Grafana и переменные шаблонов: как сделать дашборд переиспользуемым через выпадающие списки и фильтры по лейблам.
- Алерты в Grafana
Алерты в Grafana: правила на основе запросов, условия и пороги, каналы уведомлений и отличие от alerting в Prometheus.
- Источники данных и первая панель
6 SLI, SLO и типичные ошибки
- SLI, SLO и error budget
Что такое SLI, SLO и error budget: как задать измеримую цель надёжности и использовать бюджет ошибок для принятия решений.
- Кардинальность лейблов
Что такое кардинальность лейблов в Prometheus, почему она взрывает TSDB и как проектировать лейблы безопасно.
- Scrape-интервалы и прочие грабли
Как выбрать scrape_interval, согласовать его с rate и for, и избежать частых ошибок настройки мониторинга в продакшене.
- SLI, SLO и error budget