Multi-region verificação de quedas
Quando a monitorização corre apenas a partir de um único local, uma breve falha de encaminhamento no nosso fornecedor de internet pode acordá-lo às três da manhã com um alarme falso. A verificação multirregião resolve isto: uma indisponibilidade só é confirmada quando é reportada pelo servidor principal e por pelo menos um backup noutra região ou noutro fornecedor de internet.
Como funciona
- A verificação principal (a partir do nosso servidor central) reporta DOWN (indisponível).
- Antes de enviar um alerta, o sistema chama um worker de backup noutra região.
- O worker realiza o seu próprio teste e normalmente devolve UP ou DOWN em poucos segundos (dependendo do tempo limite do monitor).
- Se o backup também confirmar DOWN, o monitor é marcado como indisponível e os alertas são enviados.
- Se o servidor principal reportou DOWN mas o backup devolveu UP, foi um alarme falso (em inglês flake) - nenhum alerta é enviado.
Quando o consenso é acionado
A verificação multirregião não é chamada em cada verificação, apenas em casos bem definidos, para não atrasar a medição habitual:
- O servidor principal (primary) realiza primeiro a sua própria verificação, incluindo tentativas internas (2 tentativas com uma pausa curta).
- O consenso é acionado apenas quando o servidor principal continua a reportar DOWN após a nova tentativa. Se estiver tudo em ordem, as regiões de backup não são chamadas de todo.
- Aplica-se apenas a monitores do tipo http (sem fluxos de vários passos), tcp e ping. Os restantes tipos (ssl, dns, domínio, visual, heartbeat) não o utilizam.
Como uma indisponibilidade é decidida
Depois de o servidor principal reportar DOWN, o sistema solicita uma verificação independente aos workers de backup disponíveis noutras regiões. A partir dos resultados, conta quantos locais confirmaram a indisponibilidade:
- O monitor só é marcado como indisponível quando o número de reportes DOWN atinge o limite configurado (por predefinição 2 regiões, incluindo o principal).
- Se o limite não for atingido (por exemplo, o principal reportou DOWN mas o backup UP), trata-se de um alarme falso: o monitor permanece no estado UP e nenhum alerta é enviado. Como tempo de resposta é usada a média das regiões que responderam corretamente.
- Um worker de backup que não está a responder naquele momento é ignorado em silêncio e não é contado na votação.
Quem o ativa e como
A verificação multirregião é uma funcionalidade opcional ao nível de toda a plataforma, gerida pelo administrador do ePulz.io. As regiões não são fixas: o administrador adiciona workers de backup conforme necessário (por exemplo, o servidor principal mais um ou dois nós na nuvem noutros países) e define quantos deles têm de confirmar uma indisponibilidade.
Como aparece na interface
No detalhe do monitor, para uma indisponibilidade que passou pelo consenso, vê o resultado da verificação de cada local, por exemplo:
consensus: primary:down, eu1:down
result: DOWN (2 of 2 confirmed)
Na página de estado pública, os visitantes não veem qualquer detalhe técnico: recebem apenas um estado de serviço verificado e fiável, sem alarmes falsos.
Consequências práticas
- Menos alertas falsos: uma breve falha na rota para um fornecedor é filtrada pela verificação a partir de outra região.
- Tempo de deteção ligeiramente mais longo: ao confirmar uma indisponibilidade acrescentam-se alguns segundos em comparação com a medição a partir de um único local.
- Histórico mais fiável: nos incidentes e nas estatísticas de disponibilidade são registadas apenas as indisponibilidades reais, não as flutuações locais de rede.