1 Cálculos agregados

Descripción general

Los cálculos agregados son un tipo de métrica calculada que permite recopilar información de varias métricas por el servidor Zabbix y luego calcular un agregado, dependiendo de la función agregada utilizada.

Solo se admiten valores flotantes y enteros sin signo (tipo de información) para las métricas con cálculo agregado.

Los cálculos agregados no requieren que ningún agente se ejecute en el equipo que está siendo monitoreado.

Sintaxis

Los agregados se pueden recuperar trabajando con:

  • historial de artículos:
función_agregada(función(/host/elemento,parámetro),función(/host2/elemento2,parámetro),...)
added_function(foreach_function(/*/key?[group="host group"],timeperiod))

dónde:

  • La función_agregada es una de las [funciones agregadas] admitidas (/manual/appendix/functions/agregado#agregado-funciones-1): avg, max, min, sum, etc.
  • foreach_function es una de las funciones foreach admitidas: avg_foreach, count_foreach, etc.

Las funciones de Foreach usan un filtro de elementos, para trabajar con el historial de varios elementos y devolver una matriz de valores, uno para cada elemento.

Si el agregado da como resultado un valor flotante, se recortará a un número entero si el tipo de información del elemento agregado es Numérico (no firmado).

Un cálculo agregado puede dejar de ser compatible si:

  • no se encuentra ninguno de los elementos a los que se hace referencia (lo que puede suceder si el elemento la clave es incorrecta, ninguno de los elementos existe o todos los grupos incluidos son incorrectos)
  • no hay datos para calcular una función

Ejemplos de uso

Ejemplos de claves para cálculos agregados.

Ejemplo 1

Espacio total en disco del grupo de host 'Servidores MySQL'.

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

Suma de los valores más recientes de todos los elementos que coinciden con net.if.in[*] en el host.

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

Carga promedio del procesador del grupo de host 'Servidores MySQL'.

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

Promedio de 5 minutos del número de consultas por segundo para el grupo host 'Servidores MySQL'.

avg(avg_foreach(/*/mysql.qps?[grupo="Servidores MySQL"],5m))
Ejemplo 5

Carga promedio de CPU en todos los hosts en varios grupos de hosts que tienen la etiquetas específicas.

avg(last_foreach(/*/system.cpu.load?[(grupo="Servidores A" o grupo="Servidores B" o grupo="Servidores C") y (etiqueta="Servicio:" o etiqueta="Importancia: Alto")]))
Ejemplo 6

Cálculo utilizado en las últimas sumas de valores de artículos de un grupo anfitrión completo.

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

El número total de elementos no admitidos en el grupo de host 'Servidores Zabbix'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[grupo="Servidores Zabbix"]))
Ejemplos de sintaxis correcta/incorrecta

Las expresiones (incluidas las llamadas a funciones) no se pueden utilizar como parámetros de historial, tendencia o función foreach. Sin embargo, esas funciones en sí mismas se pueden usar en otros parámetros de función (no históricos).

Expresión Ejemplo
Válido avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)
max(avg(avg_foreach(/*/system. cpu.load?[group="Servidores A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servidores B"],5m)),avg(avg_foreach(/*/ system.cpu.load?[group="Servidores C"],5m)))
No válido sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Tenga en cuenta que en una expresión como:

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

no se puede garantizar que ambas partes de la ecuación siempre tengan el mismo conjunto de valores. Mientras se evalúa una parte de la expresión, puede llegar un nuevo valor para el período solicitado y entonces la otra parte de la expresión tendrá un conjunto de valores diferente.