Áú»¢¶Ä²©

7 El¨¦ments calcul¨¦s

Aper?u

Avec les ¨¦l¨¦ments calcul¨¦s, vous pouvez cr¨¦er des calculs sur la base d'autres ¨¦l¨¦ments.

Ainsi, les ¨¦l¨¦ments calcul¨¦s sont un moyen de cr¨¦er des sources de donn¨¦es virtuelles. Les valeurs seront calcul¨¦es p¨¦riodiquement en fonction d'une expression arithm¨¦tique. Tous les calculs sont effectu¨¦s par le serveur Áú»¢¶Ä²© - aucun ¨¦l¨¦ment li¨¦ aux ¨¦l¨¦ments calcul¨¦s n'est effectu¨¦ sur les agents ou proxys Áú»¢¶Ä²©.

Les donn¨¦es r¨¦sultantes seront stock¨¦es dans la base de donn¨¦es Áú»¢¶Ä²© comme pour tout autre ¨¦l¨¦ment - cela signifie stocker ¨¤ la fois l'historique et les valeurs des tendances pour la g¨¦n¨¦ration rapide de graphiques. Les ¨¦l¨¦ments calcul¨¦s peuvent ¨ºtre utilis¨¦s dans les expressions de d¨¦clencheur, r¨¦f¨¦renc¨¦s par des macros ou d'autres entit¨¦s identiques ¨¤ tout autre type d'¨¦l¨¦ment.

Pour utiliser les ¨¦l¨¦ments calcul¨¦s, choisissez le type d'¨¦l¨¦ment °ä²¹±ô³¦³Ü±ô¨¦.

Champs configurables

La ³¦±ô¨¦ est un identifiant d'¨¦l¨¦ment unique (par h?te). Vous pouvez cr¨¦er un nom de ³¦±ô¨¦ ¨¤ l'aide de symboles pris en charge.

La d¨¦finition de calcul doit ¨ºtre entr¨¦e dans le champ Formule. Il n'y a pratiquement aucun lien entre la formule et la ³¦±ô¨¦. Les param¨¨tres ³¦±ô¨¦s ne sont en aucun cas utilis¨¦s dans la formule.

La syntaxe correcte d'une formule simple est :

func(<key>|<hostname:key>,<parameter1>,<parameter2>,...)

O¨´ :

ARGUMENT DEFINITION
func Une des fonctions support¨¦es dans les expressions de d¨¦clenchement : last, min, max, avg, count, etc
³¦±ô¨¦ La ³¦±ô¨¦ d'un autre ¨¦l¨¦ment dont vous voulez utiliser les donn¨¦es. Il peut ¨ºtre d¨¦fini comme ³¦±ô¨¦ ou nom d'h?te:³¦±ô¨¦.
Remarque : Il est fortement recommand¨¦ de mettre toute la ³¦±ô¨¦ entre guillemets ("...") pour ¨¦viter une analyse incorrecte ¨¤ cause des espaces ou des virgules dans la ³¦±ô¨¦.
S'il existe ¨¦galement des param¨¨tres entre guillemets dans la ³¦±ô¨¦, ces guillemets doivent ¨ºtre ¨¦chapp¨¦s en utilisant la barre oblique inverse (\). Voir l'exemple 5 ci-dessous.
±è²¹°ù²¹³¾¨¨³Ù°ù±ð(²õ) Param¨¨tre(s) de fonction, si n¨¦cessaire..

Tous les ¨¦l¨¦ments r¨¦f¨¦renc¨¦s ¨¤ partir de la formule d'¨¦l¨¦ments calcul¨¦e doivent exister et ¨ºtre en train de collecter des donn¨¦es (exceptions dans les fonctions et les ¨¦l¨¦ments non support¨¦s). En outre, si vous modifiez la ³¦±ô¨¦ d'un ¨¦l¨¦ment r¨¦f¨¦renc¨¦, vous devez mettre ¨¤ jour manuellement les formules ¨¤ l'aide de cette ³¦±ô¨¦.

