1 Càlculs agregats

Vista general

Els càlculs agregats són de tipus element calculat i permeten la recollida informació de diversos elements per el servidor Zabbix i calcular un agregat, segons la funció d'agregat emprada.

Com a element de càlcul agregats, només s'admeten valors enters (sense signe) i flotants (tipus d'informació).

Els càlculs agregats no necessiten cap agent executant-se a l'equip monitorat.

Sintaxi

Per recuperar els agregats, heu de:

  • llistar diversos elements per agregació:
aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

Fixeu-vos que la function ha d'ésser una funció d'històric/tendència.

  • empleu la funció foreach com a únic paràmetre, i el seu filtre d'elements per trigar els elements necessaris:
aggregate_function(foreach_function(/host/key?[group="host group"],timeperiod))

La funció d'agregat és una de les funcions d'agregat admeses: avg, max, min, sum, etc.

La funció foreach (com ara avg_foreach, count_foreach, etc.) torna un valor agregat per cada element triat. Els elements s'escullen emprant el filtre d'element (/host/key?[group="host group"]), de l'històric d'elements.

Si algun dels elements no té informació per al període demanat, s'ignorarà al càlcul. Si no hi ha cap element amb informació, retornarà un error.

Per veure més detalls, veieu les funcions foreach.

Si l'agregat torna un valor flotant, es reduirà a un nombre enter si el tipus d'element d'informació agregada és Numèric (sense signe).

Un càlcul d'agregat es podria no admetre si:

  • no es troba cap dels elements referenciats (això pot passar si la clau d'element és incorrecta, si algun dels elements no existeix o si tots els grups inclosos són incorrectes)
  • no hi ha informació per calcular la funció

Exemples d'ús

Exemples de claus per als càlculs agregats.

Exemple 1

Espai total de disc del grup d'equips 'MySQL Servers'.

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

Suma dels darrers valors de tots els elements que corresponen a net.if.in[*] sota l'equip.

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

Càrrega mitjana de processador del grup d'equips 'MySQL Servers'.

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

Mitjana de 5 minuts del nombre de peticions per segon del grup d'equips 'MySQL Servers'.

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

Càrrega mitjana de CPU de tots els equips a diversos grups d'equips que tenen unes etiquetes concretes.

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

Càlcul emprat sota les darreres sumes de valor d'element d'un grup d'equips sencer.

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

Nombre total d'elements no admesos al grup d'equips 'Zabbix servers'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))
Exemples de sintaxi correcta/incorrecta

Les expressions (incloses les crides a funcions) no es poden pas emprar com a paràmetres d'històric, de tendència o de la funció foreach. Tanmateix, les pròpies funcions poden emprar-se dins d'altres paràmetres de funció (no històriques).

Expressió Exemple
Vàlid 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)))
No vàlid sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Veieu que en una expressió com ara:

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

no es pot garantir que les dues parts de l'equació tinguin sempre el mateix conjunt de valors. Mentre una part de l'expressió és avaluada, pota arribar un valor nou per al període demanat, i llavors l'altra part de l'expressió tindrà un conjunt de valors diferent.