Les fonctions Foreach renvoient des valeurs agrégées à partir de l'historique de plusieurs éléments. Les fonctions Foreach sont utilisées dans les calculs agrégés.
Les fonctions foreach suivantes sont prises en charge :
Fonction | Description |
---|---|
avg_foreach | Renvoie les valeurs moyennes |
bucket_rate_foreach | Renvoie des paires (limite supérieure du bucket, valeur du taux) utilisables dans la fonction histogram_quantile(), où "limite supérieure du bucket " est la valeur du paramètre clé de l'élément défini par le <numéro de paramètre> paramètre. |
count_foreach | Renvoie le nombre de valeurs |
exists_foreach | Renvoie le nombre d'éléments actuellement activés |
last_foreach | Renvoie les dernières valeurs |
max_foreach | Renvoie les valeurs maximales |
min_foreach | Renvoie les valeurs minimales |
sum_foreach | Renvoie la somme des valeurs |
Les fonctions Foreach renvoient un tableau de valeurs - une pour chaque élément. Les éléments sont sélectionnés en utilisant des filtres dans le premier paramètre.
Voir les calculs agrégés pour plus de détails sur l'utilisation des fonctions foreach.
Fonction | Description |
---|---|
avg_foreach | Renvoie la valeur moyenne de chaque élément. |
bucket_rate_foreach | Renvoie des paires (limite supérieure du compartiment, valeur du taux) pouvant être utilisées dans la fonction histogram_quantile(), où "limite supérieure du compartiment" est la valeur du paramètre clé de l'élément défini par le <numéro de paramètre> parameter. |
count_foreach | Renvoie le nombre de valeurs pour chaque élément. |
exists_foreach | Renvoie le nombre d'éléments actuellement activés. |
last_foreach | Renvoie la dernière valeur de chaque élément. |
max_foreach | Renvoie la valeur maximale pour chaque élément. |
min_foreach | Renvoie la valeur minimale pour chaque élément. |
sum_foreach | Renvoie la somme des valeurs pour chaque élément. |
Les fonctions Foreach prennent en charge deux paramètres communs - le filtre d'élément et une période de temps :
par exemple :
Certaines fonctions prennent en charge des paramètres supplémentaires.
##### Filtre d'élément
Le premier paramètre permet de filtrer les éléments qui nous intéressent. Un filtre complexe peut être utilisé, référençant la clé de l'élément, le groupe d'hôtes et les tags, comme illustré par les exemples suivants :
Exemple de syntaxe | Description |
---|---|
/host/key[abc,*] | Correspond à des éléments similaires sur cet hôte. |
/*/key | Correspond au même élément de n'importe quel hôte. |
/*/key?[group="ABC" and tag="tagname:value"] | Correspond au même élément de n'importe quel hôte du groupe ABC ayant des tags 'tagname:value'. |
/*/key[a,*,c]?[(group="ABC" et tag="Tag1") ou (group="DEF" et (tag="Tag2" ou tag=" Tag3:value"))] | Correspond à des éléments similaires de n'importe quel hôte du groupe ABC ou DEF avec les tags respectives. |
Tous les éléments référencés doivent exister et collecter des données. Seuls les éléments activés sur les hôtes activés sont inclus dans les calculs.
::: note importante Si la clé d'élément d'un élément référencé est modifiée, le filtre doit être mis à jour manuellement. :::
La spécification d'un groupe d'hôtes parent inclut le groupe parent et tous les groupes d'hôtes imbriqués avec leurs éléments.
Le second paramètre permet de spécifier la période de temps pour l'agrégation. La période de temps ne peut être exprimée qu'en temps, la quantité de valeurs (préfixées par #) n'est pas prise en charge.
Les symboles d'unité pris en charge peuvent être utilisés dans ce paramètre pour plus de commodité, par exemple '5m' (cinq minutes) au lieu de '300s' (300 secondes) ou '1d' (un jour) au lieu de '86400' (86400 secondes).
La période est ignorée par le serveur si elle est passée avec la fonction last_foreach et peut donc être omise :
La période n'est pas prise en charge avec la fonction exists_foreach.
Un troisième paramètre facultatif est pris en charge par la fonction bucket_rate_foreach :
où <parameter number> est la position de la valeur "bucket" dans la clé de l'élément. Par exemple, si la valeur "bucket" dans myItem[aaa,0.2] est '0.2', alors sa position est 2.
La valeur par défaut de <parameter number> est '1'.
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.