[comment]: # ({9b69cf77-8c8b2e0b})
# 4 Рекомендации по использованию триггеров

[comment]: # ({/9b69cf77-8c8b2e0b})

[comment]: # ({93fa4fb9-814b1677})
Триггеры — это мощный инструмент, но они также могут создавать нежелательный шум оповещений. Чтобы видеть больше реальных сигналов и меньше шума, следуйте этим рекомендациям:

1. Снизьте чувствительность триггеров. Вместо оповещения по последнему значению (слишком высокому/слишком низкому) анализируйте среднее значение за более длительный период, используя такие функции, как **`avg`**, **`min`** и **`max`**.

2. Рассмотрите возможность использования функции **`percentile`** (установите её на 95% или 5%) в триггерах, если хотите избежать оповещений из-за случайных всплесков и падений.

3. Используйте [гистерезис](#hysteresis), чтобы избежать дребезга триггера — частых изменений состояния триггера (OK ↔ Problem). Непрерывность проблемного состояния можно определить, добавив выражение восстановления (отдельное условие для устранения проблемы).

4. Используйте [зависимости](/manual/config/triggers/best_practices/dependencies) триггеров, чтобы избежать оповещений, не связанных с первопричиной.

5. Используйте [важность](/manual/config/triggers/best_practices/severity) триггера, чтобы оповещать только о более серьёзных проблемах.

6. Определите окна [обслуживания](/manual/maintenance).

[comment]: # ({/93fa4fb9-814b1677})

[comment]: # ({bae4792f-3f1b1c81})
#### Гистерезис

Иногда между состояниями проблемы и восстановления требуется интервал, а не просто пороговое значение.
Например, если мы хотим определить триггер, который сообщает о проблеме, когда температура в серверной превышает 20°C, и хотим, чтобы он оставался в состоянии проблемы до тех пор, пока температура не опустится ниже 15°C, простого порога триггера на уровне 20°C будет недостаточно.

Вместо этого сначала нужно определить выражение триггера для события проблемы (температура выше 20°C).
Затем нужно определить дополнительное условие восстановления (температура ниже 15°C).
Это делается путем определения *выражения восстановления* при [настройке](/manual/config/triggers/trigger) триггера.

В этом случае восстановление после проблемы происходит в два этапа:

-   Сначала выражение проблемы (температура выше 20°C) должно принять значение FALSE
-   Затем выражение восстановления (температура ниже 15°C) должно принять значение TRUE

Выражение восстановления вычисляется только после того, как событие проблемы устранено. Само по себе значение TRUE для выражения восстановления не устраняет проблему, если выражение проблемы по-прежнему имеет значение TRUE!

[comment]: # ({/bae4792f-3f1b1c81})

[comment]: # ({fe73812a-942a7e0e})
**Пример**

Температура в серверной слишком высокая.

Выражение проблемы:

```default
last(/server/temp)>20
```

Выражение восстановления:

```default
last(/server/temp)<=15
```

:::noteclassic
Использовать макрос {TRIGGER.VALUE} в выражении восстановления нецелесообразно, поскольку это выражение вычисляется только тогда, когда триггер находится в состоянии "Проблема". Следовательно, при вычислении выражения {TRIGGER.VALUE} всегда будет принимать значение "1" (что указывает на состояние "Проблема").
:::

[comment]: # ({/fe73812a-942a7e0e})
