# - \#1 Funções de trigger suportadas

Todas as funções de trigger suportadas em suas
[expressões](/pt/manual/config/triggers/expression) são aqui listadas.

|FUNÇÃO|<|<|<|
|--------|-|-|-|
|<|**Descrição**|**Parâmetros**|**Comentários**|
|**abschange**|<|<|<|
|<|A diferença absoluta entre o último valor e seu antecessor.|<|Tipo de valores suportados: float, int, str, text, log<br><br>Por exemplo:<br>(penúltimo valor/último valor=diferença)<br>1/5=4<br>3/1=2<br>0/-2.5=2.5<br>Observe que enquanto a função `abschange` retorna sempre valores positivos, a função `change` retornará valores positivos ou negativos.<br>Para textos retorna:<br>0 - valores iguais<br>1 - valores diferentes|
|**avg** (sec\|\#num,<time\_shift>)|<|<|<|
|<|O valor médio de um item em um determinado período analisado.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#"). Ambas as análises começam do mais recente para o mais antigo.<br>**time\_shift** (opcional) - o ponto inicial de análise é movido uma quantidade de segundos atrás no tempo.|Tipos de valores suportados: float, int<br><br>Exemplos:<br>=> avg(\#5) → valor médio dos últimos cinco valores<br>=> avg(1h) → valor médio da última hora<br>=> avg(1h,1d) → valor médio da última hora, começando a analisar um dia antes.<br><br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2. É muito útil quando se precisa comparar a média atual com a média de algum momento no passado.|
|**band** (sec\|\#num,mask,<time\_shift>)|<|<|<|
|<|Valor da "verificação AND bit a bit" de um item e máscara.|**sec** (ignorado) ou **\#num** - o eNésimo valor mais recente<br>**mask** (obrigatório) - inteiro de 64-bit sem sinal (0 - 18446744073709551615)<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: int<br><br>Observe que `#num` funciona diferentemente das demais funções (consulte last()).<br><br>Emboara a comparação seja feita bit a bit, todos os valores devem ser informados e serão retornados no formato decimal. Por exemplo, a verificação do 3.o. bit é feita ao se comparar com o 4.o., não 100.<br><br>Exemplos:<br>=> band(,12)=8 ou band(,12)=4 → 3rd ou 4th bit definido, mas não ambos ao mesmo tempo<br>=> band(,20)=16 → 3rd bit não definido e 5th bit definido.<br><br>Esta função é suportada desde o Zabbix 2.2.0.|
|**change**|<|<|<|
|<|A diferença entre o último valor e seu antecessor.|<|Tipos de valores suportados: float, int, str, text, log<br><br>Por exemplo:<br>(penúltimo valor/último valor=modificação)<br>1/5=+4<br>3/1=-2<br>0/-2.5=-2.5<br>Observe que enquanto a função `abschange` retorna sempre valores positivos, a função `change` retornará valores positivos ou negativos.<br>Para strings retorna:<br>0 - valores iguais<br>1 - valores diferentes.|
|**count** (sec\|\#num,<pattern>,<operator>,<time\_shift>)|<|<|<|
|<|Quantidade de valores em determinado período analisado.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**pattern** (opcional) - padrão desejado (itens inteiros - valor exato; itens numéricos (ponto flutuante) - com a margem de erro 0.000001)<br>**operator** (opcional)<br><br>Operadores suportados:<br>*eq* - igual<br>*ne* - diferente<br>*gt* - maior<br>*ge* - maior ou igual<br>*lt* - menor<br>*le* - menor ou igual<br>*like* - confere se contiver o valor (sensível ao caso)<br>*band* - verificação bit a bit AND (suportado desde o Zabbix 2.2.0).<br><br>Observe que os operadores:<br>*eq* (padrão), *ne*, *gt*, *ge*, *lt*, *le*, *band* são suportados para itens inteiros<br>*eq* (padrão), *ne*, *gt*, *ge*, *lt*, *le* são suportados para itens numéricos<br>*like* (padrão), *eq*, *ne* são suportados para itens string, texto e log<br><br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int, str, text, log<br><br>Com *band* como o terceiro parâmetro, o segundo deverá possuir dois números separados pelo caractere '/': **número\_a\_comparar/máscara**. A função `count()` calcula a "verificação bit a bit AND" do valor com sua *máscara* e compara o resultado com *número\_a\_comparar*. Se o resultado da "verificação bit a bit AND" for igual ao *número\_a\_comparar*, o valor é contado.<br>Se o *número\_a\_comparar* e a *máscara* forem iguais, apenas a *máscara* precisa ser definida (sem '/').<br><br>Exemplos:<br>=> count(10m) → quantidade de valores nos últimos 10 minutos<br>=> count(10m,12) → quantidade de valores nos últimos 10 minutos que são iguais a '12'<br>=> count(10m,12,"gt") → quantidade de valores nos últimos 10 minutos que são maiores que '12'<br>=> count(\#10,12,"gt") → entre os 10 últimos valores, a quantidade que é maior que '12'<br>=> count(10m,12,"gt",1d) → quantidade de valores nos últimos 10 minutos, começando a análise 24 horas atrás, que são maiores que '12'<br>=> count(10m,6/7,"band") → quantidade de valores nos últimos 10 minutos tendo '110' (em binário) nos 3 bits mais significantes.<br>=> count(10m,,,1d) → quantidade de valores nos últimos 10 minutos, começando a análise 24 horas atrás<br><br>O parâmetro `#num` é suportado desde o Zabbix 1.6.1.<br>O parâmetro `time_shift` e os operadores de texto são suportados desde o Zabbix 1.8.2.|
|**date**|<|<|<|
|<|Data atual no formato `YYYYMMDD`.|<|Tipos de valores suportados: *qualquer tipo*<br><br>Exemplo de valor retornado: 20150731|
|**dayofmonth**|<|<|<|
|<|Dia do mês no intervalo de 1 a 31.|<|Tipos de valores suportados: *qualquer tipo*<br><br>Esta função é suportada desde o Zabbix 1.8.5.|
|**dayofweek**|<|<|<|
|<|Dia da semana no intervalo de 1 a 7 (Segunda - 1, Domingo - 7).|<|Tipos de valores suportados: *qualquer tipo*|
|**delta** (sec\|\#num,<time\_shift>)|<|<|<|
|<|Diferença entre o maior e o menor valor no período de análise ('max()' menos 'min()').|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int<br><br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2.|
|**diff**|<|<|<|
|<|Verifica se o valor atual e seu predecessor são diferentes.|<|Tipos de valores suportados: float, int, str, text, log<br><br>Retorna:<br>1 - o último valor e o penúltimo são diferentes<br>0 - são iguais|
|**forecast** (sec\|\#num,<time\_shift>,time,<fit>,<mode>)|<|<|<|
|<|Future value, max, min, delta ou avg of the item.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()<br>**time** - horizonte de previsão em segundos<br>**fit** (opcional) - função usada para ajustar com o histórico de dados<br><br>Ajustes suportados:<br>*linear* - função linear<br>*polynomialN* - polinomial de grau N (1 <= N <= 6)<br>*exponential* - função expotencial<br>*logarithmic* - função logarítmica<br>*power* - função de força<br><br>Observe que:<br>*linear* é o padrão, *polynomial1* é equivalente a *linear*<br><br>**mode** (opcional) - saída exigida<br><br>Modos suportados:<br>*value* - valor (padrão)<br>*max* - máximo<br>*min* - mínimo<br>*delta* - *max*-*min*<br>*avg* - média<br><br>Observe que:<br>*value* estima o valor do item no momento `now` + `time`<br>*max*, *min*, *delta* e *avg* investiga o valor do item para estimar no intervalo `now` e `now` + `time`|Tipos de valores suportados: float, int<br><br>Se o valor retornado é maior que 999999999999.9999 ou menor que -999999999999.9999, o valor será limitado a 999999999999.9999 ou -999999999999.9999 respectivamente.<br><br>Se tornará `não suportada` somente se for usada errada na expressão (tipo errado de item, parâmetros inválidos), qualquer outra forma retornará -1 em caso de erro.<br><br>Exemplos:<br>=> forecast(\#10,,1h) → previsão do item após uma hora, analisando os últimos 10 valores<br>=> forecast(1h,,30m) → previsão do item após 30 minutos, analisando os dados da última hora<br>=> forecast(1h,1d,12h) → previsão do item após 12 horas baseado em uma hora de 1 dia atrás<br>=> forecast(1h,,10m,exponential) → previsão do valor do item após 10 minutos baseado nos dados da última hora em função expotencial<br>=> forecast(1h,,2h,polynomial3,max) → previsão se o valor máximo do item pode ser alcançado nas próximas 2 horas baseado nos dados da última hora e polinômio cúbico (terceiro grau)<br><br>Esta função é suportada desde o Zabbix 3.0.0.<br>Consulte informações adicionais em [funções preditivas de trigger](/pt/manual/config/triggers/prediction).|
|**fuzzytime** (sec)|<|<|<|
|<|Verifica se o horário local do dispositivo monitorado está sincronizado com o horário do Zabbix Server.|**sec** - segundos|Tipos de valores suportados: float, int<br><br>Retorna: '1' - o horário local do dispositivo não difere mais que N segundos, 0 - outro caso. Normalmente utilizado com `system.localtime` para verificar se o horário local está sincronizado com o horário do Zabbix Server.|
|**iregexp** (pattern,<sec\|\#num>)|<|<|<|
|<|Esta função é uma versão análoga da função `regexp()`, mas sem ser sensível ao caso.|Consulte regexp()|Tipos de valores suportados: str, log, text|
|**last** (sec\|\#num,<time\_shift>)|<|<|<|
|<|O último valor.|**sec** (ignorado) ou **\#num** - o eNésimo valor mais recente<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int, str, text, log<br><br>Observe que o parâmetro `#num` funciona diferente das demais funções.<br>Por exemplo:<br>`last()` é o mesmo que `last(#1)`<br>`last(#3)` - terceiro valor mais recente (*não* os três últimos valores)<br><br>O Zabbix não garante a ordem exata dos valores se existirem dois ou mais valores com o mesmo segundo no histórico.<br><br>O parâmetro `#num` é suportado desde o Zabbix 1.6.2.<br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2.|
|**logeventid** (padrão)|<|<|<|
|<|Verifica se o ID de evento da última entrada de log combina com uma expressão regular.|**pattern** - expressão regular descrevendo o padrão desejado, seguindo o padrão [POSIX estendido](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions) .|Tipos de valores suportados: log<br><br>Retorna:<br>0 - não encontrado<br>1 - encontrado<br><br>Esta função é suportada desde o Zabbix 1.8.5.|
|**logseverity**|<|<|<|
|<|Severidade da última entrada do log.|<|Tipos de valores suportados: log<br><br>Retorna:<br>0 - severidade padrão<br>N - severidade (inteiro, útil para logs de eventos no Windows: 1 - Informação, 2 - Aviso, 4 - Erro, 7 - Falha na auditoria, 8 - Auditoria com sucesso, 9 - Crítico, 10 - depuração).<br>O Zabbix recupera a severidade do campo **Information** no log de eventos do Windows.|
|**logsource** (pattern)|<|<|<|
|<|Verfifica se a fonte do log da última entrada combina com determinado padrão.|**pattern** - texto necessário|Tipos de valores suportados: log<br><br>Retorna:<br>0 - não confere<br>1 - confere<br>Normalmente utilizado para o log de eventos do Windows. Exemplo, logsource("VMware Server").|
|**max** (sec\|\#num,<time\_shift>)|<|<|<|
|<|Maior valor de um item em determinado período de análise.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int<br><br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2.|
|**min** (sec\|\#num,<time\_shift>)|<|<|<|
|<|Menor valor de um item em determinado período de análise.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int<br><br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2.|
|**nodata** (sec)|<|<|<|
|<|Verifica se não foram recebidos dados nos últimos N segundos.|**sec** - período de análise em segundos. O período não pode ser menor que 30 segundos.|Tipos de valores suportados: *qualquer tipo*<br><br>Retorna:<br>1 - se não foi recebido nenhum dado durante o período definido<br>0 - outro caso<br><br>Observe que esta função irá retornar um erro se, durante o período definido em **sec**:<br>- não tiver dados, mas o servidor Zabbix tiver sido reiniciado<br>- não tiver dados e um período de manutenção tiver sido concluído<br>- não tiver dados e o item tiver sido adicionado ou reativado|
|**now**|<|<|<|
|<|Quantidade de segundos desde `Epoch` (00:00:00 UTC, 1 de Janeiro de 1970).|<|Tipos de valores suportados: *qualquer tipo*|
|**percentile** (sec\|\#num,<time\_shift>,percentage)|<|<|<|
|<|P-th percentil de um período, onde P (percentual) é definido pelo terceiro parâmetro.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()<br>**percentage** - um número em ponto flutuante entre 0 e 100 (inclusive) com até 4 dígitos na parte decimal|Tipos de valores suportados: float, int<br><br>Esta função é suportada desde o Zabbix 3.0.0.|
|**prev**|<|<|<|
|<|Valor anterior.|<|Tipos de valores suportados: float, int, str, text, log<br><br>Retorna o mesmo que last(\#2).|
|**regexp** (pattern,<sec\|\#num>)|<|<|<|
|<|Verifica se o último (mas recente) valor confere com determinada expressão regular.|**pattern** - expressão regular, seguindo o padrão [POSIX estendido](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions).<br>**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#"). Nestes casos mais de um valor poderá ser analisado.|Tipos de valores suportados: str, text, log<br><br>Retorna:<br>1 - encontrado<br>0 - outro caso<br><br>Esta função é sensível ao caso.|
|**str** (pattern,<sec\|\#num>)|<|<|<|
|<|Procura um texto no último (mais recente) valor.|**pattern** - string desejada<br>**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#"). Nestes casos mais de um valor poderá ser analisado.|Tipos de valores suportados: str, text, log<br><br>Retorna:<br>1 - encontrado<br>0 - outro caso<br><br>Esta funç\]ap é sensível ao caso.|
|**strlen** (sec\|\#num,<time\_shift>)|<|<|<|
|<|Tamanho do último valor (mais recente) em caracteres (não bytes).|**sec** (ignorado) ou **\#num** - o eNésimo valor mais recente<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: str, text, log<br><br>Observe que o parâmetro `#num` aqui funciona de forma diferente de outras funções.<br><br>Exemplos:<br>=> `strlen()` é o mesmo que `strlen(#1)` → tamanho do último valor<br>=> strlen(\#3) → tamanho do terceiro valor mais recente<br>=> strlen(,1d) → tamanho do valor mais recente de um dia atrás.<br><br>Esta função é suportada desde o Zabbix 1.8.4.|
|**sum** (sec\|\#num,<time\_shift>)|<|<|<|
|<|Total dos valores coletados em determinado período de análise.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()|Tipos de valores suportados: float, int<br><br>O parâmetro `time_shift` é suportado desde o Zabbix 1.8.2.|
|**time**|<|<|<|
|<|Hora atual no formato `HHMMSS`.|<|Tipos de valores suportados: *any*<br><br>Exemplo de valor retornado: 123055|
|**timeleft (sec\|\#num,<time\_shift>,threshold,<fit>)**|<|<|<|
|<|Tempo necessário em segundos para um item alcançar determinado limite.|**sec** ou **\#num** - o período de análise pode ser em segundos ou em quantidade de valores (neste caso o número é precedido pelo caractere "\#")<br>**time\_shift** (opcional) - consulte avg()<br>**threshold** - valor a alcançar<br>**fit** (opcional) - veja forecast()|Tipos de valores suportados: float, int<br><br>Se o valor retornado for maior que 999999999999.9999, será reduzido a 999999999999.9999.<br><br>Retorna 999999999999.9999 se o limite não puder ser alcançado.<br><br>Passa a ser `não suportado` somente se for mal utilizado na expressão (tipo errado de item, parâmetros inválidos), qualquer outra situação retorna -1 em caso de erros.<br><br>Exemplos:<br>=> timeleft(\#10,,0) → tempo para o item alcançar o valor '0' baseado nos últimos 10 valores<br>=> timeleft(1h,,100) → tempo até o item alcançar o valor '100' baseado nos dados da última hora<br>=> timeleft(1h,1d,0) → tempo para o item alcançar o valor '0' baseado em 1 hora de 24 horas atrás<br>=> timeleft(1h,,200,polynomial2) → tempo até o item alcançar o valor '200' baseado na última hora, assumindo que o item se comporte como um polinomial quadrado (segundo grau)<br><br>Esta função é suportada desde o Zabbix 3.0.0.<br>Consulte informações adicionais no manual de [funções preditivas de trigger](/manual/config/triggers/prediction).|

::: noteimportant
1) Todas as funções retornam apenas valores
numéricos. A comparação com textos não é suportada, por exemplo.\
2) Algumas das funções não podem ser utilizadas com parâmetros não
numéricos!\
3) Argumentos de texto precisam estar entre aspas duplas, de outra forma
poderão ser mal interpretados. 
:::
