Foreach-functies worden gebruikt in aggregatieberekeningen om één aggregatiewaarde terug te geven voor elk item dat wordt geselecteerd door de gebruikte itemfilter. Er wordt een reeks waarden geretourneerd.
Bijvoorbeeld, de avg_foreach functie zal een reeks waarden retourneren, waarbij elke waarde het gemiddelde historische waarde is van het geselecteerde item gedurende het gespecificeerde tijdsinterval.
De itemfilter maakt deel uit van de syntaxis die wordt gebruikt door foreach-functies. Het gebruik van jokertekens wordt ondersteund in de itemfilter, 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 bucket, tariefwaarde) terug die geschikt zijn voor gebruik in de histogram_quantile()-functie, waarbij "bovengrens van bucket" de waarde is van het item-sleutelparameter gedefinieerd door het <parameter number> 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 volgende 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 ophalen van gegevens (SQL) |
---|---|---|---|---|---|---|
avg_foreach | negeer | gemiddelde retourneren | negeer | negeer | negeer | negeer |
bucket_rate_foreach | negeer | buckettarief retourneren | negeer | negeer | negeer | negeer |
count_foreach | negeer | aantal retourneren | 0 | negeer | negeer | negeer |
exists_foreach | negeer | 1 | 1 | negeer | 1 | n.v.t. |
last_foreach | negeer | laatste retourneren | negeer | negeer | negeer | negeer |
max_foreach | negeer | max retourneren | negeer | negeer | negeer | negeer |
min_foreach | negeer | min retourneren | negeer | negeer | negeer | negeer |
sum_foreach | negeer | som retourneren | negeer | negeer | negeer | negeer |
Als het item wordt genegeerd, wordt er niets aan de aggregatie toegevoegd.