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.

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

Sintaxis

Para recuperar agregados, utilice una de las funciones agregadas admitidas: avg, max, min, sum, etc. Luego agregue la función foreach como único parámetro y su filtro de métricas para seleccionar las métricas requeridas:

aggregate_function(function_foreach(/host/key?[group="host group"],timeperiod))

Una función foreach (por ejemplo, avg_foreach, count_foreach, etc.) devuelve un valor agregado para cada métrica seleccionada. Las métricas se seleccionan utilizando el filtro de métricas (/host/key?[group="host group"]), del historial de métricas. Para más detalles, ver las funciones foreach.

Si algunas de las métricas no tienen datos para el período solicitado, se ignoran en el cálculo. Si no hay
datos para ninguna métrica, la función devolverá un error.

Alternativamente, puede enumerar varias métricas como parámetros para la agregación:

aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

Tenga en cuenta que la "función" aquí debe ser una función de historial/tendencia.

Si el agregado da como resultado un valor flotante, se recortará a un número entero si el tipo de información de la métrica agregada es Numérico (sin signo).

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

  • no se encuentra ninguna de las métricas referenciadas (lo que puede suceder si la clave de la métrica es incorrecta, ninguna de las métricas 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"]))
Examples of correct/incorrect syntax

Expressions (including function calls) cannot be used as history, trend, or foreach function parameters. However, those functions themselves can be used in other (non-historical) function parameters.

Expression Example
Valid 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)))
Invalid sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Note that in an expression like:

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

it cannot be guaranteed that both parts of the equation will always have the same set of values. While one part of the expression is evaluated, a new value for the requested period may arrive and then the other part of the expression will have a different set of values.