1 Funções agregadas
Exceto quando indicado de outra forma, todas as funções listadas aqui são suportadas em:
As funções agregadas podem trabalhar com:
- histórico de items, por exemplo,
min(/host/key,1h) - funções foreach como
o único parâmetro, por exemplo,
min(last_foreach(/*/key))(apenas em itens calculados; não pode ser usado em triggers)
As funções são listadas sem informações adicionais. Clique na função para ver os detalhes completos.
| Função | Descrição |
|---|---|
| avg | O valor médio de um item dentro do período de avaliação definido. |
| bucket_percentile | Calcula o percentil a partir dos buckets de um histograma. |
| count | A contagem de valores em um array retornado por uma função foreach. |
| histogram_quantile | Calcula o φ-quantil a partir dos buckets de um histograma. |
| item_count | A contagem de itens existentes na configuração que correspondem aos critérios de filtro. |
| kurtosis | A "caudacidade" da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. |
| mad | O desvio absoluto da mediana nos valores coletados dentro do período de avaliação definido. |
| max | O maior valor de um item dentro do período de avaliação definido. |
| min | O menor valor de um item dentro do período de avaliação definido. |
| skewness | A assimetria da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. |
| stddevpop | O desvio padrão da população nos valores coletados dentro do período de avaliação definido. |
| stddevsamp | O desvio padrão da amostra nos valores coletados dentro do período de avaliação definido. |
| sum | A soma dos valores coletados dentro do período de avaliação definido. |
| sumofsquares | A soma dos quadrados nos valores coletados dentro do período de avaliação definido. |
| varpop | A variância da população dos valores coletados dentro do período de avaliação definido. |
| varsamp | A variância da amostra dos valores coletados dentro do período de avaliação definido. |
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 máximo em segundos (sufixos de tempo podem ser usados), ou
- #num - intervalo de avaliação 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 sobre como especificar o deslocamento de tempo.
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/keye(sec|#num)<:time shift>nunca devem ser entre aspas
avg(/host/key,(sec|#num)<:deslocamento de tempo>)
O valor médio de um item dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer.
Funções foreach suportadas: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parâmetros: veja parâmetros comuns.
O deslocamento de tempo é útil quando há necessidade de comparar o valor médio atual com o valor médio de algum momento no passado.
Exemplos:
avg(/host/key,1h) #o valor médio da última hora até agora
avg(/host/key,1h:now-1d) #o valor médio de uma hora, de 25 horas atrás até 24 horas atrás a partir de agora
avg(/host/key,#5) #o valor médio dos cinco valores mais recentes
avg(/host/key,#5:now-1d) #o valor médio dos cinco valores mais recentes, excluindo os valores recebidos nas últimas 24 horas
avg(/host/proc.num,5m)>300 #trigger se o número médio de processos nos últimos 5 minutos tiver ficado acima de 300
bucket_percentile(item filter,time period,percentage)
Calcula o percentil a partir dos buckets de um histograma.
Parâmetros:
- item filter - veja item filter;
- time period - veja time period;
- 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:
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
count(func_foreach(item filter,<time period>),<operator>,<pattern>)
A contagem de valores em um array retornado por uma função foreach.
Funções 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 para mais detalhes. Observe que count_foreach e bucket_rate_foreach suportam parâmetros adicionais.
- item filter - veja item filter;
- time period - veja time period;
- operator (deve estar entre aspas duplas).
operatorssuportados:
eq - igual
ne - diferente
gt - maior
ge - maior ou igual
lt - menor
le - menor ou igual
like - corresponde se contiver o padrão (diferencia maiúsculas de minúsculas)
bitand - AND bit a bit
regexp - correspondência sensível a maiúsculas/minúsculas da expressão regular fornecida empattern
iregexp - correspondência insensível a maiúsculas/minúsculas da expressão regular fornecida empattern - 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
patternpode 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.
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
patternpode ser uma expressão regular comum ou global (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:
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
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Calcula o φ-quantil a partir dos buckets de um histograma.
Compatível com a função foreach: bucket_rate_foreach.
Parâmetros:
- quantile - 0 ≤ φ ≤ 1;
- bucketN, valueN - pares inseridos manualmente (>=2) de parâmetros ou a resposta de bucket_rate_foreach.
Comentários:
- Compatível apenas em itens calculados;
- Corresponde funcionalmente a 'histogram_quantile' do PromQL;
- Retorna -1 se os valores do último bucket 'Infinity' ("+inf") forem iguais a 0.
Exemplos:
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))
item_count(item filter)
A contagem de items existentes na configuração que correspondem aos critérios do filtro.
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 para mais detalhes.
Comentários:
- Suportado apenas em items calculados;
- Funciona como um alias para a função count(exists_foreach(item_filter)).
Exemplos:
item_count(/*/agent.ping?[group="Host group 1"]) #calcula o número de hosts com o item agent.ping em "Host group 1"
kurtosis(/host/key,(sec|#num)<:deslocamento de tempo>)
A "caudalidade" da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. Veja também: Kurtosis.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
kurtosis(/host/system.cpu.util[,user],5m)>5 #trigger on sharp spikes of CPU utilization over 5 minutes
mad(/host/key,(sec|#num)<:deslocamento de tempo>)
O desvio absoluto mediano nos valores coletados dentro do período de avaliação definido. Veja também: Desvio absoluto mediano.
Tipos de valores suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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
max(/host/key,(sec|#num)<:time shift>)
O valor mais alto de um item dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer.
Funções foreach suportadas: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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
min(/host/key,(sec|#num)<:deslocamento de tempo>)
O menor valor de um item dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer.
Funções foreach suportadas: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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
skewness(/host/key,(sec|#num)<:time shift>)
A assimetria da distribuição de probabilidade nos valores coletados dentro do período de avaliação definido. Veja também: Skewness.
Tipos de valores suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
stddevpop(/host/key,(sec|#num)<:time shift>)
O desvio padrão populacional nos valores coletados dentro do período de avaliação definido. Veja também: Desvio padrão.
Tipos de valores suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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)
stddevsamp(/host/key,(sec|#num)<:time shift>)
O desvio padrão amostral dos valores coletados dentro do período de avaliação definido. Veja também: Desvio padrão.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Pelo menos dois valores de dados são necessários para que esta função funcione.
Exemplos:
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)
sum(/host/key,(sec|#num)<:time shift>)
A soma dos valores coletados dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer.
Funções foreach suportadas: avg_foreach, count_foreach, exists_foreach, last_foreach, max_foreach, min_foreach, sum_foreach.
Parâmetros: consulte parâmetros comuns.
Exemplos:
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #a soma dos valores mais recentes do tráfego de rede de entrada em todos os servidores Linux
sumofsquares(/host/key,(sec|#num)<:time shift>)
A soma dos quadrados nos valores coletados dentro do período de avaliação definido.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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
varpop(/host/key,(sec|#num)<:time shift>)
A variância populacional dos valores coletados dentro do período de avaliação definido. Veja também: Variância.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Exemplos:
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)
varsamp(/host/key,(sec|#num)<:time shift>)
A variância amostral dos valores coletados dentro do período de avaliação definido. Veja também: Variância.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
Pelo menos dois valores de dados são necessários para que esta função funcione.
Exemplos:
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)