[comment]: # attributes: notoc

[comment]: # ({e9a7c12e-ee60e21e})
# 1 Funciones agregadas

Salvo que se indique lo contrario, todas las funciones enumeradas aquí son compatibles con:

-   [Expresiones de trigger](/manual/config/triggers/expression)
-   [Items calculados](/manual/config/items/itemtypes/calculated)
-   [Macros de expresión](/manual/config/macros/expression_macros)

Las funciones agregadas pueden trabajar con cualquiera de las siguientes opciones:

-   historial de items, por ejemplo, `min(/host/key,1h)`
-   [funciones foreach](/manual/appendix/functions/aggregate/foreach) como
    único parámetro, por ejemplo, `min(last_foreach(/*/key))` (solo en items calculados; no se puede usar en triggers)

Las funciones se enumeran sin información adicional. Haga clic en la función para ver los detalles completos.

|Function|Description|
|--|--------|
|[avg](#avg)|El valor promedio de un item dentro del período de evaluación definido.|
|[bucket_percentile](#bucket-percentile)|Calcula el percentil a partir de los buckets de un histograma.|
|[count](#count)|El recuento de valores en una matriz devuelta por una función foreach.|
|[histogram_quantile](#histogram-quantile)|Calcula el cuantil φ a partir de los buckets de un histograma.|
|[item_count](#item-count)|El recuento de items existentes en la configuración que coinciden con los criterios del filtro.|
|[kurtosis](#kurtosis)|La "curtosis" de la distribución de probabilidad en los valores recopilados dentro del período de evaluación definido.|
|[mad](#mad)|La desviación absoluta mediana en los valores recopilados dentro del período de evaluación definido.|
|[max](#max)|El valor más alto de un item dentro del período de evaluación definido.|
|[min](#min)|El valor más bajo de un item dentro del período de evaluación definido.|
|[skewness](#skewness)|La asimetría de la distribución de probabilidad en los valores recopilados dentro del período de evaluación definido.|
|[stddevpop](#stddevpop)|La desviación estándar poblacional en los valores recopilados dentro del período de evaluación definido.|
|[stddevsamp](#stddevsamp)|La desviación estándar muestral en los valores recopilados dentro del período de evaluación definido.|
|[sum](#sum)|La suma de los valores recopilados dentro del período de evaluación definido.|
|[sumofsquares](#sumofsquares)|La suma de cuadrados en los valores recopilados dentro del período de evaluación definido.|
|[varpop](#varpop)|La varianza poblacional de los valores recopilados dentro del período de evaluación definido.|
|[varsamp](#varsamp)|La varianza muestral de los valores recopilados dentro del período de evaluación definido.|

[comment]: # ({/e9a7c12e-ee60e21e})

[comment]: # ({2acead3e-4d343eb8})
#### Parámetros comunes

-   `/host/key` es un primer parámetro obligatorio común para las funciones
    que hacen referencia al historial del item del host
-   `(sec|#num)<:time shift>` es un segundo parámetro común para las
    funciones que hacen referencia al historial del item del host, donde:
    -   **sec** - período máximo de [evaluación](/manual/config/triggers#evaluation-period) en segundos
        (se pueden usar [sufijos](/manual/appendix/suffixes) de tiempo), o
    -   **\#num** - [rango de evaluación](/manual/config/triggers#evaluation-period) máximo en los últimos
        valores recopilados (si va precedido por una almohadilla)
    -   **time shift** (opcional) permite mover el punto de evaluación
        hacia atrás en el tiempo. Consulte [más
        detalles](/manual/config/triggers/expression#time-shift) sobre
        cómo especificar time shift.

[comment]: # ({/2acead3e-4d343eb8})

[comment]: # ({c645f0e4-fe53c04c})
### Detalles de la función

Algunas notas generales sobre los parámetros de la función:

-   Los parámetros de la función están separados por una coma
-   Los parámetros opcionales de la función (o partes del parámetro) se indican mediante
    `<` `>`
-   Los parámetros específicos de la función se describen con cada función
-   Los parámetros `/host/key` y `(sec|#num)<:desplazamiento de tiempo>` nunca deben ir entre comillas

[comment]: # ({/c645f0e4-fe53c04c})

[comment]: # ({85535fd1-f5993b4c})
##### avg(/host/key,(sec|#num)<:time shift>) {#avg}

El valor promedio de un item dentro del período de evaluación definido.<br>
Tipos de valor admitidos: *Float*, *Integer*.<br>
[Funciones foreach](/manual/appendix/functions/aggregate/foreach) admitidas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

El desplazamiento temporal es útil cuando es necesario comparar el valor promedio actual con el valor promedio de hace algún tiempo.

Ejemplos:

```default
avg(/host/key,1h) #calcular el valor promedio de la última hora hasta ahora
avg(/host/key,#5) #calcular el valor promedio de los cinco últimos valores
avg(/host/key,1h:now-1d) #calcular el valor promedio de una hora desde hace 25 horas hasta hace 24 horas desde ahora
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #calcular la carga promedio del procesador para todos los servidores MySQL
avg(/host/proc.num,5m)>300 #trigger si el número promedio de procesos en los últimos 5 minutos ha estado por encima de 300
```

[comment]: # ({/85535fd1-f5993b4c})

[comment]: # ({9237fab4-af24d13f})
##### bucket_percentile(item filter,time period,percentage) {#bucket-percentile}

Calcula el percentil a partir de los buckets de un histograma.<br>

Parámetros: 

-   **item filter** - consulte [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - consulte [time period](/manual/appendix/functions/aggregate/foreach#time-period);<br>
-   **percentage** - porcentaje (0-100).

Comentarios:

-   Solo se admite en items calculados;
-   Esta función es un alias de `histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1))`.

Ejemplos:

```default
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calcula el tiempo de respuesta del percentil 95 durante 5 minutos
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calcula la latencia de la API del percentil 99
```

[comment]: # ({/9237fab4-af24d13f})

[comment]: # ({6e12bb62-3c498650})
##### count(func_foreach(item filter,<time period>),<operator>,<pattern>) {#count}

El recuento de valores en un array devuelto por una función foreach.<br>
Funciones [foreach](/manual/appendix/functions/aggregate/foreach) compatibles: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parámetros: 

-   **func_foreach** - función foreach para la cual se debe contar el número de valores devueltos. Consulte [foreach functions](/manual/appendix/functions/aggregate/foreach) para obtener más detalles. Tenga en cuenta que count_foreach y bucket_rate_foreach admiten [parámetros adicionales](/manual/appendix/functions/aggregate/foreach#additional-parameters).
-   **item filter** - consulte [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - consulte [time period](/manual/appendix/functions/aggregate/foreach#time-period);<br>
-   **operator** (debe ir entre comillas dobles). `operators` compatibles:<br>*eq* - igual<br>*ne* - no igual<br>*gt* - mayor<br>*ge* - mayor o igual<br>*lt* - menor<br>*le* - menor o igual<br>*like* - coincide si contiene el patrón (sensible a mayúsculas y minúsculas)<br>*bitand* - AND bit a bit<br>*regexp* - coincidencia sensible a mayúsculas y minúsculas de la expresión regular dada en `pattern`<br>*iregexp* - coincidencia no sensible a mayúsculas y minúsculas de la expresión regular dada en `pattern`<br>
-   **pattern** - el patrón requerido (los argumentos de tipo string deben ir entre comillas dobles); compatible si *operator* se especifica en el tercer parámetro.

Comentarios: 

-   El uso de **count()** con una función foreach relacionada con el historial (max_foreach, avg_foreach, etc.) puede tener implicaciones de rendimiento, mientras que el uso de **exists_foreach()**, que solo funciona con datos de configuración, no tendrá ese efecto.
-   Los parámetros opcionales *operator* o *pattern* no pueden dejarse vacíos después de una coma; solo pueden omitirse por completo.
-   Con *bitand* como tercer parámetro, el cuarto parámetro `pattern` puede especificarse como dos números, separados por '/': **number_to_compare_with/mask**. count() calcula el "AND bit a bit" del valor y la *mask* y compara el resultado con *number_to_compare_with*. Si el resultado del "AND bit a bit" es igual a *number_to_compare_with*, el valor se cuenta.<br>Si *number_to_compare_with* y *mask* son iguales, solo es necesario especificar la *mask* (sin '/').
-   Con *regexp* o *iregexp* como tercer parámetro, el cuarto parámetro `pattern` puede ser una expresión regular normal o [global](/manual/regular_expressions#global-regular-expressions) (que comience con '@'). En el caso de expresiones regulares globales, la distinción entre mayúsculas y minúsculas se hereda de la configuración de expresiones regulares globales. A efectos de la coincidencia regexp, los valores flotantes siempre se representarán con 4 dígitos decimales después de '.'. Tenga en cuenta también que, para números grandes, la diferencia entre la representación decimal (almacenada en la base de datos) y la binaria (utilizada por el server de Zabbix) puede afectar al cuarto dígito decimal.

Ejemplos:

```default
count(max_foreach(/*/net.if.in[*],1h)) #calcula el número de items net.if.in que recibieron datos en la última hora hasta ahora
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calcula el número de sistemas de archivos con más del 95% del espacio en disco utilizado
```

[comment]: # ({/6e12bb62-3c498650})

[comment]: # ({f07c0983-f3ad7158})
##### histogram_quantile(quantile,bucket1,value1,bucket2,value2,...) {#histogram-quantile}

Calcula el φ-cuantil a partir de los buckets de un histograma.<br>
Función [foreach](/manual/appendix/functions/aggregate/foreach) compatible: *bucket_rate_foreach*.

Parámetros: 

-   **quantile** - 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** - pares introducidos manualmente (>=2) de parámetros o la respuesta de [bucket_rate_foreach](/manual/appendix/functions/aggregate/foreach).

Comentarios:

-   Solo compatible en items calculados;
-   Funcionalmente corresponde a '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' de PromQL;
-   Devuelve -1 si los valores del último bucket 'Infinity' (*"+inf"*) son iguales a 0.

Ejemplos:

```default
histogram_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//item_key,30s))
```

[comment]: # ({/f07c0983-f3ad7158})

[comment]: # ({90ddddd2-c8e3133a})
##### item_count(item filter) {#item-count}

La cantidad de items existentes en la configuración que coinciden con los criterios del filtro.<br>
Tipo de valor compatible: *Integer*.

Parámetro: 

-   **item filter** - criterios para la selección de items, permite hacer referencia por grupo de hosts, host, clave del item y etiquetas. Se admiten comodines. Consulte [item filter](/manual/appendix/functions/aggregate/foreach#item-filter-syntax) para obtener más detalles.<br>

Comentarios:

-   Compatible solo en items calculados;
-   Funciona como un alias de la función *count(exists_foreach(item_filter))*.

Ejemplos:

```default
item_count(/*/agent.ping?[group="Host group 1"]) #calcula el número de hosts con el item agent.ping en "Host group 1"
```

[comment]: # ({/90ddddd2-c8e3133a})

[comment]: # ({ad613717-88a54099})
##### kurtosis(/host/key,(sec|#num)<:time shift>) {#kurtosis}

La "cola" de la distribución de probabilidad en los valores recopilados dentro del período de evaluación definido. Consulte también: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis).<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) compatible: *last_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

Ejemplos:

```default
kurtosis(/host/system.cpu.util[,user],5m)>5 #trigger on sharp spikes of CPU utilization over 5 minutes
```

[comment]: # ({/ad613717-88a54099})

[comment]: # ({1b18c768-bfb43a27})
##### mad(/host/key,(sec|#num)<:time shift>) {#mad}

La desviación absoluta mediana en los valores recopilados dentro del período de evaluación definido. Consulte también: [Median absolute deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation).<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) compatible: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Ejemplos:

```default
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #trigger if the last CPU utilization value is statistically significant
```

[comment]: # ({/1b18c768-bfb43a27})

[comment]: # ({9ac9dd89-5882010b})
##### max(/host/key,(sec|#num)<:time shift>) {#max}

El valor más alto de un item dentro del período de evaluación definido.<br>
Tipos de valor admitidos: *Float*, *Integer*.<br>
[Funciones foreach](/manual/appendix/functions/aggregate/foreach) admitidas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

Ejemplos:

```default
max(/host/key,1h) - min(/host/key,1h) #calcular la diferencia entre los valores máximo y mínimo dentro de la última hora hasta ahora (el delta de los valores)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #devuelve el uso de disco más alto entre todos los servidores Linux
```

[comment]: # ({/9ac9dd89-5882010b})

[comment]: # ({471d86a5-ffd1e499})
##### min(/host/key,(sec|#num)<:time shift>) {#min}

El valor más bajo de un item dentro del período de evaluación definido.<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Funciones foreach](/manual/appendix/functions/aggregate/foreach) compatibles: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

Ejemplos:

```default
max(/host/key,1h) - min(/host/key,1h) #calcula la diferencia entre los valores máximo y mínimo dentro de la última hora hasta ahora (el delta de los valores)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #devuelve el estado operativo mínimo de cualquier interfaz en todos los Linux servers
```

[comment]: # ({/471d86a5-ffd1e499})

[comment]: # ({8d966168-6b6fb273})
##### skewness(/host/key,(sec|#num)<:time shift>) {#skewness}

La asimetría de la distribución de probabilidad en los valores recopilados dentro del período de evaluación definido. Consulte también: [Skewness](https://en.wikipedia.org/wiki/Skewness).<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) compatible: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Ejemplos:

```default
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
```

[comment]: # ({/8d966168-6b6fb273})

[comment]: # ({0b3aca57-11c2ea25})
##### stddevpop(/host/key,(sec|#num)<:time shift>) {#stddevpop}

La desviación estándar poblacional de los valores recopilados dentro del período de evaluación definido. Consulte también: [Desviación estándar](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) compatible: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Ejemplos:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #trigger if CPU usage fluctuates heavily (population standard deviation is above 7 over 10 minutes)
```

[comment]: # ({/0b3aca57-11c2ea25})

[comment]: # ({f7108164-1db77c44})
##### stddevsamp(/host/key,(sec|#num)<:time shift>) {#stddevsamp}

La desviación estándar muestral de los valores recopilados dentro del período de evaluación definido. Consulte también: [Desviación estándar](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipos de valor admitidos: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) admitida: *last_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

Se requieren al menos dos valores de datos para que esta función funcione.

Ejemplos:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger si el uso de CPU fluctúa mucho (la desviación estándar muestral es superior a 7 durante 10 minutos)
```

[comment]: # ({/f7108164-1db77c44})

[comment]: # ({740c263a-0ecf79eb})
##### sum(/host/key,(sec|#num)<:time shift>) {#sum}

La suma de los valores recopilados dentro del período de evaluación definido.<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Funciones foreach](/manual/appendix/functions/aggregate/foreach) compatibles: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parámetros: consulte los [parámetros comunes](#common-parameters).

Ejemplos:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #calcular el tráfico de red entrante total para todos los servidores Linux
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calcular el espacio total en disco para todos los servidores MySQL
sum(last_foreach(/*/net.dns[*,*,*])) #calcular el número total de comprobaciones DNS correctas
```

[comment]: # ({/740c263a-0ecf79eb})

[comment]: # ({57e39842-6f6556f2})
##### sumofsquares(/host/key,(sec|#num)<:time shift>) {#sumofsquares}

La suma de los cuadrados de los valores recopilados dentro del período de evaluación definido.<br>
Tipos de valor compatibles: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) compatible: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Ejemplos:

```default
sumofsquares(/host/calculated.net.if.rate,1m) #la suma de los cuadrados para la tasa de tráfico de red (entrante vs saliente)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #la suma de los cuadrados de los últimos valores de tráfico de red entrante en todos los servidores Linux
```

[comment]: # ({/57e39842-6f6556f2})

[comment]: # ({a61bfa35-d299bd33})
##### varpop(/host/key,(sec|#num)<:time shift>) {#varpop}

La varianza poblacional de los valores recopilados dentro del período de evaluación definido. Consulte también: [Variance](https://en.wikipedia.org/wiki/Variance).<br>
Tipos de valor admitidos: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) admitida: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Ejemplos:

```default
varpop(/host/system.cpu.util[,user],10m)>50 #trigger if CPU usage fluctuates heavily (variance is above 50 over 10 minutes)
```

[comment]: # ({/a61bfa35-d299bd33})

[comment]: # ({146891fb-b1bc041c})
##### varsamp(/host/key,(sec|#num)<:time shift>) {#varsamp}

La varianza muestral de los valores recopilados dentro del período de evaluación definido. Consulte también: [Variance](https://en.wikipedia.org/wiki/Variance).<br>
Tipos de valor admitidos: *Float*, *Integer*.<br>
[Función foreach](/manual/appendix/functions/aggregate/foreach) admitida: *last_foreach*.

Parámetros: consulte [parámetros comunes](#common-parameters).

Se requieren al menos dos valores de datos para que esta función funcione.

Ejemplos:

```default
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger si el uso de CPU fluctúa mucho (la varianza muestral es superior a 50 durante 10 minutos)
```

[comment]: # ({/146891fb-b1bc041c})

[comment]: # ({ba59dd3a-541616fc})
Vea [todas las funciones compatibles](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-541616fc})


