Grafana: дашборды, PromQL и алерты

Вы соберёте дашборд дежурного и правило алерта, по которым за десять секунд видно, что сломалось после релиза и стоит ли будить команду. Чужие дашборды читать привычно, а свой запрос легко рисует 100 % ошибок там, где их полпроцента. Ставить ничего не нужно: в песочнице курса уже работают Prometheus 2.54 и Grafana 11.2 с данными интернет-магазина. В разборе инцидента заказы падают с 200 до 50 в минуту при том же трафике.

Чему вы научитесь

Что сломалось в 14:32?

После релиза трафик держится около 80 запросов в секунду, а заказы проседают с 200 до 50 в минуту. Ни один график по отдельности причину не называет.

В модуле про разбор инцидента вы сопоставляете один и тот же момент на всех панелях и ищете, кто отклонился первым: ошибки, потом задержка, потом заказы. Сравнение с тем же часом неделю назад через offset 1w отделяет аварию от обычной суточной волны.

Что нужно знать

Понимать, как работает веб-сервис: запрос, ответ, коды статусов, время ответа.

Prometheus и Grafana разбираются с нуля, начиная с модели данных.

Программировать не нужно: вы пишете PromQL-запросы, JSON-модели дашбордов и YAML для provisioning.

Один sum() меняет вывод дежурного

Запрос rate(ошибок) / rate(всех) выглядит правильно и не падает. PromQL сопоставляет ряды по меткам: code="500" находит пару только у самого себя, ряд code="200" молча выпадает, и панель показывает единицу.

В уроках про агрегации и доли вы разбираете, где складывать до деления, почему знаменатель берут по всем кодам, а не по одному 200, и где внутри histogram_quantile нельзя терять метку le. В лабораторной ваш запрос выполняется на живом Prometheus, и засчитывается число, совпавшее с эталоном.

Когда правилу нельзя верить на слово

Двухминутный всплеск уводит правило в pending, и через четыре минуты оно сбрасывается без звонка. Устойчивые 7,5 % ошибок доходят до firing спустя пять минут pending.

Третий случай опаснее. Сервис перестал отдавать метрики, запросу нечего делить, и правило уходит в inactive в ту минуту, когда должно было зазвонить. Поэтому рядом с долей ошибок держат панель с самим трафиком, а порог и окно выводят из истории метрики и SLO, а не на глаз.

Что вы сдаёте

Итоговый проект — дашборд дежурного в JSON. Панель «Доля ошибок 5xx» типа Stat с единицей percent и красной ступенью на 5 %, панель «Задержка p95» с histogram_quantile по le. Проверка разбирает файл по полям: тип, единица, ступени порогов, числитель и знаменатель запроса.

До этого вы импортируете дашборд через API, поднимаете его и источник данных из provisioning-файлов, раскладываете по папкам с тегами и правами и восстанавливаете дашборд после сломанной правки коллеги, сверяясь с историей версий. В песочнице Grafana сама принимает ваш импорт и выполняет запрос панели.

Для кого

Разработчикам и админам, которые каждый день смотрят на чужие дашборды, но свои не собирали.

Дежурным, которым ночью нужно быстро понять, что сломалось и надо ли поднимать команду.

Тем, кто хочет держать дашборды и алерты команды в репозитории, а не в базе Grafana.

Поддержка

Вы также можете задать любой вопрос по курсу у поддержки t.me/mentorix_support

Программа курса

Модулей: 6, уроков: 30. Задачи с кодом проверяются автоматически.

  1. Что и зачем мы измеряем

  2. PromQL: выборка и функции

  3. Панели и дашборды

  4. Дашборд как код

  5. Алерты

  6. Разбор инцидента по графикам

Стоимость курса: 7990 ₽

Открыть курс на Mentorix · Все курсы