DEV Community

Mike Fortes
Mike Fortes

Posted on • Originally published at mromeiro-f.Medium on

Monitoramento de 1 segundo? Temos !

Então seu cliente desenvolve uma aplicação nota 11 na escala Richter e diz que se ela espirrar ele precisa ficar sabendo, caso contrário a raça humana será extinta ¯_(ツ)_/¯

Você pensa em explicar qual seria o impacto negativo de se criar um monitoramento com intervalos tão curtos… até que você lembra do milagroso “Throttling”.

Não se lembra do “Throttling”? Então continua essa leitura que vou te mostrar do que ele é capaz.

Na versão 4.2, junto com outras opções de pré-processamento, foi lançado o Throttling.

Sendo mais claro, seu funcionamento consiste em trabalhar com “descarte” de valores. Isso somado a uma coleta de 1 segundo (por exemplo) faz você se tornar o Thanos do monitoramento.

E não sou eu quem estou falando, olha ai na documentação dizendo: “Zabbix God tools”.

Link da documentação abaixo:

Zabbix Documentation 5.4

Normalmente, se você alterar a coleta para 1 segundo, você teria valores assim:

1; 2; 3; 3; 3; 3; 5; 2; 1; 2 …

Com o pré-processamento, sempre que a coleta receber um valor igual ao valor anterior, ele descarta aquele valor, ou seja, não será escrito em banco, e o mantém até que um novo valor ocorra. Dessa forma, o exemplo acima ficaria gravado como:

1; 2; 3;;;;5;2;1;2…

Vamos criar um item na prática pra explicar melhor essa dádiva dos deuses.

Criei um item, alterei seu tempo de coleta para 1 segundo e em pré-processamento criei uma regra de Throttling.

Existem duas opções, a “Discard Unchanged” e a “Discard Unchanged with heartbeat”. Observe os valores coletados no item acima:

Exemplo configurado com 30sec

A imagem acima se trata da opção “Discard Unchanged with heartbeat” que faz o descarte dos valores somente após o tempo que estipulamos em sua configuração (em segundos). Podendo ser usado nesse campo LLD-macros e macros comuns.

Já esta outra opção “Discard Unchanged”, como podemos ver, sempre que o valor se mantém ele o descarta até que o próximo seja diferente.

IMPORTANTE: Caso o valor seja descartado, ele não é salvo no banco de dados, sendo assim o Zabbix Server não saberá da existência dele no futuro. Tenha isso em mente caso em algum momento queira criar triggers que se baseiam em valor/tempo, pois sua trigger pode não disparar/resolver corretamente.

Top comments (0)