Настройка правил ингибирования
Note
Доступно в Grafana 13 или выше.
Правило ингибирования подавляет уведомления для целевых оповещений, когда исходные оповещения с совпадающими значениями меток уже срабатывают. Это позволяет снизить шум, когда оповещение о первопричине делает зависимые оповещения избыточными.
Например, если узел недоступен (the source), вы можете ингибировать все оповещения для сервисов, работающих на этом узле (the target). Это избавляет вашу команду от получения отдельных оповещений по каждому затронутому сервису, когда первопричина уже отражена в исходном оповещении.
Note
Правила ингибирования назначаются конкретному Alertmanager и подавляют уведомления только для оповещений, управляемых этим Alertmanager.
Caution
Правила ингибирования предназначены для совместимости с конфигурациями, импортированными из Prometheus Alertmanager или Mimir. У них по замыслу нет выделенного интерфейса управления в Grafana.
При неаккуратной настройке правила ингибирования могут незаметно подавлять оповещения и затруднять обнаружение проблем. Для большинства сценариев подавления рассмотрите silences или mute timings.
Правила ингибирования против silences
И правила ингибирования, и silences подавляют уведомления об оповещениях. Ключевое различие в том, что правила ингибирования подавляют оповещения автоматически на основе наличия другого оповещения, тогда как silences подавляют оповещения на фиксированный временной интервал независимо от других оповещений.
Управление правилами ингибирования
Вы можете управлять правилами ингибирования с помощью API Grafana App Platform. Выделенного интерфейса для создания или редактирования правил ингибирования нет.
Ресурс API:
- Group:
notifications.alerting.grafana.app - Version:
v1beta1 - Resource:
inhibitionrules
Caution
API правил ингибирования находится в бета-версии (
v1beta1) и может измениться.
Правила ингибирования также поддерживаются в Prometheus Alertmanager. Обратитесь к разделу Настройка Alertmanager, чтобы настроить внешний Alertmanager.
Схема правила ингибирования
Каждое правило ингибирования имеет следующие поля:
Формат сопоставителя
И source_matchers, и target_matchers — это списки структурированных объектов-сопоставителей. Каждый сопоставитель имеет:
Поле equal
Когда equal указано, ингибирование применяется только когда исходное и целевое оповещения имеют одинаковое значение для каждой перечисленной метки. Например, установка equal: [cluster] гарантирует, что оповещение в одном кластере ингибирует оповещения только в том же кластере.
Если equal опущено, любое срабатывающее исходное оповещение, соответствующее source_matchers, ингибирует все совпадающие целевые оповещения независимо от их значений меток.
Отсутствующие метки и метки с пустым значением считаются эквивалентными для целей сопоставления equal.
Пример: подавление warning-оповещений
Следующий пример определяет правило ингибирования, которое подавляет все оповещения с серьёзностью warning в кластере, когда для того же кластера уже срабатывает оповещение с серьёзностью critical.
{
"name": "critical-inhibits-warnings",
"source_matchers": [{ "label": "severity", "type": "=", "value": "critical" }],
"target_matchers": [{ "label": "severity", "type": "=", "value": "warning" }],
"equal": ["cluster", "namespace"]
}
В этом примере:
- Исходный сопоставитель выбирает оповещения
critical. Когда одно из них срабатывает, правило становится активным. - Целевой сопоставитель выбирает оповещения
warning. Правило подавляет их, пока срабатывает исходное оповещение. - Поле
equalгарантирует, что подавление применяется только когда исходное и целевое оповещения имеют одинаковые значения метокclusterиnamespace.
Правила ингибирования и управляемые маршруты
Alertmanager может обслуживать несколько деревьев маршрутизации: управляемый Grafana маршрут по умолчанию и любые маршруты, импортированные из конфигураций Prometheus Alertmanager или Mimir. Правила ингибирования ведут себя по-разному в зависимости от того, как создано каждое правило:
- Grafana-managed правила создаются через API и применяются ко всему Alertmanager. Они могут сопоставлять оповещения, обрабатываемые любым маршрутом, включая импортированные.
- Импортированные правила происходят из импортированной конфигурации Alertmanager и ограничены оповещениями, обрабатываемыми их импортированным маршрутом. Grafana добавляет внутренний сопоставитель меток, ограничивающий каждое импортированное правило его собственным импортированным маршрутом, поэтому импортированное правило не может подавлять оповещения, проходящие через другие маршруты.
Чтобы подавлять оповещения в нескольких импортированных конфигурациях, создайте Grafana-managed правило через API вместо того, чтобы полагаться на правила ингибирования, встроенные в импортированную конфигурацию.