Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 4 из 9

Правило алерта: порог и длительность

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 6 · на машине · 8 мин

Порог и длительность

Правило загружено, а состояние у него inactive: выражение вычисляется каждые 5 секунд и ничего не возвращает.

expr — выражение со сравнением. Сравнение работает как фильтр: оставляет ряды, для которых условие верно, и каждый оставшийся ряд становится алертом со своими метками. Пустой результат — алерта нет. Что видит правило, показывает левая часть выражения без сравнения:

bash
promtool query instant http://localhost:9090 \
  'node_filesystem_avail_bytes{mountpoint="/srv/data"}
   / node_filesystem_size_bytes{mountpoint="/srv/data"}'
# {…, mountpoint="/srv/data"} => 0.0499…

Выражение считает долю свободного места: 0.05, то есть 5 %. Условие > 0.95 в правиле оставляет тома, где свободно больше 95 %, — почти пустые. Порог сравнивают с тем, что считает выражение: у доли свободного места полному диску соответствует малое число.

for — сколько времени условие должно продержаться, прежде чем алерт загорится: короткий всплеск его не поднимет. Пока срок не вышел, алерт ждёт.

Состояние Что значит
inactive выражение ничего не вернуло
pending вернуло, но держится меньше for
firing держится дольше for — алерт горит

Состояние правил показывает /api/v1/rules, ждущие и горящие алерты — /api/v1/alerts.

Упражнение · сделать

Исправь порог DiskAlmostFull

Правило DiskAlmostFull в /etc/prometheus/rules/disk.yml загружено, но молчит. Исправь его так, чтобы оно срабатывало, когда на томе свободно меньше 10 % места, длительность оставь прежней. Проверь файл promtool, перечитай конфигурацию и дождись, пока алерт загорится.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Исправить порог в правиле ещё не выполнена
  • Довести алерт до firing ещё не выполнена
Проверь себя 1 вопрос

DiskAlmostFull горит. Ты удаляешь /srv/data/export.bin, и на томе снова много места. Что покажет /api/v1/alerts через полминуты?

  • for задерживает только загорание. Как только выражение ничего не вернуло, алерт пропадает: проверь curl -s localhost:9090/api/v1/alerts | jq .data после удаления.

  • Alertmanager рассылает уведомления, а горит алерт или нет, решает выражение в Prometheus. Он пересчитывает правило каждые 5 секунд.

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

Выражение опустело, и на ближайшем вычислении алерт ушёл из списка.

Цели шага

0 из 2
  • Исправить порог в правиле — ещё не выполнена
  • Довести алерт до firing — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Исправить порог в правиле — ещё не выполнена
  • Довести алерт до firing — ещё не выполнена
Загрузка…