[comment]: # translation:outdated

[comment]: # attributes: notoc

[comment]: # (terms:  avg, bucket_percentile, count, histogram_quantile, item_count, kurtosis, mad, max, min, skewness, stddevpop, stddevsamp, sum, sumofsquares, varpop, varsamp )

[comment]: # (tags:  count )

[comment]: # ({cbe17b03-ee60e21e})
# 1 Funções agregadas

Exceto quando indicado de outra forma, todas as funções listadas aqui são suportadas em:

-   [Expressões de trigger](/manual/config/triggers/expression)
-   [Fórmulas de item calculado](/manual/config/items/itemtypes/calculated)
-   [Macros de expressão](/manual/config/macros/expression_macros)

As funções agregadas podem trabalhar com:

-   histórico de items, por exemplo, `min(/host/key,1h)`
-   [funções foreach](/manual/config/triggers/expression/aggregate/foreach) como
    o único parâmetro, por exemplo, `min(last_foreach(/*/key))` (somente em fórmulas de item calculado; para usar em triggers, referencie o item calculado pela sua chave)

As funções são listadas sem informações adicionais. Clique na função para ver todos os detalhes.

|Function|Description|
|--|--------|
|[avg](#avg)|O valor médio de um item dentro do período de avaliação definido.|
|[bucket_percentile](#bucket-percentile)|Calcula o percentil a partir dos buckets de um histograma.|
|[count](#count)|A contagem de valores em um array retornado por uma função foreach.|
|[histogram_quantile](#histogram-quantile)|Calcula o φ-quantil a partir dos buckets de um histograma.|
|[item_count](#item-count)|A contagem de items existentes na configuração que correspondem aos critérios de filtro.|
|[kurtosis](#kurtosis)|A "cauda" da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido.|
|[mad](#mad)|O desvio absoluto mediano nos valores coletados dentro do período de avaliação definido.|
|[max](#max)|O maior valor de um item dentro do período de avaliação definido.|
|[min](#min)|O menor valor de um item dentro do período de avaliação definido.|
|[skewness](#skewness)|A assimetria da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido.|
|[stddevpop](#stddevpop)|O desvio padrão populacional nos valores coletados dentro do período de avaliação definido.|
|[stddevsamp](#stddevsamp)|O desvio padrão amostral nos valores coletados dentro do período de avaliação definido.|
|[sum](#sum)|A soma dos valores coletados dentro do período de avaliação definido.|
|[sumofsquares](#sumofsquares)|A soma dos quadrados nos valores coletados dentro do período de avaliação definido.|
|[varpop](#varpop)|A variância populacional dos valores coletados dentro do período de avaliação definido.|
|[varsamp](#varsamp)|A variância amostral dos valores coletados dentro do período de avaliação definido.|

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

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

-   `/host/key` é um parâmetro obrigatório comum para as funções que fazem referência ao histórico do item do host
-   `(sec|#num)<:deslocamento de tempo>` é um parâmetro comum para as funções que fazem referência ao histórico do item do host, onde:
    -   **sec** - [período de avaliação](/manual/config/triggers#evaluation-period) máximo em segundos (sufixos de [tempo](/manual/appendix/suffixes) podem ser usados), ou
    -   **\#num** - [intervalo de avaliação](/manual/config/triggers#evaluation-period) máximo nos últimos valores coletados (se precedido por um sinal de hash)
    -   **deslocamento de tempo** (opcional) permite mover o ponto de avaliação para trás no tempo. Veja [mais detalhes](/manual/config/triggers/expression#time-shift) sobre como especificar o deslocamento de tempo.

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

[comment]: # ({c645f0e4-fe53c04c})
### Detalhes da função

Algumas observações gerais sobre os parâmetros da função:

-   Os parâmetros da função são separados por vírgula
-   Parâmetros opcionais da função (ou partes do parâmetro) são indicados por
    `<` `>`
-   Parâmetros específicos da função são descritos com cada função
-   Os parâmetros `/host/key` e `(sec|#num)<:time shift>` nunca devem ser
    entre aspas

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

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

O valor médio de um item dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
[Funções foreach](/manual/config/triggers/expression/aggregate/foreach) suportadas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

O deslocamento de tempo é útil quando há necessidade de comparar o valor médio atual com o valor médio de algum tempo atrás.

Exemplos:

```default
avg(/host/key,1h) #calcula o valor médio da última hora até agora
avg(/host/key,#5) #calcula o valor médio dos cinco valores mais recentes
avg(/host/key,1h:now-1d) #calcula o valor médio de uma hora, de 25 horas atrás até 24 horas atrás a partir de agora
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #calcula a carga média do processador para todos os servidores MySQL
avg(/host/proc.num,5m)>300 #trigger se o número médio de processos nos últimos 5 minutos tiver ficado acima de 300
```

[comment]: # ({/2844b0b7-f5993b4c})

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

Calcula o percentil a partir dos buckets de um histograma.<br>

Parâmetros: 

-   **item filter** - veja [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - veja [time period](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **percentage** - porcentagem (0-100).

Comentários:

-   Suportado apenas em itens calculados;
-   Esta função é um alias para `histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1))`.

Exemplos:

```default
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #calcula o tempo de resposta do 95º percentil em 5 minutos
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #calcula a latência da API no 99º percentil
```

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

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

A contagem de valores em um array retornado por uma função foreach.<br>
Funções [foreach](/manual/config/triggers/expression/aggregate/foreach) suportadas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parâmetros: 

-   **func_foreach** - função foreach para a qual o número de valores retornados deve ser contado. Veja [funções foreach](/manual/config/triggers/expression/aggregate/foreach) para mais detalhes. Observe que count_foreach e bucket_rate_foreach suportam [parâmetros adicionais](/manual/config/triggers/expression/aggregate/foreach#additional-parameters).
-   **item filter** - veja [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax);<br>
-   **time period** - veja [time period](/manual/config/triggers/expression/aggregate/foreach#time-period);<br>
-   **operator** (deve estar entre aspas duplas). `operators` suportados:<br>*eq* - igual<br>*ne* - diferente<br>*gt* - maior<br>*ge* - maior ou igual<br>*lt* - menor<br>*le* - menor ou igual<br>*like* - corresponde se contiver o padrão (diferencia maiúsculas de minúsculas)<br>*bitand* - AND bit a bit<br>*regexp* - correspondência sensível a maiúsculas/minúsculas da expressão regular fornecida em `pattern`<br>*iregexp* - correspondência insensível a maiúsculas/minúsculas da expressão regular fornecida em `pattern`<br>
-   **pattern** - o padrão requerido (argumentos de string devem estar entre aspas duplas); suportado se *operator* for especificado no terceiro parâmetro.

Comentários: 

-   O uso de **count()** com uma função foreach relacionada ao histórico (max_foreach, avg_foreach etc.) pode levar a implicações de desempenho, enquanto o uso de **exists_foreach()**, que funciona apenas com dados de configuração, não terá esse efeito.
-   Os parâmetros opcionais *operator* ou *pattern* não podem ser deixados vazios após uma vírgula, apenas totalmente omitidos.
-   Com *bitand* como terceiro parâmetro, o quarto parâmetro `pattern` pode ser especificado como dois números, separados por '/': **number_to_compare_with/mask**. count() calcula o "AND bit a bit" entre o valor e a *mask* e compara o resultado com *number_to_compare_with*. Se o resultado do "AND bit a bit" for igual a *number_to_compare_with*, o valor será contado.<br>Se *number_to_compare_with* e *mask* forem iguais, apenas a *mask* precisa ser especificada (sem '/').
-   Com *regexp* ou *iregexp* como terceiro parâmetro, o quarto parâmetro `pattern` pode ser uma expressão regular comum ou [global](/manual/regular_expressions#global-regular-expressions) (iniciada com '@'). No caso de expressões regulares globais, a diferenciação entre maiúsculas e minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência regexp, valores float sempre serão representados com 4 casas decimais após o '.'. Observe também que, para números grandes, a diferença entre a representação decimal (armazenada no banco de dados) e binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

```default
count(max_foreach(/*/net.if.in[*],1h)) #calculate the number of net.if.in items that received data in the last hour until now
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calculate the number of file systems with over 95% of disk space used
```

[comment]: # ({/4520f3ef-3c498650})

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

Calcula o φ-quantil a partir dos buckets de um histograma.<br>
Compatível com a [função foreach](/manual/config/triggers/expression/aggregate/foreach): *bucket_rate_foreach*.

Parâmetros: 

-   **quantile** - 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** - pares inseridos manualmente (>=2) de parâmetros ou a resposta de [bucket_rate_foreach](/manual/config/triggers/expression/aggregate/foreach).

Comentários:

-   Compatível apenas em itens calculados;
-   Corresponde funcionalmente a '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' do PromQL;
-   Retorna -1 se os valores do último bucket 'Infinity' (*"+inf"*) forem iguais a 0.

Exemplos:

```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]: # ({/3ba37963-f3ad7158})

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

A contagem de items existentes na configuração que correspondem aos critérios do filtro.<br>
Tipo de valor suportado: *Integer*.

Parâmetro: 

-   **item filter** - critérios para seleção de item, permite referenciar por grupo de hosts, host, chave de item e tags. Caracteres curinga são suportados. Veja [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax) para mais detalhes.<br>

Comentários:

-   Suportado apenas em items calculados;
-   Funciona como um alias para a função *count(exists_foreach(item_filter))*.

Exemplos:

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

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

[comment]: # ({356d9069-88a54099})
##### kurtosis(/host/key,(sec|#num)<:deslocamento de tempo>) {#kurtosis}

A "caudalidade" da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. Veja também: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis).<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
[Função foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

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

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

[comment]: # ({98a81503-bfb43a27})
##### mad(/host/key,(sec|#num)<:deslocamento de tempo>) {#mad}

O desvio absoluto mediano nos valores coletados dentro do período de avaliação definido. Veja também: [Desvio absoluto mediano](https://en.wikipedia.org/wiki/Median_absolute_deviation).<br>
Tipos de valores suportados: *Float*, *Integer*.<br>
Função [foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #trigger se o último valor de utilização de CPU for estatisticamente significativo
```

[comment]: # ({/98a81503-bfb43a27})

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

O valor mais alto de um item dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
[Funções foreach](/manual/config/triggers/expression/aggregate/foreach) suportadas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
max(/host/key,1h) - min(/host/key,1h) #calcula a diferença entre os valores máximo e mínimo na última hora até o momento (o delta dos valores)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #retorna o maior uso de disco entre todos os servidores Linux
```

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

[comment]: # ({cfe7b652-ffd1e499})
##### min(/host/key,(sec|#num)<:deslocamento de tempo>) {#min}

O menor valor de um item dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
Funções [foreach](/manual/config/triggers/expression/aggregate/foreach) suportadas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
max(/host/key,1h) - min(/host/key,1h) #calcula a diferença entre os valores máximo e mínimo na última hora até o momento (o delta dos valores)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #retorna o estado operacional mínimo de qualquer interface em todos os servidores Linux
```

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

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

A assimetria da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. Veja também: [Skewness](https://en.wikipedia.org/wiki/Skewness).<br>
Tipos de valores suportados: *Float*, *Integer*.<br>
Função [foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

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

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

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

O desvio padrão populacional nos valores coletados dentro do período de avaliação definido. Veja também: [Desvio padrão](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipos de valores suportados: *Float*, *Integer*.<br>
Função [foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #trigger se o uso de CPU oscilar muito (o desvio padrão populacional estiver acima de 7 em 10 minutos)
```

[comment]: # ({/7e32d94e-11c2ea25})

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

O desvio padrão amostral dos valores coletados dentro do período de avaliação definido. Veja também: [Desvio padrão](https://en.wikipedia.org/wiki/Standard_deviation).<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
Função [foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Pelo menos dois valores de dados são necessários para que esta função funcione.

Exemplos:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger se o uso de CPU oscilar muito (o desvio padrão amostral estiver acima de 7 em 10 minutos)
```

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

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

A soma dos valores coletados dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
Funções [foreach](/manual/config/triggers/expression/aggregate/foreach) suportadas: *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #calcula o tráfego total de rede de entrada para todos os servidores Linux
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #calcula o espaço total em disco para todos os servidores MySQL
sum(last_foreach(/*/net.dns[*,*,*])) #calcula o número total de verificações DNS bem-sucedidas
```

[comment]: # ({/89b5406f-0ecf79eb})

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

A soma dos quadrados nos valores coletados dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
[Função foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
sumofsquares(/host/calculated.net.if.rate,1m) #a soma dos quadrados da taxa de tráfego de rede (entrada vs saída)
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #a soma dos quadrados dos valores mais recentes de tráfego de rede de entrada em todos os servidores Linux
```

[comment]: # ({/907627c8-6f6556f2})

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

A variância populacional dos valores coletados dentro do período de avaliação definido. Veja também: [Variância](https://en.wikipedia.org/wiki/Variance).<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
Função [foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Exemplos:

```default
varpop(/host/system.cpu.util[,user],10m)>50 #trigger se o uso de CPU oscilar muito (a variância estiver acima de 50 ao longo de 10 minutos)
```

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

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

A variância amostral dos valores coletados dentro do período de avaliação definido. Veja também: [Variância](https://en.wikipedia.org/wiki/Variance).<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
[Função foreach](/manual/config/triggers/expression/aggregate/foreach) suportada: *last_foreach*.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Pelo menos dois valores de dados são necessários para que esta função funcione.

Exemplos:

```default
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger se o uso de CPU oscilar muito (a variância amostral estiver acima de 50 em 10 minutos)
```

[comment]: # ({/9c60c2c9-b1bc041c})

[comment]: # ({ba58f5e4-541616fc})
Veja [todas as funções suportadas](/manual/config/triggers/expression#functions).

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