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 populacional dos valores coletados dentro do período de avaliação definido. |
| varsamp | A variância amostral 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 referenciam o histórico do item do host(sec|#num)<:deslocamento de tempo>é um parâmetro comum para as funções que referenciam o 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 colocados entre aspas
avg(/host/key,(sec|#num)<:time shift>)
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.
Time shift é útil quando há necessidade de comparar o valor médio atual com o valor médio de algum tempo atrás.
Exemplos:
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 entre 25 horas atrás e 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 sido superior a 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 no 95º percentil ao longo de 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 detalhes. Observe que count_foreach e bucket_rate_foreach suportam parâmetros adicionais.
- item filter - veja sintaxe do filtro de item;
- time period - veja período de tempo;
- 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 (sensível a maiúsculas e minúsculas)
bitand - AND bit a bit
regexp - corresponde, com sensibilidade a maiúsculas e minúsculas, à expressão regular fornecida empattern
iregexp - corresponde, sem sensibilidade a maiúsculas e minúsculas, à expressão regular fornecida empattern - pattern - o padrão necessário (argumentos de string devem estar entre aspas duplas); suportado se operator for especificado no terceiro parâmetro.
Comentários:
- Usar count() com uma função foreach relacionada ao histórico (max_foreach, avg_foreach, etc.) pode gerar implicações de desempenho, enquanto usar exists_foreach(), que funciona apenas com dados de configuração, não terá esse efeito.
- Parâmetros opcionais operator ou pattern não podem ser deixados em branco após uma vírgula; eles devem ser 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" do valor com 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 é 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 (começando com '@'). No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações da expressão regular global. Para fins de correspondência de regexp, valores float sempre serão representados com 4 dígitos decimais após '.'. Observe também que, para números grandes, a diferença entre a representação decimal (armazenada no banco de dados) e a binária (usada pelo server Zabbix) pode afetar o 4º dígito decimal.
Exemplos:
count(max_foreach(/*/net.if.in[*],1h)) #calcula o número de items net.if.in que receberam dados na última hora até agora
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calcula o número de sistemas de arquivos com mais de 95% do espaço em disco usado
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)
Calcula o φ-quantil a partir dos buckets de um histograma.
Função foreach function suportada: 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:
- Suportada 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 items, permite referência por grupo de hosts, host, chave do item e tags. Wildcards 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)<:time shift>)
A "cauda" 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)<:time shift>)
O desvio absoluto mediano nos valores coletados dentro do período de avaliação definido. Veja também: Desvio absoluto mediano.
Tipos de valor 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 if the last CPU utilization value is statistically significant
max(/host/key,(sec|#num)<:time shift>)
O maior 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é agora (o delta dos valores)
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #retorna o maior uso de disco em todos os servidores Linux
min(/host/key,(sec|#num)<:time shift>)
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é agora (o delta dos valores)
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #retorna o menor estado operacional para qualquer interface em todos os Linux servers
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 valor 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 valor 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 da CPU oscilar bastante (o desvio padrão populacional é maior que 7 ao longo de 10 minutos)
stddevsamp(/host/key,(sec|#num)<:time shift>)
O desvio padrão amostral nos 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.
São necessários pelo menos dois valores de dados para que esta função funcione.
Exemplos:
stddevsamp(/host/system.cpu.util[,user],10m)>7 #trigger se o uso da CPU oscilar muito (o desvio padrão amostral é maior que 7 ao longo de 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: veja parâmetros comuns.
Exemplos:
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #calcula o tráfego de rede de entrada total 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
sumofsquares(/host/key,(sec|#num)<:time shift>)
A soma dos quadrados dos 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 para a 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: Variance.
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 if CPU usage fluctuates heavily (variance is above 50 over 10 minutes)
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: Variance.
Tipos de valor suportados: Float, Integer.
Função foreach suportada: last_foreach.
Parâmetros: veja parâmetros comuns.
São necessários pelo menos dois valores de dados para que esta função funcione.
Exemplos:
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger se o uso da CPU oscilar muito (a variância amostral é superior a 50 em 10 minutos)