[comment]: # attributes: notoc

[comment]: # ({ea5e90a7-7da5ea1c})
# 4 Funções de histórico

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

-   [Expressões de trigger](/manual/config/triggers/expression)
-   [Itens calculados](/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 os detalhes completos.

|Function|Description|
|--|--------|
|[change](#change)|A quantidade de diferença entre o valor anterior e o mais recente.|
|[changecount](#changecount)|O número de alterações entre valores adjacentes dentro do período de avaliação definido.|
|[count](#count)|O número de valores dentro do período de avaliação definido.|
|[countunique](#countunique)|O número de valores únicos dentro do período de avaliação definido.|
|[find](#find)|Localiza uma correspondência de valor dentro do período de avaliação definido.|
|[first](#first)|O primeiro valor (o mais antigo) dentro do período de avaliação definido.|
|[fuzzytime](#fuzzytime)|Verifica quanto o tempo do agent passivo difere do tempo do Zabbix server/proxy.|
|[last](#last)|O valor mais recente.|
|[logeventid](#logeventid)|Verifica se o ID do evento da última entrada de log corresponde a uma expressão regular.|
|[logseverity](#logseverity)|A severidade do log da última entrada de log.|
|[logsource](#logsource)|Verifica se a origem do log da última entrada de log corresponde a uma expressão regular.|
|[monodec](#monodec)|Verifica se houve uma diminuição monótona nos valores.|
|[monoinc](#monoinc)|Verifica se houve um aumento monótono nos valores.|
|[nodata](#nodata)|Verifica se nenhum dado foi recebido.|
|[percentile](#percentile)|O percentil P de um período, em que P (porcentagem) é especificado pelo terceiro parâmetro.|
|[rate](#rate)|A taxa média por segundo do aumento em um contador monotonicamente crescente dentro do período de tempo definido.|

[comment]: # ({/ea5e90a7-7da5ea1c})

[comment]: # ({2310631d-4d343eb8})
##### Parâmetros comuns

-   `/host/key` é um primeiro parâmetro comum obrigatório para as funções que fazem referência ao histórico do item do host
-   `(sec|#num)<:time shift>` é um segundo parâmetro comum para as funções que fazem referência ao histórico do item do host, em que:
    -   **sec** - período máximo de [avaliação](/manual/config/triggers#evaluation-period) em segundos (podem ser usados [sufixos](/manual/appendix/suffixes) de tempo), ou
    -   **\#num** - intervalo máximo de [avaliação](/manual/config/triggers#evaluation-period) nos valores coletados mais recentes (se precedido por um caractere de cerquilha)
    -   **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 a especificação de time shift.

[comment]: # ({/2310631d-4d343eb8})

[comment]: # ({aa4e1bf6-8f3a0028})
### 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 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]: # ({/aa4e1bf6-8f3a0028})

[comment]: # ({1f93c729-4afc9a02})
##### change(/host/key) {#change}

A quantidade de diferença entre o valor anterior e o mais recente.<br>
Tipos de valor suportados: *Float*, *Integer*, *String*, *Text*, *Log*.<br>
Para strings, retorna: 0 - os valores são iguais; 1 - os valores são diferentes.

Parâmetros: veja [parâmetros comuns](#common-parameters).

Comentários:

-   A diferença numérica será calculada, como mostrado nestes valores de exemplo de entrada ('previous' e 'latest' value = diferença):<br>'1' e '5' = `+4`<br>'3' e '1' = `-2`<br>'0' e '-2.5' = `-2.5`.<br>
-   Veja também: [abs](/manual/appendix/functions/math#abs) para comparação.

Exemplos:

```default
change(/host/system.uptime)<0 #a mudança do tempo de atividade do sistema tem sido negativa desde o último valor (indicando uma reinicialização)
change(/host/system.cpu.load[all,avg1])>2 #a carga da CPU (por um minuto) aumentou em mais de 2 desde o último valor
change(/host/vfs.fs.size[/,free])<-1G #o espaço livre em disco caiu em mais de 1 GB entre as verificações
```

[comment]: # ({/1f93c729-4afc9a02})

[comment]: # ({56cecc56-57458a90})
##### changecount(/host/key,(sec|#num)<:time shift>,<mode>) {#changecount}

O número de alterações entre valores adjacentes dentro do período de avaliação definido.<br>
Tipos de valor suportados: *Float*, *Integer*, *String*, *Text*, *Log*.

Parâmetros: 

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **mode** (deve estar entre aspas duplas) - valores possíveis: *all* - conta todas as alterações (padrão); *dec* - conta diminuições; *inc* - conta aumentos

Para tipos de valor não numéricos, o parâmetro *mode* é ignorado.

Exemplos:

```default
changecount(/host/icmpping,10m)>5 #o status de ping foi alterado mais de 5 vezes em 10 minutos
changecount(/host/vfs.file.contents["/sys/class/net/eth0/operstate"],1h)>5 #o estado operacional de eth0 foi alterado mais de 5 vezes em uma hora
changecount(/host/proc.num[httpd],15m)>10 #o número de processos httpd foi alterado mais de 10 vezes em 15 minutos
changecount(/host/key,#10,"inc") #o número de aumentos de valor (em relação ao valor adjacente) entre os últimos 10 valores
changecount(/host/key,24h,"dec") #o número de diminuições de valor (em relação ao valor adjacente) nas últimas 24 horas até agora
```

[comment]: # ({/56cecc56-57458a90})

[comment]: # ({1f9dc9af-f9ce5dd9})
##### count(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#count}

O número de valores dentro do período de avaliação definido.<br>
Tipos de valores suportados: *Float*, *Integer*, *String*, *Text*, *Log*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **operator** (deve ser colocado entre aspas duplas)
`operators` suportados:<br>*eq* - igual (padrão para integer, float)<br>*ne* - diferente<br>*gt* - maior<br>*ge* - maior ou igual<br>*lt* - menor<br>*le* - menor ou igual<br>*like* (padrão para string, text, log) - corresponde se contiver o padrão (case-sensitive)<br>*bitand* - AND bit a bit<br>*regexp* - corresponde à expressão regular fornecida em `pattern` (case-sensitive)<br>*iregexp* - corresponde à expressão regular fornecida em `pattern` (case-insensitive)<br>
-   **pattern** - o padrão necessário (argumentos de string devem ser colocados entre aspas duplas)

Comentários:

-   Os items do tipo Float correspondem com a precisão de 2.22e-16.
-   *like* não é suportado como operador para valores inteiros.
-   *like* e *bitand* não são suportados como operadores para valores float.
-   Para valores string, text e log, apenas os operadores *eq*, *ne*, *like*, *regexp* e *iregexp* são suportados.
-   Com *bitand* como operador, o quarto parâmetro `pattern` pode ser especificado como dois números, separados por '/': **number_to_compare_with/mask**.
count() calcula o "AND bit a bit" do valor e da *mask* e compara o resultado com *number_to_compare_with*.
Se o resultado do "AND bit a bit" for igual a *number_to_compare_with*, o valor é contado.<br>Se *number_to_compare_with* e *mask* forem iguais, apenas a *mask* precisa ser especificada (sem '/').
-   Com *regexp* ou *iregexp* como operador, o quarto parâmetro `pattern` pode ser uma expressão regular comum ou [global](/manual/regular_expressions#global-regular-expressions) (começando com '@').
No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações da expressão regular global.
Para fins de correspondência regexp, os valores float sempre serão representados com 4 dígitos decimais após o '.'.
Observe também que, para números grandes, a diferença na representação decimal (armazenada no banco de dados) e binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

```default
count(/host/icmpping,30m,,"0")>5 #ping falhou mais de 5 vezes em 30 minutos
count(/host/key,10m,"like","error") #o número de valores nos últimos 10 minutos até agora que contêm 'error'
count(/host/key,10m,,12) #o número de valores nos últimos 10 minutos até agora que são iguais a '12'
count(/host/key,10m,"gt",12) #o número de valores nos últimos 10 minutos até agora que são maiores que '12'
count(/host/key,#10,"gt",12) #o número de valores entre os últimos 10 valores até agora que são maiores que '12'
count(/host/key,10m:now-1d,"gt",12) #o número de valores entre 24 horas e 10 minutos e 24 horas atrás a partir de agora que foram maiores que '12'
count(/host/key,10m,"bitand","6/7") #o número de valores nos últimos 10 minutos até agora que têm '110' (em binário) nos 3 bits menos significativos
count(/host/key,10m:now-1d) #o número de valores entre 24 horas e 10 minutos e 24 horas atrás a partir de agora
```

[comment]: # ({/1f9dc9af-f9ce5dd9})

[comment]: # ({ab6b4d74-bf8dc20c})
##### countunique(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#countunique}

O número de valores únicos dentro do período de avaliação definido.<br>
Tipos de valores suportados: *Float*, *Integer*, *String*, *Text*, *Log*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **operator** (deve ser colocado entre aspas duplas).
`operators` suportados:<br>*eq* - igual (padrão para integer, float)<br>*ne* - diferente<br>*gt* - maior<br>*ge* - maior ou igual<br>*lt* - menor<br>*le* - menor ou igual<br>*like* (padrão para string, text, log) - corresponde se contiver o padrão (case-sensitive)<br>*bitand* - AND bit a bit<br>*regexp* - correspondência case-sensitive da expressão regular fornecida em `pattern`<br>*iregexp* - correspondência case-insensitive da expressão regular fornecida em `pattern`<br>
-   **pattern** - o padrão necessário (argumentos de string devem ser colocados entre aspas duplas)

Comentários:

-   Itens do tipo float correspondem com a precisão de 2.22e-16.
-   *like* não é suportado como operador para valores inteiros.
-   *like* e *bitand* não são suportados como operadores para valores float.
-   Para valores string, text e log, apenas os operadores *eq*, *ne*, *like*, *regexp* e *iregexp* são suportados.
-   Com *bitand* como operador, o quarto parâmetro `pattern` pode ser especificado como dois números, separados por '/': **number_to_compare_with/mask**. countunique() calcula o "AND bit a bit" do valor e da *mask* e compara o resultado com *number_to_compare_with*.
Se o resultado do "AND bit a bit" for igual a *number_to_compare_with*, o valor é contado.<br>Se *number_to_compare_with* e *mask* forem iguais, apenas a *mask* precisa ser especificada (sem '/').
-   Com *regexp* ou *iregexp* como operador, o quarto parâmetro `pattern` pode ser uma expressão regular comum ou [global](/manual/regular_expressions#global-regular-expressions) (começando com '@').
No caso de expressões regulares globais, a sensibilidade a maiúsculas e minúsculas é herdada das configurações globais de expressões regulares.
Para fins de correspondência regexp, valores float sempre serão representados com 4 dígitos decimais após o '.'.
Observe também que, para números grandes, a diferença na representação decimal (armazenada no banco de dados) e binária (usada pelo Zabbix server) pode afetar o 4º dígito decimal.

Exemplos:

```default
countunique(/host/key,10m) #o número de valores únicos nos últimos 10 minutos até agora
countunique(/host/key,10m,"like","error") #o número de valores únicos nos últimos 10 minutos até agora que contêm 'error'
countunique(/host/key,10m,,12) #o número de valores únicos nos últimos 10 minutos até agora que são iguais a '12'
countunique(/host/key,10m,"gt",12) #o número de valores únicos nos últimos 10 minutos até agora que são maiores que '12'
countunique(/host/key,#10,"gt",12) #o número de valores únicos nos últimos 10 valores até agora que são maiores que '12'
countunique(/host/key,10m:now-1d,"gt",12) #o número de valores únicos entre 24 horas e 10 minutos e 24 horas atrás a partir de agora que eram maiores que '12'
countunique(/host/key,10m,"bitand","6/7") #o número de valores únicos nos últimos 10 minutos até agora que têm '110' (em binário) nos 3 bits menos significativos
countunique(/host/key,10m:now-1d) #o número de valores únicos entre 24 horas e 10 minutos e 24 horas atrás a partir de agora
```

[comment]: # ({/ab6b4d74-bf8dc20c})

[comment]: # ({9bb9907e-148d7d16})
##### find(/host/key,(sec|#num)<:time shift>,<operator>,<pattern>) {#find}

Encontra uma correspondência de valor dentro do período de avaliação definido.<br>
Tipos de valores suportados: *Float*, *Integer*, *String*, *Text*, *Log*.<br>
Retorna: 1 - encontrado; 0 - caso contrário.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **sec** ou **#num** (opcional) - por padrão, utiliza o valor mais recente se não especificado
-   **operator** (deve ser entre aspas duplas)
`operators` suportados:<br>*eq* - igual (padrão para integer, float)<br>*ne* - diferente<br>*gt* - maior<br>*ge* - maior ou igual<br>*lt* - menor<br>*le* - menor ou igual<br>*like* (padrão para string, text, log) - corresponde se contiver a string fornecida em `pattern` (diferencia maiúsculas de minúsculas)<br>*bitand* - AND bit a bit<br>*regexp* - correspondência sensível a maiúsculas/minúsculas da expressão regular fornecida em `pattern`<br>*iregexp* - correspondência insensível a maiúsculas/minúsculas da expressão regular fornecida em `pattern`<br>
-   **pattern** - o padrão necessário (argumentos de string devem estar entre aspas duplas); expressão regular [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) se `operator` for *regexp*, *iregexp*

Comentários:

-   Se mais de um valor for processado, '1' será retornado se houver pelo menos um valor correspondente.
-   *like* não é suportado como operador para valores inteiros.
-   *like* e *bitand* não são suportados como operadores para valores float.
-   Para valores string, text e log, apenas os operadores *eq*, *ne*, *like*, *regexp* e *iregexp* são suportados.
-   Com *regexp* ou *iregexp* como operador, o quarto parâmetro `pattern` pode ser uma expressão regular comum ou [global](/manual/regular_expressions#global-regular-expressions) (começando com '@').
No caso de expressões regulares globais, a diferenciação entre maiúsculas e minúsculas é herdada das configurações da expressão regular global.

Exemplos:

```default
find(/host/key,10m,"like","error") #encontra um valor que contenha 'error' nos últimos 10 minutos até agora
find(/host/agent.version,,"like","beta")=1 #O agent Zabbix está em versão beta, deve ser atualizado
find(/host/log[/var/log/nginx/access.log],,"regexp"," 500 ")=1 #foi encontrado um erro interno no servidor web
```

[comment]: # ({/9bb9907e-148d7d16})

[comment]: # ({86057069-0ae5f587})
##### first(/host/key,sec<:time shift>) {#first}

O primeiro (mais antigo) valor dentro do período de avaliação definido.<br>
Tipos de valores suportados: *Float*, *Integer*, *String*, *Text*, *Log*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)

Veja também [last()](#last).

Exemplo:

```default
first(/host/key,1h) #recupera o valor mais antigo dentro da última hora até agora
```

[comment]: # ({/86057069-0ae5f587})

[comment]: # ({96c1f032-1c3609f8})
##### fuzzytime(/host/key,sec) {#fuzzytime}

Verifica quanto o tempo do agent passivo difere do tempo do Zabbix server/proxy.<br>
Tipos de valor suportados: *Float*, *Integer*.<br>
Retorna: 1 - a diferença entre o valor do item passivo (como timestamp) e o timestamp do Zabbix server/proxy (o relógio da coleta do valor) é menor ou igual a *sec* segundos; 0 - caso contrário.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters).

Comentários:

-   Normalmente usado com o item 'system.localtime' para verificar se o horário local está sincronizado com o horário local do Zabbix server.
*Nota* que 'system.localtime' deve ser configurado como um [cheque passivo](/manual/appendix/items/activepassive#passive-checks) para o Zabbix agent; no Zabbix agent 2 pode ser configurado como um cheque ativo.
-   Também pode ser usado com a chave `vfs.file.time[/path/file,modify]` para verificar se o arquivo não recebeu atualizações por muito tempo.
-   Esta função não é recomendada para uso em expressões de trigger complexas (com múltiplos itens envolvidos), pois pode causar resultados inesperados (a diferença de tempo será medida com a métrica mais recente), por exemplo, em `fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0`.

Exemplos:

```default
fuzzytime(/host/system.localtime,5m)=0 #o horário local do cliente difere do horário do Zabbix server/proxy em mais de 5 minutos
fuzzytime(/host/system.localtime,5m)=0 and nodata(/host/system.localtime,10m)=0 #o horário local do cliente difere do horário do Zabbix server/proxy em mais de 5 minutos (enquanto garante que o item não parou de reportar dados)
```

[comment]: # ({/96c1f032-1c3609f8})

[comment]: # ({fc04e088-8059d345})
##### last(/host/key,<#num<:time shift>>) {#last}

O valor mais recente.<br>
Tipos de valor suportados: *Float*, *Integer*, *String*, *Text*, *Log*.

Parâmetros: 

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **#num** (opcional) - o N-ésimo valor mais recente

Comentários:

-   Observe que um período de tempo com hash-tag (#N) funciona de forma diferente aqui do que em muitas outras funções.
Por exemplo: `last(/host/key)` é sempre igual a `last(/host/key,#1)`; `last(/host/key,#3)` - o terceiro valor mais recente (*não* os três valores mais recentes).
-   O Zabbix não garante a ordem exata dos valores se existirem mais de dois valores dentro de um segundo no histórico.
-   Veja também [first()](#first).

Exemplos:

```default
last(/host/key) #recupera o último valor
last(/host/key,#2) #recupera o valor anterior
last(/host/key,#1) <> last(/host/key,#2) #o último e o valor anterior diferem
```

[comment]: # ({/fc04e088-8059d345})

[comment]: # ({5cecd78d-ff5dcd5e})
##### logeventid(/host/key,<#num<:time shift>>,<pattern>) {#logeventid}

Verifica se o ID do evento da última entrada de log corresponde a uma expressão regular.<br>
Tipos de valor suportados: *Log*.<br>
Retorna: 0 - não corresponde; 1 - corresponde.

Parâmetros: 

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **#num** (opcional) - o N-ésimo valor mais recente<br>
-   **pattern** (opcional) - a expressão regular que descreve o padrão necessário, no estilo [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (os argumentos de string devem estar entre aspas duplas)

Exemplos:

```default
logeventid(/host/eventlog[Security],,"^4625$")=1 #uma entrada de log com ID correspondente a "4625" (autenticação falhou) encontrada
logeventid(/host/eventlog[System],,"^(6008|41)$")=1 #uma entrada de log com ID correspondente a "6008" ou "41" encontrada
```

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

[comment]: # ({d3497d35-5053b990})
##### logseverity(/host/key,<#num<:time shift>>) {#logseverity}

Severidade do log da última entrada de log.<br>
Tipos de valor suportados: *Log*.<br>
Retorna: 0 - severidade padrão; N - severidade (inteiro, útil para logs de eventos do Windows: 1 - Informação, 2 - Aviso, 4 - Erro, 7 - Falha de Auditoria, 8 - Sucesso de Auditoria, 9 - Crítico, 10 - Verboso).

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **#num** (opcional) - o N-ésimo valor mais recente

O Zabbix obtém a severidade do log a partir do campo **Information** do log de eventos do Windows.

Exemplos:

```default
logseverity(/host/log[/var/log/syslog],10m)>3 #uma entrada de log com severidade acima de "3" encontrada
logseverity(/host/eventlog[System],10m)=4 #uma entrada de log com severidade igual a "Erro" encontrada
```

[comment]: # ({/d3497d35-5053b990})

[comment]: # ({b33d7f55-a9148f5c})
##### logsource(/host/key,<#num<:time shift>>,<pattern>) {#logsource}

Verifica se a origem do último registro de log corresponde a uma expressão regular.<br>
Tipos de valor suportados: *Log*.<br>
Retorna: 0 - não corresponde; 1 - corresponde.

Parâmetros: 

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **#num** (opcional) - o N-ésimo valor mais recente<br>
-   **pattern** (opcional) - a expressão regular que descreve o padrão necessário, no estilo [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) (os argumentos de string devem estar entre aspas duplas)

Normalmente usado para logs de eventos do Windows.

Exemplos:

```default
logsource(/host/eventlog[Application],,"MSSQLSERVER")=1 #uma entrada de log com origem correspondente a "MSSQLSERVER" encontrada
logsource(/host/eventlog[System],,"Service Control Manager")=1 #uma entrada de log com origem correspondente a "Service Control Manager" encontrada
logsource(/host/eventlog[System],,"Service Control Manager")=1 and logeventid(/host/eventlog[System],,"^7031$")=1 #uma entrada de log com origem correspondente a "Service Control Manager" e ID de evento correspondente a "7031" encontrada
```

[comment]: # ({/b33d7f55-a9148f5c})

[comment]: # ({2b7441d8-6a63b5c8})
##### monodec(/host/key,(sec|#num)<:time shift>,<mode>) {#monodec}

Verifica se houve uma diminuição monótona nos valores.<br>
Tipos de valores suportados: *Integer*.<br>
Retorna: 1 - se todos os elementos no período de tempo diminuíram continuamente; 0 - caso contrário.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **mode** (deve estar entre aspas duplas) - *weak* (todo valor é menor ou igual ao anterior; padrão) ou *strict* (todo valor diminuiu)

Exemplos:

```default
monodec(/host/system.swap.size[all,free],60s) + monodec(/host2/system.swap.size[all,free],60s) + monodec(/host3/system.swap.size[all,free],60s) #calcula em quantos hosts houve uma diminuição no espaço de swap livre
monodec(/host/proc.num[nginx],10m,"strict")=1 #o número de processos nginx diminuiu monotonamente em 10 minutos
```

[comment]: # ({/2b7441d8-6a63b5c8})

[comment]: # ({09e06757-755c1821})
##### monoinc(/host/key,(sec|#num)<:time shift>,<mode>) {#monoinc}

Verifica se houve um aumento monótono nos valores.<br>
Tipos de valores suportados: *Integer*.<br>
Retorna: 1 - se todos os elementos no período de tempo aumentarem continuamente; 0 - caso contrário.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **mode** (deve estar entre aspas duplas) - *weak* (todo valor é maior ou igual ao anterior; padrão) ou *strict* (todo valor aumentou)

Exemplos:

```default
monoinc(/host/system.localtime,#3,"strict")=0 #o tempo local do sistema não aumentou consistentemente
monoinc(/host/vfs.dir.count[/mnt/data/logs],24h,"weak")=0 #dispara se a contagem de arquivos estagnar por 24 horas (espera-se que cresça)
```

[comment]: # ({/09e06757-755c1821})

[comment]: # ({ce0040c4-178e3950})
##### nodata(/host/key,sec,<mode>) {#nodata}

Verifica se não há dados recebidos.<br>
Tipos de valores suportados: *Integer*, *Float*, *Character*, *Text*, *Log*.<br>
Retorna: 1 - se nenhum dado for recebido durante o período de tempo definido; 0 - caso contrário.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **sec** - o período não deve ser inferior a 30 segundos porque o processo history syncer calcula esta função apenas a cada 30 segundos; `nodata(/host/key,0)` não é permitido
-   **mode** - se definido como *strict* (entre aspas duplas), esta função será insensível à disponibilidade do proxy (veja os comentários para detalhes)

Comentários:

-   os triggers 'nodata' monitorados por proxy são, por padrão, sensíveis à disponibilidade do proxy - se o proxy ficar indisponível, os triggers 'nodata' não serão disparados imediatamente após a restauração da conexão, mas pularão os dados pelo período de atraso.
Observe que para proxies passivos a supressão é ativada se a conexão for restaurada mais de 15 segundos e não menos de 2 segundos depois.
Para proxies ativos a supressão é ativada se a conexão for restaurada mais de 15 segundos depois.
Para desativar a sensibilidade à disponibilidade do proxy, use o terceiro parâmetro, por exemplo: `nodata(/host/key,5m,"strict")`; neste caso, a função será disparada assim que o período de avaliação (cinco minutos) sem dados tiver passado.<br>
-   Esta função exibirá um erro se, dentro do período do 1º parâmetro:<br>- não houver dados e o Zabbix server for reiniciado<br>- não houver dados e a manutenção for concluída<br>- não houver dados e o item for adicionado ou reabilitado.<br>
-   Os erros são exibidos na coluna *Info* na [configuração](/manual/web_interface/frontend_sections/data_collection/hosts/triggers) do trigger.<br>
-   Esta função pode não funcionar corretamente se houver diferenças de horário entre o Zabbix server, proxy e agent.
Veja também: [Requisito de sincronização de horário](/manual/installation/requirements#time-synchronization).

Exemplo:

```default
nodata(/host/agent.ping,5m)=1 #trigger se nenhum dado for recebido do Zabbix agent por 5 minutos
```

[comment]: # ({/ce0040c4-178e3950})

[comment]: # ({8fe0ae58-e8041c00})
##### percentile(/host/key,(sec|#num)<:time shift>,percentage) {#percentile}

O percentil P de um período, onde P (percentual) é especificado pelo terceiro parâmetro.<br>
Tipos de valor suportados: *Float*, *Integer*.

Parâmetros:

-   Veja [parâmetros comuns](#common-parameters)<br>
-   **percentage** - um número de ponto flutuante entre 0 e 100 (inclusive) com até 4 dígitos após o ponto decimal

Exemplos:

```default
percentile(/host/net.if.in[eth0,bytes],1h,95)>1000000 #o percentil 95 da entrada de rede (bytes/seg) em 1 hora ultrapassou um limite (por exemplo, 1 MB/s)
percentile(/host/system.cpu.util,5m,95)>80 #o percentil 95 da porcentagem de utilização da CPU no tempo de usuário ultrapassou 80
percentile(/host/icmppingsec[192.168.0.2],15m,95)>0.15 #a maioria das medições de latência está abaixo de 150 ms, mas a cauda superior (5% superiores) implica em atrasos regulares
percentile(/host/net.if.in[eth0,bytes],1h,50) #calcula o percentil 50 (o valor mediano) do tráfego de rede de entrada por uma hora; isso gera um resultado diferente de avg() (a média), pois percentile não considera valores discrepantes
(percentile(/host/net.if.in[eth0,bytes],1h,50)+percentile(/host/net.if.in[eth0,bytes],1h,51))/2 #calcula o valor mediano preciso com um número par de valores por uma hora
```

[comment]: # ({/8fe0ae58-e8041c00})

[comment]: # ({0e6c5369-3b1de601})
##### rate(/host/key,sec<:time shift>) {#rate}

A taxa média por segundo do aumento de um contador monotonicamente crescente dentro do período de tempo definido.<br>
Tipos de valor suportados: *Float*, *Integer*.

Parâmetros: 

-   Veja [parâmetros comuns](#common-parameters)

Corresponde funcionalmente a '[rate](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate)' do PromQL.

Exemplos:

```default
rate(/host/key,30s) #se o aumento monotônico ao longo de 30 segundos for 20, esta função retorna 0.67.
rate(/host/net.if.in[eth0,bytes],5m)>500000 #a taxa de tráfego de entrada da interface em eth0 excedeu 500 KB/s nos últimos 5 minutos
rate(/host/app.requests.count,1m)>100 #o contador de quantidade de requisições aumentou para >100 requisições por segundo no último minuto
```

[comment]: # ({/0e6c5369-3b1de601})

[comment]: # ({ba59dd3a-ce01d749})
Veja [todas as funções suportadas](/manual/appendix/functions).

[comment]: # ({/ba59dd3a-ce01d749})
