4 Trigeru labākā prakse
Trigeri ir jaudīgs rīks, taču tie var arī radīt nevēlamu brīdinājumu troksni. Lai redzētu vairāk reālu signālu un mazāk trokšņa, ievērojiet šos ieteikumus:
-
Samaziniet trigeru jutību. Tā vietā, lai brīdinātu par jaunāko vērtību (pārāk augsta/pārāk zema), analizējiet vidējo vērtību ilgākā periodā, izmantojot tādas funkcijas kā
avg,minunmax. -
Apsveriet iespēju izmantot funkciju
percentiletrigeros (iestatiet to uz 95% vai 5%), ja vēlaties izvairīties no brīdinājumiem nejaušu pīķu un kritumu dēļ. -
Izmantojiet histērēzi, lai izvairītos no trigeru stāvokļa svārstībām — biežām trigera stāvokļa izmaiņām (OK ↔ Problem). Problēmas stāvokļa nepārtrauktību var definēt, pievienojot atkopšanas izteiksmi (atsevišķu nosacījumu problēmas atrisināšanai).
-
Izmantojiet trigeru atkarības, lai izvairītos no brīdinājumiem, kas nav saistīti ar pamatcēloni.
-
Izmantojiet trigera nopietnību, lai brīdinātu tikai par nopietnākajām problēmām.
-
Definējiet apkopes logus.
Histerēze
Dažkārt starp problēmas un atkopšanas stāvokļiem ir nepieciešams intervāls, nevis vienkārša robežvērtība. Piemēram, ja vēlamies definēt trigeri, kas ziņo par problēmu, kad servera telpas temperatūra pārsniedz 20°C, un vēlamies, lai tas paliktu problēmas stāvoklī, līdz temperatūra nokrītas zem 15°C, ar vienkāršu trigera robežvērtību 20°C nepietiks.
Tā vietā vispirms ir jādefinē trigera izteiksme problēmas notikumam (temperatūra virs 20°C). Pēc tam ir jādefinē papildu atkopšanas nosacījums (temperatūra zem 15°C). Tas tiek izdarīts, definējot Atkopšanas izteiksmi, konfigurējot trigeri.
Šajā gadījumā problēmas atkopšana notiek divos soļos:
- Vispirms problēmas izteiksmei (temperatūra virs 20°C) jānovērtējas kā FALSE
- Pēc tam atkopšanas izteiksmei (temperatūra zem 15°C) jānovērtējas kā TRUE
Atkopšanas izteiksme tiek novērtēta tikai pēc tam, kad problēmas notikums ir atrisināts. Tas vien, ka atkopšanas izteiksme ir TRUE, neatrisina problēmu, ja problēmas izteiksme joprojām ir TRUE!
Piemērs
Temperatūra servera telpā ir pārāk augsta.
Problēmas izteiksme:
last(/server/temp)>20
Atkopšanas izteiksme:
last(/server/temp)<=15
Nav lietderīgi izmantot makrosu {TRIGGER.VALUE} atkopšanas izteiksmē, jo šī izteiksme tiek novērtēta tikai tad, kad trigeris ir "Problēma" stāvoklī. Līdz ar to, novērtējot izteiksmi, {TRIGGER.VALUE} vienmēr tiks atrisināts kā "1" (kas norāda uz "Problēma" stāvokli).