Правило загружено, а состояние у него inactive: выражение вычисляется каждые 5 секунд и ничего не возвращает.
expr — выражение со сравнением. Сравнение работает как фильтр: оставляет ряды, для которых условие верно, и каждый оставшийся ряд становится алертом со своими метками. Пустой результат — алерта нет. Что видит правило, показывает левая часть выражения без сравнения:
Выражение считает долю свободного места: 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 ещё не выполнена
DiskAlmostFull горит. Ты удаляешь /srv/data/export.bin, и на томе снова много места. Что покажет /api/v1/alerts через полминуты?
-
forзадерживает только загорание. Как только выражение ничего не вернуло, алерт пропадает: проверьcurl -s localhost:9090/api/v1/alerts | jq .dataпосле удаления. -
Alertmanager рассылает уведомления, а горит алерт или нет, решает выражение в Prometheus. Он пересчитывает правило каждые 5 секунд.
-
Перезапуск не нужен: правило вычисляется заново каждые 5 секунд, и пустой результат снимает алерт на ближайшем вычислении.
Выражение опустело, и на ближайшем вычислении алерт ушёл из списка.