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

Calculs agrégés

Aperçu

Les calculs agrégés sont de type élément calculé et permettent de collecter les informations de plusieurs éléments par le serveur Zabbix puis de calculer un agrégat, selon la fonction d'agrégat utilisée.

Seules les valeurs entières non signées et flottantes (type d'informations) sont prises en charge pour les éléments de calcul agrégés.

Les calculs agrégés ne nécessitent aucun agent en cours d'exécution sur l'hôte surveillé.

Syntaxe

Les agrégats peuvent être récupérés en travaillant avec :

  • historique des éléments :
aggregate_function(function(/host/item,parameter),function(/host2/item2,parameter),...)
aggregate_function(foreach_function(/*/key?[group="host group"],timeperiod))

où:

  • aggregate_functionest l'une des fonctions d'agrégation prises en charge : avg, max, min, sum, etc.
  • foreach_function est l'une des fonctions foreach prises en charge : avg_foreach, count_foreach, etc.

Les fonctions Foreach utilisent un filtre d'élément, pour travailler avec l'historique de plusieurs éléments et renvoyer un tableau de valeurs - une pour chaque élément.

Si l'agrégat donne une valeur flottante, il sera réduit à un nombre entier si le type d'élément d'information agrégé est Numérique (non signé).

Un calcul agrégé peut ne plus être pris en charge si :

  • aucun des éléments référencés n'est trouvé (ce qui peut arriver si la clé de l'élément est incorrecte, si aucun des éléments n'existe ou si tous les groupes inclus sont incorrects)
  • pas de données pour calculer une fonction

Exemples d'utilisation

Exemples de clés pour les calculs agrégés.

Exemple 1

Espace disque total du groupe d'hôtes 'MySQL Servers'.

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
Exemple 2

Somme des dernières valeurs de tous les éléments correspondant à net.if.in[*] sur l'hôte.

sum(last_foreach(/host/net.if.in[*]))
Exemple 3

Charge moyenne du processeur du groupe d'hôtes 'MySQL Servers'.

avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))
Exemple 4

Moyenne sur 5 minutes du nombre de requêtes par seconde pour le groupe d'hôtes 'MySQL Servers'.

avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
Exemple 5

Charge CPU moyenne sur tous les hôtes dans plusieurs groupes d'hôtes qui ont des tags spécifiques.

avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Exemple 6

Calcul utilisé sur les dernières sommes de valeur d'élément d'un groupe d'hôtes entier.

sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 
Exemple 7

Le nombre total d'éléments non pris en charge dans le groupe d'hôtes 'Zabbix servers'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))
Exemples de syntaxe correcte/incorrecte

Les expressions (y compris les appels de fonction) ne peuvent pas être utilisées comme paramètres d'historique, de tendance ou de la fonction foreach. Cependant, ces fonctions elles-mêmes peuvent être utilisées dans d'autres paramètres de fonction (non historiques).

Expression Exemple
Valide avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)
max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))
Invalide sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Notez que dans une expression comme :

sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))

il ne peut être garanti que les deux parties de l'équation auront toujours le même ensemble de valeurs. Pendant qu'une partie de l'expression est évaluée, une nouvelle valeur pour la période demandée peut arriver, puis l'autre partie de l'expression aura un ensemble de valeurs différent.