Foreach-functies worden gebruikt in aggregate berekeningen om één aggregatiewaarde terug te geven voor elk item dat is geselecteerd door de gebruikte item filter. Er wordt een array van waarden teruggegeven.
Bijvoorbeeld, de functie avg_foreach zal een array van waarden teruggeven, waarbij elke waarde de gemiddelde historische waarde is van het geselecteerde item gedurende het opgegeven tijdsinterval.
De item filter maakt deel uit van de syntax die wordt gebruikt door foreach-functies. Het gebruik van wildcards wordt ondersteund in de item filter, waardoor de benodigde items vrij flexibel kunnen worden geselecteerd.
Functie | Beschrijving |
---|---|
avg_foreach | Geeft de gemiddelde waarde terug voor elk item. |
bucket_rate_foreach | Geeft paren (bovengrens van de bucket, rate waarde) terug die geschikt zijn voor gebruik in de histogram_quantile() functie, waarbij "bovengrens van de bucket" de waarde is van het item key parameter gedefinieerd door het <parameter nummer> parameter. |
count_foreach | Geeft het aantal waarden terug voor elk item. |
exists_foreach | Geeft '1' terug voor elk ingeschakeld item. |
last_foreach | Geeft de laatste waarde terug voor elk item. |
max_foreach | Geeft de maximale waarde terug voor elk item. |
min_foreach | Geeft de minimale waarde terug voor elk item. |
sum_foreach | Geeft de som van waarden terug voor elk item. |
Foreach-functies ondersteunen twee algemene parameters: itemfilter en tijd periode:
bijvoorbeeld:
Sommige functies ondersteunen aanvullende parameters.
Met de eerste parameter kunnen we de items filteren waarin we geïnteresseerd zijn. Er kan een complex filter worden gebruikt dat verwijst naar de itemsleutel, hostgroep en tags, zoals geïllustreerd door de voorbeelden:
Syntaxisvoorbeeld | Beschrijving |
---|---|
/host/key[abc,*] | Komt overeen met vergelijkbare items op deze host. |
/*/key | Komt overeen met hetzelfde item van een willekeurige host. |
/*/key?[group="ABC" en tag="tagname:value"] | Komt overeen met hetzelfde item van een willekeurige host uit de ABC-groep met 'tagname:value'-tags. |
/*/key[a,*,c]?[(group="ABC" en tag="Tag1") of (group="DEF" en (tag="Tag2" of tag=" Tag3:value"))] | Komt overeen met vergelijkbare items van elke host uit de ABC- of DEF-groep met de respectievelijke tags. |
Alle items waarnaar wordt verwezen, moeten bestaan en gegevens verzamelen. Alleen ingeschakelde items aan ingeschakelde hosts zijn opgenomen in de berekeningen.
Als de itemsleutel van een item waarnaar wordt verwezen wordt gewijzigd, het filter moet handmatig worden bijgewerkt.
Het specificeren van een bovenliggende hostgroep omvat de bovenliggende groep en alle genest hostgroepen met hun items.
Met de parameter seconden kunt u de tijdsperiode specificeren voor aggregatie. De tijdsperiode kan alleen worden uitgedrukt als tijd, het bedrag van waarden (voorafgegaan door #) wordt niet ondersteund.
Ondersteunde eenheidssymbolen kunnen hierin worden gebruikt parameter voor het gemak, bijvoorbeeld '5m' (vijf minuten) in plaats van '300s' (300 seconden) of '1d' (één dag) in plaats van '86400' (86400 seconden).
Tijdsperiode wordt genegeerd door de server als deze wordt doorgegeven met de last_foreach functie en kan dus worden weggelaten:
Tijdsperiode wordt niet ondersteund met de functie exists_foreach.
Een derde optionele parameter wordt ondersteund door de bucket_rate_foreach functie:
waarbij <parameternummer> de positie is van de "bucket"-waarde in de artikelsleutel. Als bijvoorbeeld de "bucket"-waarde in myItem[aaa,0.2] is '0.2', dan is de positie 2.
De standaardwaarde van <parameternummer> is '1'.
De onderstaande tabel illustreert hoe elke functie zich gedraagt in gevallen van beperkte beschikbaarheid van host/item en geschiedenisgegevens.
Functie | Uitgeschakelde host | Niet-beschikbare host met gegevens | Niet-beschikbare host zonder gegevens | Uitgeschakeld item | Niet-ondersteund item | Fout bij gegevensopvraging (SQL) |
---|---|---|---|---|---|---|
avg_foreach | negeer | retourneer gemiddelde | negeer | negeer | negeer | negeer |
bucket_rate_foreach | negeer | retourneer bucket rate | negeer | negeer | negeer | negeer |
count_foreach | negeer | retourneer aantal | 0 | negeer | negeer | negeer |
exists_foreach | negeer | 1 | 1 | negeer | 1 | nvt |
last_foreach | negeer | retourneer laatste | negeer | negeer | negeer | negeer |
max_foreach | negeer | retourneer max | negeer | negeer | negeer | negeer |
min_foreach | negeer | retourneer min | negeer | negeer | negeer | negeer |
sum_foreach | negeer | retourneer som | negeer | negeer | negeer | negeer |
Als het item wordt genegeerd, wordt er niets aan de aggregatie toegevoegd.