Triggers são uma ferramenta poderosa, mas também podem criar ruído de alerta indesejado. Para ver mais sinais reais e menos ruído, siga estas dicas:
Dessensibilize triggers. Em vez de alertar sobre o valor mais recente (muito alto/muito baixo), analise a média por um período prolongado usando funções como avg, min e max.
Considere usar a função percentile (defina para 95% ou 5%) em triggers, se quiser evitar alertas sobre picos e quedas aleatórias.
Use expressões de recuperação para evitar mudanças frequentes do estado do trigger (OK ↔︎ Problema) ou trigger flapping. As expressões de recuperação permitem criar uma condição separada para a resolução do problema. Veja histerese.
Use dependências de trigger para evitar alertas que não estão relacionados à causa raiz.
Use severidade de trigger para alertar apenas sobre os problemas mais graves.
Defina janelas de manutenção.
Às vezes, é necessário um intervalo entre os estados de problema e recuperação, em vez de um simples limite. Por exemplo, se quisermos definir um trigger que relate um problema quando a temperatura da sala do servidor ultrapassar 20°C e quisermos que ele permaneça no estado de problema até que a temperatura caia abaixo de 15°C, um simples limite de trigger em 20°C não será suficiente.
Em vez disso, precisamos definir primeiro uma expressão de trigger para o evento de problema (temperatura acima de 20°C). Em seguida, precisamos definir uma condição adicional de recuperação (temperatura abaixo de 15°C). Isso é feito definindo uma Expressão de recuperação ao configurar um trigger.
Neste caso, a recuperação do problema ocorre em duas etapas:
A expressão de recuperação é avaliada somente após o evento de problema ser resolvido. A expressão de recuperação ser VERDADEIRA sozinha não resolve um problema se a expressão de problema ainda for VERDADEIRA!
Exemplo
A temperatura na sala do servidor está muito alta.
Expressão do problema:
Expressão de recuperação:
É improdutivo usar a macro {TRIGGER.VALUE} em uma expressão de recuperação porque essa expressão só é avaliada quando o trigger está no estado "Problema". Consequentemente, {TRIGGER.VALUE} sempre será resolvido como "1" (o que indica um estado de "Problema") ao avaliar a expressão.