1 Fonctions d'agrégation
Sauf indication contraire, toutes les fonctions répertoriées ici sont prises en charge dans :
Les fonctions d'agrégation peuvent fonctionner avec :
- l'historique des éléments, par exemple,
min(/host/key,1h) - les fonctions foreach comme
seul paramètre, par exemple,
min(last_foreach(/*/key))(uniquement dans les éléments calculés ; ne peut pas être utilisé dans les déclencheurs)
Les fonctions sont listées sans informations supplémentaires. Cliquez sur la fonction pour voir les détails complets.
| Function | Description |
|---|---|
| avg | La valeur moyenne d'un élément sur la période d'évaluation définie. |
| bucket_percentile | Calcule le percentile à partir des buckets d'un histogramme. |
| count | Le nombre de valeurs dans un tableau renvoyé par une fonction foreach. |
| histogram_quantile | Calcule le φ-quantile à partir des buckets d'un histogramme. |
| item_count | Le nombre d'éléments existants dans la configuration qui correspondent aux critères de filtre. |
| kurtosis | L'"aplatissement" de la distribution de probabilité dans les valeurs collectées sur la période d'évaluation définie. |
| mad | L'écart absolu médian dans les valeurs collectées sur la période d'évaluation définie. |
| max | La valeur la plus élevée d'un élément sur la période d'évaluation définie. |
| min | La valeur la plus basse d'un élément sur la période d'évaluation définie. |
| skewness | L'asymétrie de la distribution de probabilité dans les valeurs collectées sur la période d'évaluation définie. |
| stddevpop | L'écart type de la population dans les valeurs collectées sur la période d'évaluation définie. |
| stddevsamp | L'écart type de l'échantillon dans les valeurs collectées sur la période d'évaluation définie. |
| sum | La somme des valeurs collectées sur la période d'évaluation définie. |
| sumofsquares | La somme des carrés dans les valeurs collectées sur la période d'évaluation définie. |
| varpop | La variance de la population des valeurs collectées sur la période d'évaluation définie. |
| varsamp | La variance de l'échantillon des valeurs collectées sur la période d'évaluation définie. |
Paramètres communs
/host/keyest un premier paramètre obligatoire commun pour les fonctions faisant référence à l'historique de l'élément de l'hôte(sec|#num)<:time shift>est un deuxième paramètre commun pour les fonctions faisant référence à l'historique de l'élément de l'hôte, où :- sec - période d'évaluation maximale en secondes (des suffixes de temps peuvent être utilisés), ou
- #num - plage d'évaluation maximale dans les dernières valeurs collectées (si précédé d'un dièse)
- time shift (facultatif) permet de déplacer le point d'évaluation dans le passé. Voir plus de détails sur la spécification du décalage temporel.
Détails des fonctions
Quelques remarques générales sur les paramètres des fonctions :
- Les paramètres des fonctions sont séparés par une virgule
- Les paramètres de fonction facultatifs (ou parties de paramètres) sont indiqués par
<> - Les paramètres spécifiques à chaque fonction sont décrits avec chaque fonction
- Les paramètres
/host/keyet(sec|#num)<:time shift>ne doivent jamais être entre guillemets
avg(/host/key,(sec|#num)<:décalage temporel>)
La valeur moyenne d'un élément pendant la période d'évaluation définie.
Types de valeurs pris en charge: Float, Integer.
Fonctions foreach prises en charge: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Paramètres: voir les paramètres communs.
Le décalage temporel est utile lorsqu'il est nécessaire de comparer la valeur moyenne actuelle avec la valeur moyenne d'il y a quelque temps.
Exemples:
avg(/host/key,1h) #calcule la valeur moyenne pour la dernière heure jusqu'à maintenant
avg(/host/key,#5) #calcule la valeur moyenne des cinq dernières valeurs
avg(/host/key,1h:now-1d) #calcule la valeur moyenne sur une heure, de 25 heures à 24 heures avant maintenant
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #calcule la charge processeur moyenne pour tous les serveurs MySQL
avg(/host/proc.num,5m)>300 #déclencheur si le nombre moyen de processus au cours des 5 dernières minutes a dépassé 300
bucket_percentile(item filter,time period,percentage)
Calcule le percentile à partir des buckets d'un histogramme.
Paramètres :
- item filter - voir item filter ;
- time period - voir time period ;
- percentage - pourcentage (0-100).
Commentaires :
- Pris en charge uniquement dans les éléments calculés ;
- Cette fonction est un alias de
histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)).
Exemples :
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calcule le temps de réponse au 95e percentile sur 5 minutes
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calcule la latence API au 99e percentile
count(func_foreach(item filter,<time period>),<operator>,<pattern>)
Le nombre de valeurs dans un tableau renvoyé par une fonction foreach.
Fonctions foreach prises en charge : avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Paramètres :
- func_foreach - fonction foreach pour laquelle le nombre de valeurs renvoyées doit être compté. Voir fonctions foreach pour plus de détails. Notez que count_foreach et bucket_rate_foreach prennent en charge des paramètres supplémentaires.
- item filter - voir syntaxe du filtre d'élément;
- time period - voir période de temps;
- operator (doit être entre guillemets doubles).
operatorspris en charge :
eq - égal
ne - différent
gt - supérieur
ge - supérieur ou égal
lt - inférieur
le - inférieur ou égal
like - correspond si le motif est contenu (sensible à la casse)
bitand - ET bit à bit
regexp - correspondance sensible à la casse de l'expression régulière donnée danspattern
iregexp - correspondance insensible à la casse de l'expression régulière donnée danspattern - pattern - le motif requis (les arguments de type chaîne doivent être entre guillemets doubles) ; pris en charge si operator est spécifié dans le troisième paramètre.
Commentaires :
- L'utilisation de count() avec une fonction foreach liée à l'historique (max_foreach, avg_foreach, etc.) peut avoir des implications sur les performances, tandis que l'utilisation de exists_foreach(), qui fonctionne uniquement avec les données de configuration, n'aura pas cet effet.
- Les paramètres facultatifs operator ou pattern ne peuvent pas être laissés vides après une virgule ; ils doivent être entièrement omis.
- Avec bitand comme troisième paramètre, le quatrième paramètre
patternpeut être spécifié sous la forme de deux nombres séparés par '/' : number_to_compare_with/mask. count() calcule le "ET bit à bit" entre la valeur et le mask et compare le résultat à number_to_compare_with. Si le résultat du "ET bit à bit" est égal à number_to_compare_with, la valeur est comptée.
Si number_to_compare_with et mask sont égaux, seul le mask doit être spécifié (sans '/'). - Avec regexp ou iregexp comme troisième paramètre, le quatrième paramètre
patternpeut être une expression régulière ordinaire ou globale (commençant par '@'). Dans le cas des expressions régulières globales, la sensibilité à la casse est héritée des paramètres de l'expression régulière globale. Pour la correspondance regexp, les valeurs flottantes seront toujours représentées avec 4 chiffres après la virgule. Notez également que pour les grands nombres, la différence entre la représentation décimale (stockée dans la base de données) et binaire (utilisée par le serveur Zabbix) peut affecter le 4e chiffre après la virgule.
Exemples :
count(max_foreach(/*/net.if.in[*],1h)) #calculer le nombre d'éléments net.if.in ayant reçu des données au cours de la dernière heure jusqu'à maintenant
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calculer le nombre de systèmes de fichiers dont plus de 95 % de l'espace disque est utilisé
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Calcule le φ-quantile à partir des buckets d'un histogramme.
Fonction foreach prise en charge: bucket_rate_foreach.
Paramètres:
- quantile - 0 ≤ φ ≤ 1;
- bucketN, valueN - paires saisies manuellement (>=2) de paramètres ou la réponse de bucket_rate_foreach.
Commentaires:
- Pris en charge uniquement dans les éléments calculés;
- Correspond fonctionnellement à 'histogram_quantile' de PromQL;
- Renvoie -1 si les valeurs du dernier bucket 'Infinity' ("+inf") sont égales à 0.
Exemples:
histogram_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//item_key,30s))
item_count(item filter)
Le nombre d'éléments existants dans la configuration qui correspondent aux critères du filtre.
Type de valeur pris en charge: Integer.
Paramètre:
- item filter - critères de sélection des éléments, permettant une référence par groupe d'hôtes, hôte, clé d'élément et tags. Les caractères génériques sont pris en charge. Voir item filter pour plus de détails.
Commentaires:
- Pris en charge uniquement dans les éléments calculés;
- Fonctionne comme un alias de la fonction count(exists_foreach(item_filter)).
Exemples:
item_count(/*/agent.ping?[group="Host group 1"]) #calculate the number of hosts with the agent.ping item in "Host group 1"
kurtosis(/host/key,(sec|#num)<:time shift>)
L'aplatissement de la distribution de probabilité des valeurs collectées pendant la période d'évaluation définie. Voir aussi: Kurtosis.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
kurtosis(/host/system.cpu.util[,user],5m)>5 #déclencheur sur des pics brusques de l'utilisation du CPU sur 5 minutes
mad(/host/key,(sec|#num)<:time shift>)
L'écart absolu médian des valeurs collectées pendant la période d'évaluation définie. Voir aussi: Écart absolu médian.
Types de valeurs pris en charge: Float, Integer.
Fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #déclencheur si la dernière valeur d'utilisation du CPU est statistiquement significative
max(/host/key,(sec|#num)<:time shift>)
La valeur la plus élevée d'un élément pendant la période d'évaluation définie.
Types de valeurs pris en charge: Float, Integer.
Fonctions foreach prises en charge: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Paramètres: voir paramètres communs.
Exemples:
max(/host/key,1h) - min(/host/key,1h) #calculate the difference between the maximum and minimum values within the last hour until now (the delta of values)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #return the highest disk usage across all Linux servers
min(/host/key,(sec|#num)<:time shift>)
La valeur la plus basse d'un élément pendant la période d'évaluation définie.
Types de valeurs pris en charge: Float, Integer.
Fonctions foreach prises en charge: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Paramètres: voir paramètres communs.
Exemples:
max(/host/key,1h) - min(/host/key,1h) #calculer la différence entre les valeurs maximale et minimale au cours de la dernière heure jusqu'à maintenant (l'écart des valeurs)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #renvoyer l'état opérationnel minimal pour n'importe quelle interface sur tous les serveurs Linux
skewness(/host/key,(sec|#num)<:time shift>)
L'asymétrie de la distribution de probabilité des valeurs collectées pendant la période d'évaluation définie. Voir aussi: Skewness.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
stddevpop(/host/key,(sec|#num)<:décalage temporel>)
L'écart type de population des valeurs collectées dans la période d'évaluation définie. Voir aussi: Écart type.
Types de valeurs pris en charge: Float, Integer.
Fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
stddevpop(/host/system.cpu.util[,user],10m)>7 #déclencheur si l'utilisation du CPU fluctue fortement (l'écart type de population est supérieur à 7 sur 10 minutes)
stddevsamp(/hôte/key,(sec|#num)<:time shift>)
L'écart type d'échantillon des valeurs collectées dans la période d'évaluation définie. Voir aussi: Écart type.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Au moins deux valeurs de données sont requises pour que cette fonction fonctionne.
Exemples:
stddevsamp(/hôte/system.cpu.util[,user],10m)>7 #déclencheur si l'utilisation du CPU fluctue fortement (l'écart type d'échantillon est supérieur à 7 sur 10 minutes)
sum(/host/key,(sec|#num)<:time shift>)
La somme des valeurs collectées pendant la période d'évaluation définie.
Types de valeurs pris en charge: Float, Integer.
Fonctions foreach prises en charge: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Paramètres: voir paramètres communs.
Exemples:
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #calculate the total incoming network traffic for all Linux servers
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calculate the total disk space for all MySQL servers
sum(last_foreach(/*/net.dns[*,*,*])) #calculate the total number of successful DNS checks
sumofsquares(/host/key,(sec|#num)<:décalage temporel>)
La somme des carrés des valeurs collectées dans la période d'évaluation définie.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
sumofsquares(/host/calculated.net.if.rate,1m) #la somme des carrés du taux de trafic réseau (entrant vs sortant)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #la somme des carrés des dernières valeurs de trafic réseau entrant sur tous les hôtes Linux
varpop(/hôte/key,(sec|#num)<:time shift>)
La variance de population des valeurs collectées au cours de la période d'évaluation définie. Voir aussi: Variance.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Exemples:
varpop(/hôte/system.cpu.util[,user],10m)>50 #déclencheur si l'utilisation du CPU fluctue fortement (la variance est supérieure à 50 sur 10 minutes)
varsamp(/hôte/key,(sec|#num)<:time shift>)
La variance d'échantillon des valeurs collectées dans la période d'évaluation définie. Voir aussi: Variance.
Types de valeurs pris en charge: Float, Integer.
fonction foreach prise en charge: last_foreach.
Paramètres: voir paramètres communs.
Au moins deux valeurs de données sont requises pour que cette fonction fonctionne.
Exemples:
varsamp(/hôte/system.cpu.util[,user],10m)>50 #déclencheur si l'utilisation du CPU fluctue fortement (la variance d'échantillon est supérieure à 50 sur 10 minutes)