[comment]: # translation:outdated

[comment]: # attributes: notoc

[comment]: # (terms: forecast, timeleft )

[comment]: # ({2bf301d5-2e2a1a06})
# 8 Funções preditivas

Todas as funções listadas aqui são suportadas em:

-   [Expressões de trigger](/manual/config/triggers/expression)
-   [Fórmulas de item calculado](/manual/config/items/itemtypes/calculated)
-   [Macros de expressão](/manual/config/macros/expression_macros)

As funções são listadas sem informações adicionais. Clique na função para ver todos os detalhes.

|Função|Descrição|
|--|--------|
|[forecast](#forecast)|O valor futuro, máximo, mínimo, delta ou média do item.|
|[timeleft](#timeleft)|O tempo em segundos necessário para que um item atinja o limite especificado.|

[comment]: # ({/2bf301d5-2e2a1a06})

[comment]: # ({645b8a56-4d343eb8})
##### 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)<:time shift>` é um parâmetro comum para as funções que referenciam o histórico do item do host, onde:
    -   **sec** - [período de avaliação](/manual/config/triggers#evaluation-period) máximo em segundos (sufixos de [tempo](/manual/appendix/suffixes) podem ser usados), ou
    -   **#num** - [intervalo de avaliação](/manual/config/triggers#evaluation-period) máximo nos últimos valores coletados (se precedido por um símbolo de hash)
    -   **time shift** (opcional) permite mover o ponto de avaliação para trás no tempo. Veja [mais detalhes](/manual/config/triggers/expression#time-shift) sobre como especificar o deslocamento de tempo.

[comment]: # ({/645b8a56-4d343eb8})

[comment]: # ({c645f0e4-f3b63bc1})
### 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 uma 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)<:deslocamento de tempo>` nunca devem ser
    colocados entre aspas

[comment]: # ({/c645f0e4-f3b63bc1})

[comment]: # ({8a873b31-e4452b37})
##### forecast(/host/key,(sec|#num)<:time shift>,time,<fit>,<mode>) {#forecast}

O valor futuro, máximo, mínimo, delta ou média do item.<br>
Tipos de valor suportados: *Float*, *Integer*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters);<br>
-   **time** - o horizonte de previsão em segundos (sufixos de tempo podem ser usados); valores negativos são suportados;<br>
-   **fit** (opcional; deve estar entre aspas duplas) - a função usada para ajustar os dados históricos. Ajustes suportados:<br>*linear* - função linear (padrão)<br>*polynomialN* - polinomial de grau N (1 <= N <= 6)<br>*exponential* - função exponencial<br>*logarithmic* - função logarítmica<br>*power* - função de potência<br>Observe que *polynomial1* é equivalente a *linear*;
-   **mode** (opcional; deve estar entre aspas duplas) - a saída desejada. Modos suportados:<br>*value* - valor (padrão)<br>*max* - máximo<br>*min* - mínimo<br>*delta* - *max*-*min*<br>*avg* - média<br>Observe que *value* estima o valor do item no momento `agora` + `time`; *max*, *min*, *delta* e *avg* investigam a estimativa do valor do item no intervalo entre `agora` e `agora` + `time`.

Comentários:

-   Se o valor a ser retornado for maior que 1.7976931348623158E+308 ou menor que -1.7976931348623158E+308, o valor de retorno é limitado a 1.7976931348623158E+308 ou -1.7976931348623158E+308, respectivamente;
-   Torna-se não suportado apenas se usado incorretamente na expressão (tipo de item errado, parâmetros inválidos), caso contrário retorna -1 em caso de erros;
-   Veja também informações adicionais sobre [funções de trigger preditivas](/manual/config/triggers/prediction).

Exemplos:

    forecast(/host/key,#10,1h) #prevê o valor do item em uma hora com base nos últimos 10 valores
    forecast(/host/key,1h,30m) #prevê o valor do item em 30 minutos com base nos dados da última hora
    forecast(/host/key,1h:now-1d,12h) #prevê o valor do item em 12 horas com base em uma hora de dados de um dia atrás
    forecast(/host/key,1h,10m,"exponential") #prevê o valor do item em 10 minutos com base nos dados da última hora e função exponencial
    forecast(/host/key,1h,2h,"polynomial3","max") #prevê o valor máximo que o item pode atingir nas próximas duas horas com base nos dados da última hora e polinômio cúbico (terceiro grau)
    forecast(/host/key,#2,-20m) #estima o valor do item 20 minutos atrás com base nos dois últimos valores (isso pode ser mais preciso do que usar last(), especialmente se o item for atualizado raramente, por exemplo, uma vez por hora)

[comment]: # ({/8a873b31-e4452b37})

[comment]: # ({834aceba-9b065620})
##### timeleft(/host/key,(sec|#num)<:time shift>,threshold,<fit>) {#timeleft}

O tempo em segundos necessário para um item atingir o limite especificado.<br>
Tipos de valor suportados: *Float*, *Integer*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters);<br>
-   **threshold** - o valor a ser atingido ([sufixos de unidade](/manual/appendix/suffixes) podem ser usados);
-   **fit** (opcional; deve estar entre aspas duplas) - veja [forecast()](#forecast).

Comentários:

-   Se o valor a ser retornado for maior que 1.7976931348623158E+308, o valor de retorno é limitado a 1.7976931348623158E+308;
-   Retorna 1.7976931348623158E+308 se o limite não puder ser atingido;
-   Torna-se não suportado apenas se usado incorretamente na expressão (tipo de item errado, parâmetros inválidos), caso contrário retorna -1 em caso de erros;
-   Veja também informações adicionais sobre [funções de trigger preditivas](/manual/config/triggers/prediction).

Exemplos:

    timeleft(/host/key,#10,0) #o tempo até o valor do item atingir zero com base nos últimos 10 valores
    timeleft(/host/key,1h,100) #o tempo até o valor do item atingir 100 com base nos dados da última hora
    timeleft(/host/key,1h:now-1d,100) #o tempo até o valor do item atingir 100 com base em uma hora de um dia atrás
    timeleft(/host/key,1h,200,"polynomial2") #o tempo até o valor do item atingir 200 com base nos dados da última hora e na suposição de que o item se comporta como um polinômio quadrático (de segundo grau)

[comment]: # ({/834aceba-9b065620})

[comment]: # ({ba58f5e4-9958c480})
Veja [todas as funções suportadas](/manual/config/triggers/expression#functions).

[comment]: # ({/ba58f5e4-9958c480})
