[comment]: # translation:outdated

[comment]: # ({b8c65ad1-b8c65ad1})
# 7 Itens calculados

[comment]: # ({/b8c65ad1-b8c65ad1})

[comment]: # ({43ebe58c-43ebe58c})
#### Visão geral

Com itens calculados, é possível criar cálculos com base nos valores de outros itens.

Os cálculos podem utilizar:

-   valores únicos de itens individuais
-   filtros complexos para selecionar múltiplos itens para agregações (consulte
    [aggregate
    calculations](/manual/config/items/itemtypes/calculated/aggregate)
    para mais detalhes)

Assim, itens calculados são uma forma de criar fontes de dados virtuais. Todos os cálculos são realizados apenas pelo servidor do Zabbix. Os valores são periodicamente calculados com base na expressão aritmética utilizada.

Os dados resultantes são armazenados no banco de dados do Zabbix como qualquer outro item; tanto os valores históricos quanto as tendências são armazenados, e gráficos podem ser gerados.

::: noteclassic
Se o resultado do cálculo for um valor float, ele será arredondado para um inteiro se o tipo de informação do item calculado for *Numérico (sem sinal)*.
:::

Os itens calculados compartilham sua sintaxe com
[expressions](/manual/config/triggers/expression) de trigger. A comparação com strings é permitida nos itens calculados. Itens calculados podem ser referenciados por macros ou outras entidades da mesma forma que qualquer outro tipo de item.

Para usar itens calculados, escolha o tipo de item **Calculado**.

[comment]: # ({/43ebe58c-43ebe58c})

[comment]: # ({a60a7526-ddc35784})
  
#### Campos configuráveis

A **chave** é um identificador único de item (por host). Você pode criar qualquer nome de chave usando símbolos suportados.

A definição de cálculo deve ser inserida no campo **Fórmula**. Não há uma conexão direta entre a fórmula e a chave, ou seja, os parâmetros da chave não são utilizados na fórmula de nenhuma forma.

A sintaxe de uma fórmula simples é:

    function(/host/key,<parameter1>,<parameter2>,...)

onde:

|   |   |
|--|--------|
|*função*|Uma das funções suportadas [supported functions](/manual/appendix/functions): last, min, max, avg, count, etc|
|*host*|Host do item utilizado para o cálculo.<br>O host atual pode ser omitido (por exemplo, como em `function(//key,parameter,...)`).|
|*chave*|Chave do item utilizado para o cálculo.|
|*parâmetros (s)*|Parâmetros da função, se necessário.|

::: noteimportant
Macros de usuários [User macros](/manual/config/macros/user_macros)
na fórmula serão expandidas caso sejam usadas para referenciar um parâmetro de função, parâmetro de filtro de item ou uma constante. As macros do usuário NÃO serão expandidas ao referenciar uma função, nome de host, chave do item, parâmetro de chave do item ou operador.
:::

Uma fórmula mais complexa pode usar uma combinação de funções, operadores e parênteses. Você pode usar todas as funções e
[operators](/manual/config/triggers/expression#operators)  operadores suportados em expressões de
trigger. A lógica e a precedência dos operadores são exatamente as mesmas.

Diferente das expressões de trigger, o Zabbix processa itens calculados de acordo com o intervalo de atualização do item, e não ao receber um novo valor.

Todos os itens referenciados por funções de histórico na fórmula do item calculado devem existir e estar coletando dados. Além disso, se você alterar a chave de um item referenciado, deverá atualizar manualmente qualquer fórmula que use essa chave.

Um item calculado pode se tornar não suportado em vários casos:

-   item (s)  referenciado (s)
    -   não encontrado
    -   está desativado
    -   pertence a um host desativado
    -   não é suportado (exceto com a função nodata() e operadores
        [operators](/manual/config/triggers/expression#operators) com
        valores desconhecidos)
-   sem data para calcular uma função
-   divisão por zero
-   sintaxe incorreta utilizada

[comment]: # ({/a60a7526-ddc35784})

[comment]: # ({82c22f4f-82c22f4f})
#### Exemplos de uso

[comment]: # ({/82c22f4f-82c22f4f})

[comment]: # ({426ab71a-426ab71a})
##### Exemplo 1

Cálculo de porcentagem de espaço livre em disco em '/'.

Uso da função **last**:

    100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])

O Zabbix obterá os valores mais recentes para os espaços livre e total
do disco e calculará a porcentagem de acordo com a fórmula dada.

[comment]: # ({/426ab71a-426ab71a})

[comment]: # ({77bcdfd9-77bcdfd9})
##### Exemplo 2

Cálculo da média de 10 minutos do número de valores processados pelo
Zabbix.

Uso da função **avg**:

    avg(/Zabbix Server/zabbix[wcache,values],10m)

Note que o uso extensivo de itens calculados com longos períodos de tempo
pode afetar a performance do Zabbix Server.

[comment]: # ({/77bcdfd9-77bcdfd9})

[comment]: # ({5d068733-5d068733})
##### Exemplo 3

Cálculo de banda de rede total em eth0.

Soma de duas funções:

    last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])

[comment]: # ({/5d068733-5d068733})

[comment]: # ({f8b53af1-f8b53af1})
##### Exemplo 4

Calculando a porcentagem do tráfego de entrada.

Expressão mais complexa:

    100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

Consulte também: [Exemplos de cálculos agregados](/manual/config/items/itemtypes/calculated/aggregate#usage_examples)

[comment]: # ({/f8b53af1-f8b53af1})
