Cálculos agregados

Visão geral

Cálculos agregados são um calculated item que permite coletar informações de vários itens pelo servidor Zabbix e, em seguida, calcular um agregado, dependendo da função agregada utilizada.

Apenas valores inteiros sem sinal e valores de ponto flutuante (tipo de informação) são suportados para itens de cálculo agregado.

Cálculos agregados não exigem nenhum agente em execução no host monitorado.

Sintaxe

Para recuperar agregados, você pode:

  • listar vários itens para agregação:
aggregate_function(function(/host/key,parameter),function(/host2/key2,parameter),...)

Observe que a function aqui deve ser uma função de histórico/tendência.

  • use a função foreach como o único parâmetro e seu filtro de item para selecionar os itens necessários:
aggregate_function(foreach_function(/host/key?[group="host group"],timeperiod))

A função agregada é uma das funções aggregate functions suportadas: avg, max, min, sum, etc.

Um função foreach (por exemplo, avg_foreach, count_foreach, etc.) retorna um valor agregado para cada item selecionado. Os itens são selecionados usando o filtro de item (/host/key?[group="host group"]), a partir do histórico de itens.

Se alguns dos itens não tiverem dados para o período solicitado, eles serão ignorados no cálculo. Se nenhum item tiver dados, a função retornará um erro.

Para mais detalhes, consulte foreach functions.

Se o resultado agregado for um valor de ponto flutuante, ele será truncado para um inteiro se o tipo de informação do item agregado for Numeric (sem sinal).

Um cálculo agregado pode se tornar não suportado se:

  • nenhum dos itens referenciados for encontrado (o que pode ocorrer se a chave do item estiver incorreta, nenhum item existir ou todos os grupos incluídos estiverem incorretos)
  • não houver dados para calcular uma função

Exemplos de uso

Exemplos de chaves para cálculos agregados.

Exemplo 1

Espaço em disco total do grupo de host 'MySQL Servers'.

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
Exemplo 2

Soma dos valores mais recentes de todos os itens correspondentes a net.if.in[*] no host.

sum(last_foreach(/host/net.if.in[*]))
Exemplo 3

Média de carga de processador (load) do grupo de host 'MySQL Servers'.

avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))
Exemplo 4

Média de 5 minutos do número de consultas por segundo para grupo de host 'MySQL Servers'.

avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
Exemplo 5

Média de carga de CPU (load) de todos os hosts em múltiplos grupos de host que possuem etiquetas específicas.

avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Exemplo 6

Cálculo usado nas somas dos valores mais recentes de um grupo de host inteiro.

sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 
Exemplo 7

O número total de itens não suportados no grupo de host 'Zabbix servers'.

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))

##### Exemplos de sintaxe correta/incorreta

Expressões (incluindo chamadas de funções) não podem ser usadas como parâmetros de histórico, tendência ou foreach function. No entanto, essas funções podem ser usadas em outros parâmetros de função (não históricos).

Expressão Exemplo
Válido avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)
max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))
Inválido sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Observe que, em uma expressão como:

sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))

não é possível garantir que ambas as partes da equação sempre terão o mesmo conjunto de valores. Enquanto uma parte da expressão é avaliada, um novo valor para o período solicitado pode chegar, fazendo com que a outra parte da expressão tenha um conjunto de valores diferente.