4 Рекомендации по использованию триггеров
Триггеры — это мощный инструмент, но они также могут создавать нежелательный шум оповещений. Чтобы видеть больше реальных сигналов и меньше шума, следуйте этим рекомендациям:
-
Снизьте чувствительность триггеров. Вместо оповещения по последнему значению (слишком высокому/слишком низкому) анализируйте среднее значение за более длительный период, используя такие функции, как
avg,minиmax. -
Рассмотрите возможность использования функции
percentile(установите её на 95% или 5%) в триггерах, если хотите избежать оповещений из-за случайных всплесков и падений. -
Используйте гистерезис, чтобы избежать дребезга триггера — частых изменений состояния триггера (OK ↔ Problem). Непрерывность проблемного состояния можно определить, добавив выражение восстановления (отдельное условие для устранения проблемы).
-
Используйте зависимости триггеров, чтобы избежать оповещений, не связанных с первопричиной.
-
Используйте важность триггера, чтобы оповещать только о более серьёзных проблемах.
-
Определите окна обслуживания.
Гистерезис
Иногда между состояниями проблемы и восстановления требуется интервал, а не просто пороговое значение. Например, если мы хотим определить триггер, который сообщает о проблеме, когда температура в серверной превышает 20°C, и хотим, чтобы он оставался в состоянии проблемы до тех пор, пока температура не опустится ниже 15°C, простого порога триггера на уровне 20°C будет недостаточно.
Вместо этого сначала нужно определить выражение триггера для события проблемы (температура выше 20°C). Затем нужно определить дополнительное условие восстановления (температура ниже 15°C). Это делается путем определения выражения восстановления при настройке триггера.
В этом случае восстановление после проблемы происходит в два этапа:
- Сначала выражение проблемы (температура выше 20°C) должно принять значение FALSE
- Затем выражение восстановления (температура ниже 15°C) должно принять значение TRUE
Выражение восстановления вычисляется только после того, как событие проблемы устранено. Само по себе значение TRUE для выражения восстановления не устраняет проблему, если выражение проблемы по-прежнему имеет значение TRUE!
Пример
Температура в серверной слишком высокая.
Выражение проблемы:
last(/server/temp)>20
Выражение восстановления:
last(/server/temp)<=15
Использовать макрос {TRIGGER.VALUE} в выражении восстановления нецелесообразно, поскольку это выражение вычисляется только тогда, когда триггер находится в состоянии "Проблема". Следовательно, при вычислении выражения {TRIGGER.VALUE} всегда будет принимать значение "1" (что указывает на состояние "Проблема").