DEV Community

Francisco das Chagas
Francisco das Chagas

Posted on

Poucos alertas, um trace, zero impacto

Noite, com a lua na janela e um relógio marcando 21:30. No monitor, um trace teal liga o job noturno de coleta ao banco destacado em âmbar, com o pool de conexões saturado, 36 conexões recusadas e uma consulta N+1 detectada.

Uma semana depois do incidente de 8h40, os alertas novos começaram a tocar, sempre por volta das 21:30.

O pool de conexões do banco subiu noite após noite: 90%, 89%, 94,8%. Na terceira noite, 36 conexões recusadas.

Era a mesma falha daquele incidente, em formação. Só que desta vez sabíamos três noites antes.

O diagnóstico não veio de uma ferramenta cara. Veio de duas coisas simples:

  • um alerta de conexões que tocou antes do impacto;
  • um trace, na janela do alerta, que ligou um job noturno de um serviço à saturação do banco de outro.

O job fazia uma consulta por ponto de medição. A leitura no banco chegava a 12 vezes o normal, com a escrita parada. Era o padrão N+1, conhecido de qualquer livro.

Do primeiro erro ao diagnóstico, levou menos de um dia útil. O impacto em cliente foi zero.

No mesmo dia, corrigi dois alertas que davam falso positivo. Menos ruído é o que faz o time acreditar no próximo alerta.

A lição para quem gere risco: detectar cedo é barato. Poucos alertas certos e uma forma de ligar a causa ao sintoma valem mais que cem painéis.

Spoiler: a correção do job ainda não saiu. Detectar não é corrigir, e isso é assunto de outro post.

No seu time, o último incidente foi detectado pelo alerta ou pelo cliente?

Top comments (0)