AWS

Observabilidade de PostgreSQL na AWS: da métrica do CloudWatch à causa raiz

PG Monitoring Team July 26, 2026 20 min de leitura

CPU em 92% é um sintoma. A decisão de quem opera é descobrir se a causa é regressão de plano, tempestade de conexões, dívida de vacuum, checkpoints, latência de storage ou demanda legítima — e qual mudança é segura. Uma observabilidade útil conecta quatro camadas: experiência da aplicação, carga SQL, internals do PostgreSQL e infraestrutura cloud.

Defina objetivos de serviço antes dos alarmes

Comece por SLOs de disponibilidade e latência das transações críticas e crie níveis de aviso e crítico a partir do error budget. Alarmes de infraestrutura sem impacto viram ruído; alarmes de aplicação sem contexto do banco atrasam o diagnóstico. Cada acionamento precisa de dono, runbook, evidências esperadas e escalonamento.

Traduza a promessa do negócio em SLIs mensuráveis

Para disponibilidade, defina evento bom com precisão: por exemplo, checkout confirmado em até 800 ms e sem duplicidade. SLI = eventos bons / eventos válidos. Exclua somente condições previstas no contrato; remover timeouts silenciosamente destrói o indicador. Use distribuições de latência nas jornadas importantes, pois a média esconde a cauda sentida pelos usuários.

Alertas por burn rate costumam ser mais acionáveis que limiares estáticos. Queima rápida em janela curta detecta falha severa; queima lenta em janela longa encontra degradação persistente. Saturação do banco vira evidência para acionamento quando consome o error budget ou se aproxima de um limite conhecido.

Colete as quatro camadas

CamadaSinais essenciaisPergunta respondida
AplicaçãoTaxa, erros, p95/p99, traces e espera no poolO usuário foi afetado?
QueriesFingerprint, chamadas, tempo, linhas, I/O temporário e planosQual carga mudou?
PostgreSQLSessões, waits, locks, WAL, checkpoints, vacuum, bloat e replicaçãoQual mecanismo limita o progresso?
AWSCPU, memória, IOPS, throughput, fila, latência, storage e eventosQual recurso ou evento contribui?

CloudWatch fornece métricas e eventos do RDS. Enhanced Monitoring adiciona detalhe do sistema operacional. As ferramentas de performance de banco da AWS ajudam a analisar carga e waits. Dentro do PostgreSQL, habilite e dimensione pg_stat_statements conscientemente, ative track_io_timing após medir overhead e exporte logs com retenção definida. Higienize amostras SQL e valores conforme a classificação dos dados.

Use identificadores que atravessem as camadas

Propague trace/request ID pela aplicação e logs. Normalize SQL em fingerprint estável para literais não criarem milhões de “queries”. Registre banco/instância, role, application name, versão do deploy e hash/versão do plano. Alinhe relógios e intervalos. Sem essas chaves, a equipe vê picos simultâneos, mas não prova que representam o mesmo evento causal.

Controle overhead e cardinalidade

Coleta disputa recursos com produção. Prefira deltas de views cumulativas, limite amostras SQL, retenção e evite query crua, user ID ou request ID como dimensões de séries. Alta cardinalidade pertence a logs/traces com indexação controlada, não a todo label de métrica. Teste CPU, I/O, storage e rede da coleta no pico e defina como ela degrada.

Tratamento de dados: texto SQL, binds, application names e erros podem conter dados pessoais ou sigilosos. Aplique redação, criptografia, separação de acesso e retenção antes de exportá-los da fronteira do banco.

Alerte risco, não todo movimento

  • Disponibilidade: falha de conexão, writer indisponível, failover/reboot e backup com erro.
  • Saturação: CPU sustentada, pouca memória, orçamento de conexões, storage, fila e latência.
  • Carga: regressão de p95, novo fingerprint caro, bloqueios e transações longas.
  • Saúde: dívida de vacuum, risco de transaction ID, pico de temporários, checkpoints solicitados e retenção de WAL.
  • Replicação: replay lag, backlog de slot, consumidor inativo e conflitos de recovery.

Use janelas múltiplas: um alarme rápido pega falhas severas; outro mais lento confirma degradação persistente. Envie warnings para uma fila e acione uma pessoa somente quando ela puder agir. Deduplicate sintomas quando um evento do banco explica todos.

Alerta ruimAlerta acionável
CPU > 80% uma vezCPU sustentada + fila crescendo + queima do SLO
Conexões > 100Orçamento utilizável < 15% e espera no pool subindo por 10 min
Lag > 30 sLag crescente, SLA de recovery/leitura em risco e causa anexada
Query longaFingerprint novo/regredido domina tempo e afeta jornada crítica

Preserve evidências do incidente

No início, capture sessões ativas, waits, árvore de bloqueio, deltas das queries, versões de plano, parâmetros, deploys e métricas AWS. Contadores cumulativos exigem deltas; snapshots exigem timestamp. Não repita diagnósticos pesados em um primary já saturado.

Siga uma triagem de baixo risco

  1. Confirme impacto e blast radius: endpoint, tenant, banco ou frota.
  2. Cheque mudanças: deploy, parâmetro, failover, manutenção, secret ou tráfego.
  3. Classifique wait/recurso dominante e identifique blockers antes de matar sessões.
  4. Compare mix de queries e planos com o último baseline saudável.
  5. Escolha a menor mitigação reversível, observe recuperação e preserve evidência.

Reiniciar pode apagar o estado da causa raiz e ampliar o incidente com tempestade de reconexão. Cancelar, modular tráfego, desligar feature ruim ou adicionar capacidade temporária pode ser mais seguro, mas cada ação exige dono e rollback pré-aprovados.

Transforme incidentes em melhoria de detecção

A revisão deve registrar impacto, linha do tempo, gatilho, condições contribuintes, por que os controles não impediram, como o monitoramento detectou e ações mensuráveis. Valide alarmes com game days: falhe uma conexão, alcance um limite de volume em teste, bloqueie uma transação, rotacione um segredo e execute failover controlado.

Um dashboard útil conta uma história: a latência do usuário subiu, a carga migrou para um fingerprint, o plano mudou, leituras físicas cresceram e a latência do storage acompanhou. Cinco painéis vermelhos ou verdes isolados não entregam essa cadeia causal.

Como o PG Monitoring transforma telemetria AWS em diagnóstico PostgreSQL

O PG Monitoring preserva o contexto que métricas genéricas não têm: histórico normalizado de queries, mudanças de plano, waits, bloqueios, saúde de vacuum/tabelas, replicação, incidentes e capacidade. O operador parte de um sintoma AWS, chega à mudança exata da carga e compara com baseline saudável. Detecção de anomalias e regressões reduz o intervalo entre “algo mudou” e “esta query ou mecanismo criou o risco”.

Resultado prático: menos alertas isolados, causa raiz mais rápida e evidência para melhorar depois do incidente. Conecte o PG Monitoring ao PostgreSQL na AWS e transforme sinais do CloudWatch em um fluxo repetível de diagnóstico.

Related Articles

Ready to experience better PostgreSQL monitoring?

Join thousands of teams who switched from traditional tools to PG Monitoring's AI-powered platform.

Fale conosco