14 item calculado
Resumen
Un item calculado permite crear un cálculo basado en los valores de algunos items existentes. Por ejemplo, puede que desee calcular el promedio por hora del valor de algún item o calcular el valor total de un grupo de items. Para eso sirve un item calculado.
Los cálculos pueden usar ambos:
- valores individuales de items individuales
- un filtro complejo para seleccionar varios items para agregación (consulte cálculos agregados para más detalles)
Los items calculados son una forma de crear fuentes de datos virtuales. Todos los cálculos los realiza únicamente el server de Zabbix. Los valores se calculan periódicamente en función de la expresión aritmética utilizada.
Los datos resultantes se almacenan en la base de datos de Zabbix como cualquier otro item; se almacenan tanto los valores históricos como los de tendencia, y se pueden generar gráficos.
Si el resultado del cálculo es un valor flotante, se truncará a un entero si el tipo de información del item calculado es Numérico (sin signo).
Además, si no hay datos recientes en la caché y no hay un período de consulta definido en la función, Zabbix, de forma predeterminada, retrocederá hasta una semana en el pasado para consultar la base de datos en busca de valores históricos.
Los items calculados comparten su sintaxis con las expresiones de trigger. En los items calculados se permite la comparación con cadenas. Los items calculados pueden ser referenciados por macros u otras entidades igual que cualquier otro tipo de item.
Para usar items calculados, elija el tipo de item Calculated.
Campos configurables
La key es un identificador único del item (por host). Puede crear cualquier nombre de key usando los símbolos admitidos.
La definición del cálculo debe introducirse en el campo Formula. No existe ninguna conexión entre la fórmula y la key. Los parámetros de la key no se usan en la fórmula de ninguna manera.
La sintaxis de una fórmula simple es:
function(/host/key,<parameter1>,<parameter2>,...)
donde:
| function | Una de las funciones admitidas: last, min, max, avg, count, etc |
| host | Host del item que se usa para el cálculo. Se puede omitir el host actual (es decir, como en function(//key,parameter,...)). |
| key | Key del item que se usa para el cálculo. No se admiten items que devuelvan valores con el tipo de datos binario. |
| parameter(s) | Parámetros de la función, si son necesarios. Se admiten sufijos de tiempo y sufijos de tamaño de memoria. |
Los macros de usuario en la fórmula se expandirán si se usan para referenciar un parámetro de función, un parámetro de filtro de item o una constante. Los macros de usuario NO se expandirán si hacen referencia a una función, nombre de host, key de item, parámetro de key de item u operador.
Una fórmula más compleja puede usar una combinación de funciones, operadores y paréntesis. Puede usar todas las funciones y operadores admitidos en las expresiones de trigger. La lógica y la precedencia de los operadores son exactamente las mismas.
A diferencia de las expresiones de trigger, Zabbix procesa los items calculados de acuerdo con el intervalo de actualización del item, no al recibir un nuevo valor.
Todos los items a los que hacen referencia las funciones de historial en la fórmula del item calculado deben existir y estar recopilando datos. Además, si cambia la key de un item referenciado, debe actualizar manualmente todas las fórmulas que usen esa key.
Un item calculado puede quedar no compatible en varios casos:
- item(s) referenciado(s)
- no se encuentra(n)
- está(n) deshabilitado(s)
- pertenece(n) a un host deshabilitado
- no es(son) compatible(s) (excepto con la función nodata() y operadores con valores desconocidos)
- no hay datos para calcular una función
- división por cero
- se usa una sintaxis incorrecta
Ejemplos de uso
Ejemplo 1
Cálculo del porcentaje de espacio libre en disco en '/'.
Uso de la función last:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix tomará los valores más recientes de los espacios en disco libre y total y calculará el porcentaje según la fórmula dada.
Ejemplo 2
Cálculo del promedio de 10 minutos del número de valores procesados por Zabbix.
Uso de la función avg:
avg(/Zabbix Server/zabbix[wcache,values],10m)
Tenga en cuenta que el uso intensivo de items calculados con períodos de tiempo largos puede afectar al rendimiento del server de Zabbix.
Ejemplo 3
Cálculo del ancho de banda total en eth0.
Suma de dos funciones:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Ejemplo 4
Cálculo del porcentaje de tráfico entrante.
Expresión más compleja:
100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))
Véase también: Ejemplos de cálculos agregados