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/key e (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:

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). operators suportados:
    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 em pattern
    iregexp - corresponde, sem sensibilidade a maiúsculas e minúsculas, à expressão regular fornecida em pattern
  • 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 pattern pode 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 pattern pode 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)

Veja todas as funções suportadas.