This is a translation of the original English documentation page. Help us make it better.

1 Foreach-functies

Overzicht

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.

Ondersteunde functies

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.

Parameters

Foreach-functies ondersteunen twee algemene parameters: itemfilter en tijd periode:

foreach_function (itemfilter, tijdsperiode)

bijvoorbeeld:

avg_foreach(/*/mysql.qps?[group="MySQL-servers"],5m)

Sommige functies ondersteunen aanvullende parameters.

Artikelfilter

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.

Tijdsperiode

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:

last_foreach(/*/key?[group="hostgroep"])

Tijdsperiode wordt niet ondersteund met de functie exists_foreach.

Aanvullende parameters

Een derde optionele parameter wordt ondersteund door de bucket_rate_foreach functie:

bucket_rate_foreach(itemfilter,tijdsperiode,<parameternummer>)

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'.

Gedrag afhankelijk van beschikbaarheid

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.