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(/hôte/key,1h) - les fonctions foreach comme
seul paramètre, par exemple
min(last_foreach(/*/key))(uniquement dans les formules d'élément calculé ; pour les utiliser dans les déclencheurs, référencez l'élément calculé par sa clé)
Les fonctions sont répertoriées sans informations supplémentaires. Cliquez sur la fonction pour voir tous les détails.
| Function | Description |
|---|---|
| avg | La valeur moyenne d'un élément pendant 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é des valeurs collectées pendant la période d'évaluation définie. |
| mad | L'écart absolu médian des valeurs collectées pendant la période d'évaluation définie. |
| max | La valeur la plus élevée d'un élément pendant la période d'évaluation définie. |
| min | La valeur la plus basse d'un élément pendant la période d'évaluation définie. |
| skewness | L'asymétrie de la distribution de probabilité des valeurs collectées pendant la période d'évaluation définie. |
| stddevpop | L'écart type de population des valeurs collectées pendant la période d'évaluation définie. |
| stddevsamp | L'écart type d'échantillon des valeurs collectées pendant la période d'évaluation définie. |
| sum | La somme des valeurs collectées pendant la période d'évaluation définie. |
| sumofsquares | La somme des carrés des valeurs collectées pendant la période d'évaluation définie. |
| varpop | La variance de population des valeurs collectées pendant la période d'évaluation définie. |
| varsamp | La variance d'échantillon des valeurs collectées pendant la période d'évaluation définie. |
Paramètres communs
/hôte/cléest un premier paramètre commun obligatoire pour les fonctions faisant référence à l'historique des éléments de l'hôte(sec|#num)<:décalage temporel>est un deuxième paramètre commun pour les fonctions faisant référence à l'historique des éléments de l'hôte, où :- sec - période d'évaluation maximale en secondes (les suffixes de temps peuvent être utilisés), ou
- #num - plage d'évaluation maximale dans les dernières valeurs collectées (si précédée d'un dièse)
- décalage temporel (optionnel) 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)<:time shift>)
La valeur moyenne d’un élément sur 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.
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 un certain temps.
Exemples :
avg(/host/key,1h) #calculate the average value for the last hour until now
avg(/host/key,#5) #calculate the average value of the five latest values
avg(/host/key,1h:now-1d) #calculate the average value for an hour from 25 hours ago to 24 hours ago from now
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #calculate the average processor load for all MySQL servers
avg(/host/proc.num,5m)>300 #trigger if the average number of processes in the last 5 minutes has been above 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) #calculate the 95th percentile response time over 5 minutes
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calculate the 99th percentile API latency
count(func_foreach(filtre d'élément,<période de temps>),<opérateur>,<motif>)
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.
- filtre d'élément - voir filtre d'élément;
- période de temps - voir période de temps;
- opérateur (doit être entre guillemets doubles).
Opérateurspris 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 contient le motif (sensible à la casse)
bitand - ET binaire
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 opérateur 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 opérateur ou pattern ne peuvent pas être laissés vides après une virgule, ils doivent soit être entièrement omis.
- Avec bitand comme troisième paramètre, le quatrième paramètre
patternpeut être spécifié sous forme de deux nombres séparés par '/': nombre_à_comparer/masque. count() calcule le "ET binaire" à partir de la valeur et du masque et compare le résultat à nombre_à_comparer. Si le résultat du "ET binaire" est égal à nombre_à_comparer, la valeur est comptée.
Si nombre_à_comparer et masque sont égaux, seul le masque 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 des expressions régulières globales. Aux fins de la correspondance regexp, les valeurs flottantes seront toujours représentées avec 4 chiffres décimaux après '.'. 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 décimal.
Exemples :
count(max_foreach(/*/net.if.in[*],1h)) #calculate the number of net.if.in items that received data in the last hour until now
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calculate the number of file systems with over 95% of disk space used
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Calcule le φ-quantile à partir des buckets d’un histogramme.
Prend en charge la fonction foreach : 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, permet de référencer 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>)
La « queue » de la distribution de probabilité des valeurs collectées au cours de 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 #trigger on sharp spikes of CPU utilization over 5 minutes
mad(/host/key,(sec|#num)<:décalage temporel>)
L'écart absolu médian des valeurs collectées au cours de 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 processeur 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) #calcule la différence entre les valeurs maximale et minimale au cours de la dernière heure jusqu'à maintenant (le delta des valeurs)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #renvoie l'utilisation de disque la plus élevée sur tous les serveurs Linux
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) #calcule la différence entre les valeurs maximale et minimale au cours de la dernière heure jusqu'à maintenant (le delta des valeurs)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #renvoie l'état opérationnel minimal pour toute interface sur l'ensemble des serveurs Linux
skewness(/host/key,(sec|#num)<:time shift>)
L’asymétrie de la distribution de probabilité des valeurs collectées au cours de 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 les 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)<:time shift>)
L'écart-type de population des valeurs collectées au cours de 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(/host/key,(sec|#num)<:time shift>)
L'écart type de l'échantillon des valeurs collectées pendant 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(/host/system.cpu.util[,user],10m)>7 #déclencheur si l'utilisation du CPU fluctue fortement (l'écart type de l'échantillon est supérieur à 7 sur 10 minutes)
sum(/hôte/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"])) #calcule le trafic réseau entrant total pour tous les serveurs Linux
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calcule l'espace disque total pour tous les serveurs MySQL
sum(last_foreach(/*/net.dns[*,*,*])) #calcule le nombre total de vérifications DNS réussies
sumofsquares(/host/key,(sec|#num)<:time shift>)
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 du trafic réseau entrant sur tous les serveurs Linux
varpop(/host/key,(sec|#num)<:time shift>)
La variance de population 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.
Exemples :
varpop(/host/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(/host/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 nécessaires pour que cette fonction fonctionne.
Exemples :
varsamp(/host/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)