[comment]: # ({9b69cf77-8c8b2e0b})
# 4 Najlepsze praktyki dotyczące wyzwalaczy

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

[comment]: # ({93fa4fb9-814b1677})
Wyzwalacze są potężnym narzędziem, ale mogą też powodować niepożądany szum alertów. Aby widzieć więcej rzeczywistych sygnałów, a mniej szumu, postępuj zgodnie z tymi wskazówkami:

1. Zmniejsz czułość wyzwalaczy. Zamiast alertować na podstawie najnowszej wartości (zbyt wysokiej/zbyt niskiej), analizuj średnią z dłuższego okresu, używając funkcji takich jak **`avg`**, **`min`** i **`max`**.

2. Rozważ użycie funkcji **`percentile`** (ustawionej na 95% lub 5%) w wyzwalaczach, jeśli chcesz uniknąć alertów przy losowych skokach i spadkach.

3. Użyj [histerezy](#hysteresis), aby uniknąć flappingu wyzwalaczy — częstych zmian stanu wyzwalacza (OK ↔ Problem). Ciągłość stanu problemu można zdefiniować przez dodanie wyrażenia odzyskiwania (oddzielnego warunku rozwiązania problemu).

4. Użyj [zależności](/manual/config/triggers/best_practices/dependencies) wyzwalaczy, aby uniknąć alertów, które nie są związane z przyczyną źródłową.

5. Użyj [ważności](/manual/config/triggers/best_practices/severity) wyzwalacza, aby alertować tylko o poważniejszych problemach.

6. Zdefiniuj okna [konserwacji](/manual/maintenance).

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

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

Czasami potrzebny jest przedział między stanem problemu a stanem odzyskania, zamiast prostego progu.
Na przykład, jeśli chcemy zdefiniować wyzwalacz, który zgłasza problem, gdy temperatura w serwerowni przekroczy 20°C, i chcemy, aby pozostawał on w stanie problemu, dopóki temperatura nie spadnie poniżej 15°C, prosty próg wyzwalacza ustawiony na 20°C nie będzie wystarczający.

Zamiast tego najpierw musimy zdefiniować wyrażenie wyzwalacza dla zdarzenia problemowego (temperatura powyżej 20°C).
Następnie musimy zdefiniować dodatkowy warunek odzyskania (temperatura poniżej 15°C).
Robi się to przez zdefiniowanie *wyrażenia odzyskania* podczas [konfigurowania](/manual/config/triggers/trigger) wyzwalacza.

W tym przypadku odzyskanie po problemie odbywa się w dwóch krokach:

-   Najpierw wyrażenie problemowe (temperatura powyżej 20°C) musi zostać obliczone jako FALSE
-   Następnie wyrażenie odzyskania (temperatura poniżej 15°C) musi zostać obliczone jako TRUE

Wyrażenie odzyskania jest obliczane dopiero po rozwiązaniu zdarzenia problemowego. Samo ustawienie wyrażenia odzyskania na TRUE nie powoduje rozwiązania problemu, jeśli wyrażenie problemowe nadal ma wartość TRUE!

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

[comment]: # ({fe73812a-942a7e0e})
**Przykład**

Temperatura w serwerowni jest zbyt wysoka.

Wyrażenie problemu:

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

Wyrażenie odzyskiwania:

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

:::noteclassic
Używanie makra {TRIGGER.VALUE} w wyrażeniu odzyskiwania jest nieefektywne, ponieważ to wyrażenie jest oceniane tylko wtedy, gdy wyzwalacz znajduje się w stanie „Problem”. W konsekwencji podczas obliczania wyrażenia makro {TRIGGER.VALUE} zawsze zostanie rozwinięte do wartości „1” (co oznacza stan „Problem”).
:::

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