Medir o atraso de replicação entre membros pgactive - Amazon Relational Database Service

Medir o atraso de replicação entre membros pgactive

Você pode usar a consulta a seguir para visualizar o atraso de replicação entre os membros de pgactive. Execute essa consulta em cada nó de pgactive para ter a imagem completa.

app=> SELECT * FROM pgactive.pgactive_get_replication_lag_info(); │-[ RECORD 1 ]--------+--------------------------------------------- │node_name | node2-app │node_sysid | 7481018224801653637 │application_name | pgactive:7481018224801653637:send │slot_name | pgactive_16385_7481018224801653637_0_16385__ │active | t │active_pid | 783486 │pending_wal_decoding | 0 │pending_wal_to_apply | 0 │restart_lsn | 0/2108150 │confirmed_flush_lsn | 0/2154690 │sent_lsn | 0/2154690 │write_lsn | 0/2154690 │flush_lsn | 0/2154690 │replay_lsn | 0/2154690 │-[ RECORD 2 ]--------+--------------------------------------------- │node_name | node1-app │node_sysid | 7481018033434600853 │application_name | pgactive:7481018033434600853:send │slot_name | pgactive_16385_7481018033434600853_0_16385__ │active | t │active_pid | 783488 │pending_wal_decoding | 0 │pending_wal_to_apply | 0 │restart_lsn | 0/20F5AD0 │confirmed_flush_lsn | 0/214EF68 │sent_lsn | 0/214EF68 │write_lsn | 0/214EF68 │flush_lsn | 0/214EF68 │replay_lsn | 0/214EF68

Monitore, no mínimo, os seguintes diagnósticos:

active

Configure alertas quando active for false, o que indica que o slot não está em uso no momento (a instância do assinante foi desconectada do publicador).

pending_wal_decoding

Na replicação lógica do PostgreSQL, os arquivos WAL são armazenados em formato binário. O publicador deve decodificar essas alterações do WAL e convertê-las em alterações lógicas (como operações de inserção, atualização ou exclusão).

A métrica pending_wal_decoding mostra o número de arquivos WAL aguardando decodificação do lado do publicador.

Esse número pode aumentar devido a estes fatores:

  • Quando o assinante não estiver conectado, o status active será false e pending_wal_decoding aumentará.

  • O slot está ativo, mas o publicador não consegue acompanhar o volume de alterações do WAL.

pending_wal_to_apply

A métrica pending_wal_apply indica o número de arquivos WAL que ainda precisam ser aplicados do lado do assinante.

Vários fatores podem impedir que o assinante aplique alterações e possivelmente provocar um cenário de disco cheio:

  • Diferenças de esquema: por exemplo, quando você tem alterações no fluxo do WAL para uma tabela chamada sample e essa tabela não existe do lado do assinante.

  • Valores nas colunas da chave primária foram atualizados.

  • Índices secundários exclusivos podem causar divergência de dados.