Les macros utilisateur dans la formule seront d¨¦velopp¨¦es si elles sont utilis¨¦es pour r¨¦f¨¦rencer un param¨¨tre de fonction ou une constante. Les macros utilisateur NE seront PAS d¨¦velopp¨¦es si vous r¨¦f¨¦rencez une fonction, un nom d'h?te, une ³¦±ô¨¦ d'¨¦l¨¦ment, un param¨¨tre de ³¦±ô¨¦ d'¨¦l¨¦ment ou un op¨¦rateur.

Une formule plus complexe peut utiliser une combinaison de fonctions, d'´Ç±è¨¦°ù²¹³Ù±ð³Ü°ù²õ et de crochets. Vous pouvez utiliser toutes les fonctions et tous les ´Ç±è¨¦°ù²¹³Ù±ð³Ü°ù²õ pris en charge dans les expressions de d¨¦clencheur. Notez que la syntaxe est l¨¦g¨¨rement diff¨¦rente, mais la logique et la priorit¨¦ des ´Ç±è¨¦°ù²¹³Ù±ð³Ü°ù²õ sont exactement les m¨ºmes.

Contrairement aux expressions de d¨¦clencheur, Áú»¢¶Ä²© traite les ¨¦l¨¦ments calcul¨¦s en fonction de l'intervalle d¡¯actualisation de l'¨¦l¨¦ment, et non lors de la r¨¦ception d'une nouvelle valeur.

Si le r¨¦sultat du calcul est une valeur flottante, il sera r¨¦duit ¨¤ un entier si le type d'information calcul¨¦ est Num¨¦rique (non sign¨¦).

Un ¨¦l¨¦ment calcul¨¦ peut ne plus ¨ºtre pris en charge dans plusieurs cas :

  1. ¨¦l¨¦ment(s) r¨¦f¨¦renc¨¦(s)
  2. pas de donn¨¦es pour calculer une fonction
  3. division par zero
  4. utilisation d'une syntaxe incorrecte

La prise en charge des ¨¦l¨¦ments calcul¨¦s a ¨¦t¨¦ introduite dans Áú»¢¶Ä²© 1.8.1.
? partir de Áú»¢¶Ä²© 3.2, les ¨¦l¨¦ments calcul¨¦s dans certains cas peuvent impliquer des ¨¦l¨¦ments non support¨¦s comme d¨¦crit dans les fonctions et les ¨¦l¨¦ments non support¨¦s, les expressions avec des ¨¦l¨¦ments non support¨¦s et les valeurs inconnues et les ´Ç±è¨¦°ù²¹³Ù±ð³Ü°ù²õ).

Exemples d'utilisation

Exemple 1

Calcul du pourcentage d'espace disque libre sur '/'.

Utilisation de la fonction last :

100*last("vfs.fs.size[/,free]")/last("vfs.fs.size[/,total]")

Áú»¢¶Ä²© prendra les derni¨¨res valeurs pour les espaces disque libres et totaux et calculera le pourcentage en fonction de la formule donn¨¦e.

Exemple 2

Calcul d'une moyenne de 10 minutes du nombre de valeurs trait¨¦es par Áú»¢¶Ä²©.

Utilisation de la fonction avg :

avg("Áú»¢¶Ä²© Server:zabbix[wcache,values]",600)

Notez que l'utilisation intensive d'¨¦l¨¦ments calcul¨¦s avec de longues p¨¦riodes de temps peut affecter les performances du serveur Áú»¢¶Ä²©.

Exemple 3

Calcul de la bande passante totale sur eth0.

Somme de deux fonctions :

last("net.if.in[eth0,bytes]")+last("net.if.out[eth0,bytes]")
Exemple 4

Calcul du pourcentage de trafic entrant.

Expression plus complexe :

100*last("net.if.in[eth0,bytes]")/(last("net.if.in[eth0,bytes]")+last("net.if.out[eth0,bytes]"))
Exemple 5

Utilisation correcte d'¨¦l¨¦ments agr¨¦g¨¦s dans un ¨¦l¨¦ment calcul¨¦.

Prenez note de la fa?on dont les guillemets doubles sont ¨¦chapp¨¦s dans la ³¦±ô¨¦ entre guillemets :

last("grpsum[\"video\",\"net.if.out[eth0,bytes]\",\"last\"]") / last("grpsum[\"video\",\"nginx_stat.sh[active]\",\"last\"]")