1 Foreach funkciók
Áttekintés
A foreach függvények az [összesített számításokban] (/manual/config/items/itemtypes/calculated/aggregate) egy összesített értéket adnak vissza minden kiválasztott elemhez. a használt cikkszűrő segítségével.
Például az avg_foreach függvény az átlagos értéket adja vissza az egyes kiválasztott elemek előzményeiből a megadott időintervallumban.
Az item filter a foreach függvények által használt szintaxis része. A helyettesítő karakterek használata az elemszűrőben támogatott, így a szükséges elemek meglehetősen rugalmasan kiválaszthatók.
Támogatott funkciók
| Funkció | Leírás |
|---|---|
| avg_foreach | Az egyes elemek átlagos értékét adja vissza. |
| A a <paraméterszám> paraméter. | |
| count_foreach | Az egyes elemekhez tartozó értékek számát adja vissza. |
| exists_foreach | A jelenleg engedélyezett elemek számát adja vissza. |
| last_foreach | Az egyes elemek utolsó értékét adja vissza. |
| max_foreach | Az egyes elemek maximális értékét adja vissza. |
| min_foreach | Az egyes elemek minimális értékét adja vissza. |
| sum_foreach | Az egyes elemek értékeinek összegét adja vissza. |
Függvény szintaxis
A Foreach függvények két általános paramétert támogatnak: az "elemszűrő" (részleteket lásd alább) és az "időszak":
foreach_function(elemszűrő,időszak)
Például:
avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)
visszaadja a MySQL szervercsoport minden egyes 'mysql.qps' elemének ötperces átlagát.
Vegye figyelembe, hogy egyes függvények további [paramétereket] (#additional_parameters) támogatnak.
Elemszűrő szintaxis
Az elemszűrő:
/host/key[paraméterek]?[feltételek]
négy részből áll, ahol:
- host - gazdagép neve
- kulcs - elemkulcs (paraméterek nélkül)
- paraméterek - elem kulcsparaméterei
- feltételek – gazdagépcsoport és/vagy elemcímke alapú feltételek (kifejezésként)
Szóközök csak a feltételek kifejezésen belül megengedettek.
Jelentős karakter használat
- Helyettesítő karakterrel helyettesíthető a gazdagép neve, az elemkulcs vagy egy egyedi elemkulcs paraméter.
- A gazdagép vagy az elem kulcsát helyettesítő karakter nélkül kell megadni. Tehát a
/host/*és a/*/keyérvényes szűrők, de a/*/*érvénytelen. - A helyettesítő karakter nem használható a gazdagépnév, az elemkulcs, az elemkulcs paraméter részéhez.
- A helyettesítő karakter nem felel meg több mint egyetlen elem kulcsparaméterének. Tehát minden elválasztási paraméterhez meg kell adni egy helyettesítő karaktert (azaz
kulcs[abc,*,*]).
Feltételek kifejezése
A feltételek kifejezés támogatja:
- operandusok:
- csoport - fogadó csoport
- tag - elemcímke
"<szöveg>"- karakterlánc-állandó, az\escape karakterrel a"és a\escape karakterrel
- kis- és nagybetűk karakterlánc-összehasonlító operátorai:
=,<> - logikai operátorok: "és", "vagy", "nem".
- csoportosítás zárójelekkel:
()
A karakterlánc-konstansok idézése kötelező. Csak a kis- és nagybetűk közötti teljes karakterlánc-összehasonlítás támogatott.
Példák
Összetett szűrő használható, amely hivatkozik az elemkulcsra, a gazdagépcsoportra és címkék, amint azt a példák illusztrálják:
| Szintaxis példa | Leírás |
|---|---|
/host/key[abc,*] |
Hasonló elemekkel egyezik meg ezen a gazdagépen. |
/*/key |
Bármely gazdagép ugyanazon elemének felel meg. |
/*/key?[group="ABC" and tag="tagname:value"] |
Megegyezik az ABC csoport bármely gazdagépének ugyanazon elemével, amely 'tagname:value' címkékkel rendelkezik. |
/*/key[a,*,c]?[(group="ABC" and tag="Tag1") vagy (group="DEF" and (tag="Tag2" or tag="Tag3:value") ))] |
Az ABC vagy DEF csoport bármely gazdagépének hasonló elemeit egyezteti a megfelelő címkékkel. |
Minden hivatkozott elemnek léteznie kell, és adatokat kell gyűjtenie. Csak az engedélyezett elemek bekapcsolva az engedélyezett gazdagépek szerepelnek a számításokban.
::: Fontos Ha egy hivatkozott elem tételkulcsa megváltozik, a szűrőt manuálisan kell frissíteni. :::
A szülő gazdagépcsoport megadása magában foglalja a szülőcsoportot és az összes beágyazottat csoportokat fogadni tárgyaikkal.
Időszak
A second paraméter lehetővé teszi az időtartam megadását összesítését. Az időtartam csak idővel, mennyiséggel fejezhető ki értékek közül (# előtaggal) nem támogatott.
[Támogatott mértékegység-szimbólumok] (/kézikönyv/melléklet/utótagok) használhatók ebben paramétert a kényelem kedvéért, például „5m” (öt perc) helyett „300s” (300 másodperc) vagy „1d” (egy nap) a „86400” (86400) helyett másodperc).
A kiszolgáló figyelmen kívül hagyja az időtartamot, ha a last_foreach paraméterrel adja meg funkciót, ezért elhagyható:
last_foreach(/*/key?[group="host group"])
Az időtartam nem támogatott a exists_foreach függvényben.
További paraméterek
A harmadik opcionális paramétert a bucket_rate_foreach támogatja funkció:
bucket_rate_foreach(elemszűrő,időszak,<paraméterszám>)
ahol <paraméterszám> a "vödör" értékének pozíciója a tétel kulcsát. Például ha a myItem[aaa,0.2] "vödör" értéke a következő '0,2', akkor a pozíciója 2.
A <paraméterszám> alapértelmezett értéke '1'.
Lásd: [összesített számítások] (/manual/config/items/itemtypes/calculated/aggregate) további részletek és példák a foreach függvények használatáról.
Behavior depending on availability
The following table illustrates how each function behaves in cases of limited availability of host/item and history data.
| Function | Disabled host | Unavailable host with data | Unavailable host without data | Disabled item | Unsupported item | Data retrieval error (SQL) |
|---|---|---|---|---|---|---|
| avg_foreach | ignore | return avg | ignore | ignore | ignore | ignore |
| bucket_rate_foreach | ignore | return bucket rate | ignore | ignore | ignore | ignore |
| count_foreach | ignore | return count | 0 | ignore | ignore | ignore |
| exists_foreach | ignore | 1 | 1 | ignore | 1 | n/a |
| last_foreach | ignore | return last | ignore | ignore | ignore | ignore |
| max_foreach | ignore | return max | ignore | ignore | ignore | ignore |
| min_foreach | ignore | return min | ignore | ignore | ignore | ignore |
| sum_foreach | ignore | return sum | ignore | ignore | ignore | ignore |
If the item is ignored, nothing is added to the aggregation.