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

1 Foreach-functies

Overzicht

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.

Ondersteunde functies

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.

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