From f188bdef53ee8c71ec4070172d7b186a03fcd04a Mon Sep 17 00:00:00 2001 From: Jakov Sosic Date: Thu, 24 Dec 2020 16:39:43 +0100 Subject: [PATCH] Improve PostgreSQL replication lag detection (#395) In some cases master can show pg_last_xact_replay_timestamp() from past, which can cause the exporter to show ever-growing value for the lag. By checking if the instance is in recovery we can avoid reporting some huge number for master instance. --- queries.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/queries.yaml b/queries.yaml index 24abb9a9..800e62bd 100644 --- a/queries.yaml +++ b/queries.yaml @@ -1,5 +1,5 @@ pg_replication: - query: "SELECT EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp())) as lag" + query: "SELECT CASE WHEN NOT pg_is_in_recovery() THEN 0 ELSE GREATEST (0, EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp()))) END AS lag" master: true metrics: - lag: