From 465d843551224fb50c6349536667fa2f1941a8c4 Mon Sep 17 00:00:00 2001 From: Vadim Voitenko Date: Tue, 27 Jun 2023 14:37:38 +0300 Subject: [PATCH] Fixed replication pgReplicationSlotQuery - now it's working correctly for replica and primary Signed-off-by: Vadim Voitenko --- collector/pg_replication_slot.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/collector/pg_replication_slot.go b/collector/pg_replication_slot.go index 43eb8a9db..dec1b5da0 100644 --- a/collector/pg_replication_slot.go +++ b/collector/pg_replication_slot.go @@ -66,11 +66,14 @@ var ( pgReplicationSlotQuery = `SELECT slot_name, - pg_current_wal_lsn() - '0/0' AS current_wal_lsn, - coalesce(confirmed_flush_lsn, '0/0') - '0/0', + CASE WHEN pg_is_in_recovery() THEN + pg_last_wal_receive_lsn() - '0/0' + ELSE + pg_current_wal_lsn() - '0/0' + END AS current_wal_lsn, + COALESCE(confirmed_flush_lsn, '0/0') - '0/0', active - FROM - pg_replication_slots;` + FROM pg_replication_slots;` ) func (PGReplicationSlotCollector) Update(ctx context.Context, instance *instance, ch chan<- prometheus.Metric) error {