Skip to content

Commit 2a31446

Browse files
committed
fix: fixed Replication lags evaluation
1 parent 10a56bb commit 2a31446

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

mamonsu/plugins/pgsql/driver/pool.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class Pool(object):
6565
"""
6666
SELECT application_name,
6767
{0}
68-
(pg_{1}_{2}_diff(pg_current_{1}_{2}(), replay_lsn))::int AS total_lag
68+
coalesce((pg_{1}_{2}_diff(pg_current_{1}_{2}(), replay_lsn))::int, 0) AS total_lag
6969
FROM pg_stat_replication;
7070
""",
7171
"""

mamonsu/plugins/pgsql/replication.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ def run(self, zbx):
5151
Pooler.run_sql_type("replication_lag_master_query")
5252
if Pooler.server_version_greater("10.0") and (Pooler.is_superuser() or Pooler.is_bootstraped()):
5353
result_lags = Pooler.run_sql_type("wal_lag_lsn",
54-
args=[" (pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn))::int AS send_lag, "
55-
"(pg_wal_lsn_diff(sent_lsn, flush_lsn))::int AS receive_lag, "
56-
"(pg_wal_lsn_diff(sent_lsn, write_lsn))::int AS write_lag, "
57-
"(pg_wal_lsn_diff(write_lsn, flush_lsn))::int AS flush_lag, "
58-
"(pg_wal_lsn_diff(flush_lsn, replay_lsn))::int AS replay_lag, " if not Pooler.is_bootstraped() else
54+
args=[" coalesce((pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn))::int, 0) AS send_lag, "
55+
"coalesce((pg_wal_lsn_diff(sent_lsn, flush_lsn))::int, 0) AS receive_lag, "
56+
"coalesce((pg_wal_lsn_diff(sent_lsn, write_lsn))::int, 0) AS write_lag, "
57+
"coalesce((pg_wal_lsn_diff(write_lsn, flush_lsn))::int, 0) AS flush_lag, "
58+
"coalesce((pg_wal_lsn_diff(flush_lsn, replay_lsn))::int, 0) AS replay_lag, " if not Pooler.is_bootstraped() else
5959
" send_lag, receive_lag, write_lag, flush_lag, replay_lag, ",
6060
"wal", "lsn"])
6161
if result_lags:

mamonsu/tools/bootstrap/sql.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185
RETURNS TABLE(application_name TEXT, {8} total_lag INTEGER) AS $$
186186
SELECT application_name,
187187
{6}
188-
(pg_{7}_diff(pg_current_{7}(), replay_{9}))::int AS total_lag
188+
coalesce((pg_{7}_diff(pg_current_{7}(), replay_{9}))::int, 0) AS total_lag
189189
FROM pg_stat_replication
190190
$$ LANGUAGE SQL SECURITY DEFINER;
191191
"""

mamonsu/tools/bootstrap/start.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,11 @@ def fill_query_params(queries):
166166
'wal_lsn' if Pooler.server_version_greater('10.0') else 'xlog_location',
167167
'waiting' if Pooler.server_version_less('9.6.0') else 'case when wait_event_type is null then false '
168168
' else true end as waiting',
169-
'(pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn))::int AS send_lag, '
170-
'(pg_wal_lsn_diff(sent_lsn, flush_lsn))::int AS receive_lag, '
171-
'(pg_wal_lsn_diff(sent_lsn, write_lsn))::int AS write_lag, '
172-
'(pg_wal_lsn_diff(write_lsn, flush_lsn))::int AS flush_lag, '
173-
'(pg_wal_lsn_diff(flush_lsn, replay_lsn))::int AS replay_lag,' if Pooler.server_version_greater('10.0') else '',
169+
'coalesce((pg_wal_lsn_diff(pg_current_wal_lsn(), sent_lsn))::int, 0) AS send_lag, '
170+
'coalesce((pg_wal_lsn_diff(sent_lsn, flush_lsn))::int, 0) AS receive_lag, '
171+
'coalesce((pg_wal_lsn_diff(sent_lsn, write_lsn))::int, 0) AS write_lag, '
172+
'coalesce((pg_wal_lsn_diff(write_lsn, flush_lsn))::int, 0) AS flush_lag, '
173+
'coalesce((pg_wal_lsn_diff(flush_lsn, replay_lsn))::int, 0) AS replay_lag,' if Pooler.server_version_greater('10.0') else '',
174174
'wal_lsn' if Pooler.server_version_greater('10.0') else 'xlog_location',
175175
'send_lag INTEGER, receive_lag INTEGER, write_lag INTEGER, flush_lag INTEGER, replay_lag INTEGER,' if Pooler.server_version_greater('10.0')
176176
else '',

0 commit comments

Comments
 (0)