Ter logs e métricas não garante que uma equipe descubra a tempo que uma réplica parou de acompanhar o banco primário. Em um relato publicado no DEV Community em 2 de outubro de 2026, Francisco das Chagas afirma que sua equipe passou 8 horas e 40 minutos operando sem uma réplica disponível e sem saber. O problema, segundo ele, não foi a falta de dados, mas a falta de detecção acionável.
O que aconteceu, segundo o relato
Francisco das Chagas conta que uma manutenção automática do provedor de nuvem reciclou dois servidores do banco de produção, com seis minutos entre os eventos. O failover teria sido concluído em quatro segundos; depois, a reciclagem do novo primário durante a ressincronização teria deixado a réplica travada. O autor diz que a equipe ficou 8 horas e 40 minutos sem cópia de segurança do banco e sem perceber.
Mais tarde, o negócio notou o impacto. Na revisão descrita por Chagas, logs e métricas existiam, mas uma métrica de saúde da réplica continuava indicando “saudável”. O sinal que revelou o problema foi a diferença entre o que o primário escreveu e o que a réplica aplicou. A publicação é um relato pessoal, não uma investigação auditada de forma independente; não informa provedor, versão do PostgreSQL, configuração de replicação, detalhes do alerta ou dados de impacto.
Por que coletar telemetria não basta
Uma métrica disponível só ajuda se representar uma condição relevante, for interpretada corretamente e chegar à pessoa capaz de agir. Um painel pode conservar dados úteis para análise posterior sem detectar uma falha em tempo real. Chagas resume a distinção assim: “Telemetria sem alerta é arqueologia. O MTTR não veio de falta de dado, veio de falta de detecção.”
#1 Best Overall
Também importa a rota de notificação. O autor diz que um aviso em um card de chat não acordou ninguém às 00:34. Isso descreve aquele incidente; não é uma regra sobre toda ferramenta de chat. O ponto operacional é verificar se o alerta chega ao plantão pelo canal e pela severidade que exigem uma resposta imediata, e se alguém confirma o recebimento.
O que as posições de WAL revelam
No PostgreSQL, a replicação pode ser observada em etapas. A vista pg_stat_replication apresenta uma linha por processo WAL sender conectado a uma réplica e inclui posições como sent_lsn, write_lsn, flush_lsn e replay_lsn. Elas ajudam a distinguir o WAL enviado pelo primário, escrito pela réplica, descarregado em disco e reproduzido. replay_lsn corresponde à posição já reproduzida.
Rank #2
Comparar essas etapas pode revelar onde o avanço parou, em vez de depender apenas de um rótulo genérico de saúde. Isso não substitui a interpretação do contexto: a consulta mostra posições e estado observados, mas não prova por si só que a réplica está íntegra, recuperável ou disponível para failover.
Como interpretar lag sem confiar em um único número
A documentação do PostgreSQL 17 descreve replay_lag como um intervalo entre o flush local recente e a confirmação de que a réplica escreveu, descarregou e aplicou os dados. Em replicação assíncrona, ele aproxima o atraso até que transações recentes fiquem visíveis na réplica. Não é uma previsão de quanto tempo ela levará para alcançar o primário.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #3
Há ainda dois casos importantes para o monitoramento: quando uma réplica ociosa já alcançou o primário, valores de lag podem persistir por pouco tempo e depois tornar-se NULL; quando a replicação está quebrada, uma métrica temporal baseada no último replay pode não conseguir representar quanto o primário avançou. Portanto, o sistema de alertas deve definir explicitamente como tratar um valor nulo, ausente ou antigo, em vez de interpretá-lo automaticamente como ausência de problema.
No Cloud SQL para PostgreSQL, o Google Cloud distingue network_lag, associado ao atraso antes da chegada, de replica_lag, ligado ao atraso de aplicação. A métrica temporal de lag do serviço é uma aproximação baseada em now() - pg_last_xact_replay_timestamp(); se a replicação estiver interrompida, a réplica pode não saber o avanço total do primário. Essas métricas são específicas da documentação do serviço gerenciado, não uma garantia de que toda instalação PostgreSQL exponha os mesmos indicadores.
Rank #4
Verifique também se o fluxo de replicação está ativo
Para Cloud SQL para PostgreSQL, o Google Cloud descreve a consulta de pg_stat_wal_receiver para verificar o campo status e o horário last_msg_receipt_time. Um receiver presente, em streaming e com recebimento recente fornece evidência de fluxo atual; uma consulta sem resultado indica que não havia receiver naquela verificação. Isso é um sinal pontual, não uma garantia de integridade ou disponibilidade futura.
Transforme os sinais em um alerta que gere ação
Um monitoramento de réplica precisa responder não só “qual é o valor da métrica?”, mas “qual condição exige intervenção e quem será avisado?”. Ao revisar a configuração do seu ambiente, verifique:
Best Value
- Fluxo: se há um receiver ativo e mensagens recentes, quando esses sinais estão disponíveis.
- Progresso: se as posições enviadas, escritas, descarregadas e reproduzidas avançam conforme esperado.
- Localização do atraso: se o problema está antes da chegada do WAL ou na aplicação pela réplica, quando o ambiente oferece métricas separadas.
- Dados inválidos ou antigos: como o sistema trata valor nulo, métrica ausente e ausência de atualização.
- Regra e duração: qual limiar, por quanto tempo, justifica uma notificação; isso depende da tolerância e do comportamento do seu sistema.
- Plantão: qual canal acorda a pessoa responsável, qual severidade é usada e como se confirma o recebimento.
Os detalhes de limiares, roteamento e confirmação não são especificados no relato de Chagas; devem ser definidos para o ambiente e para o risco que a equipe precisa controlar. A pergunta que ele deixa é direta: “Em gestão de risco, a pergunta certa não é ‘temos o dado?’. É ‘quanto tempo levamos para saber?’”
Quick Recap
Referências
- Francisco das Chagas, “8h40 com todos os dados e nenhum aviso”, DEV Community, publicado em 2 de outubro de 2026.
- PostgreSQL Global Development Group, documentação do PostgreSQL 17 sobre estatísticas de replicação.
- Google Cloud, documentação de atraso de replicação no Cloud SQL para PostgreSQL.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

