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

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). 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 (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 em pattern
    iregexp - correspondência insensível a maiúsculas/minúsculas da expressão regular fornecida em pattern
  • 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.
    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 (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)

Veja todas as funções suportadas.