Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

Cálculos agregados

Visão geral

Em cálculos agregados a informação de vários itens pode ser coletada pelo Zabbix Server (pela realização de consultas diretas ao banco de dados) para calcular uma agregação, dependendo da função agregada utilizada.

Cálculos agregados não requerem qualquer agente em execução no host sendo monitorado.

Para definir cálculos agregados, selecione o tipo de item Calculado.

Sintaxe

Agregados podem ser recuperados trabalhando com:

  • histórico de itens:
aggregate_function(function(/host/item,parameter),function(/host2/item2,parameter),...)
aggregate_function(foreach_function(/*/key?[group="host group"],timeperiod))

onde:

  • aggregate_function é uma das funções agregadas suportadas: avg, max, min, sum, etc.
  • foreach_function é uma das funções foreach suportadas: avg_foreach, count_foreach, etc.

Funções foreach usam um filtro de item, para operar com o histórico de múltiplos itens, e retornam um array de valores - um para cada item.

Se o agregado resultar em um valor numérico flutuante (float) ele será aparado para um inteiro se o tipo de informação do item é Numérico (unsigned).

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

  • nenhum dos itens referenciados foi encontrado (o que pode ocorrer se a chave do item está incorreta, nenhum dos itens existe ou todos os grupos incluídos estão incorretos)
  • nenhum dado 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"]))
Examples of correct/incorrect syntax

Expressions (including function calls) cannot be used as history, trend, or foreach function parameters. However, those functions themselves can be used in other (non-historical) function parameters.

Expression Example
Valid 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)))
Invalid sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

Note that in an expression like:

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

it cannot be guaranteed that both parts of the equation will always have the same set of values. While one part of the expression is evaluated, a new value for the requested period may arrive and then the other part of the expression will have a different set of values.