Skip to content

Commit 32cd2da

Browse files
committed
fix: added pooler custom parameters for XLOG plugin
1 parent 478da6d commit 32cd2da

File tree

2 files changed

+14
-21
lines changed

2 files changed

+14
-21
lines changed

mamonsu/plugins/pgsql/driver/pool.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,9 @@ class Pool(object):
1414
" END",
1515
'select mamonsu.timestamp_get()'
1616
),
17-
'count_xlog_files': (
18-
"WITH list(filename) as (SELECT * FROM pg_catalog.pg_ls_dir('pg_xlog')) SELECT COUNT(*)::BIGINT FROM list WHERE filename similar to '[0-9A-F]{24}'",
19-
'select mamonsu.count_xlog_files()'
20-
),
2117
'count_wal_files': (
22-
"WITH list(filename) as (SELECT * FROM pg_catalog.pg_ls_dir('pg_wal')) SELECT COUNT(*)::BIGINT FROM list WHERE filename similar to '[0-9A-F]{24}'",
23-
'select mamonsu.count_wal_files()'
18+
"WITH list(filename) as (SELECT * FROM pg_catalog.pg_ls_dir('pg_{0}')) SELECT COUNT(*)::BIGINT FROM list WHERE filename similar to '[0-9A-F]{24}'",
19+
'select mamonsu.count_{0}_files()'
2420
),
2521
'count_autovacuum': (
2622
"select count(*) from pg_catalog.pg_stat_activity where "
@@ -37,19 +33,12 @@ class Pool(object):
3733
),
3834
'wal_lag_lsn': (
3935
"SELECT application_name, " \
40-
" flush_lag, replay_lag, write_lag, " \
41-
" pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS total_lag " \
36+
" {0} " \
37+
" pg_{1}_{2}_diff(pg_current_{1}_{2}(), replay_{2}) AS total_lag " \
4238
" FROM pg_stat_replication;",
4339
" SELECT application_name, " \
44-
" flush_lag, replay_lag, write_lag, total_lag " \
45-
" FROM mamonsu.count_wal_lag_lsn()"
46-
),
47-
'xlog_lag_lsn': (
48-
"SELECT application_name, " \
49-
"pg_xlog_location_diff(pg_current_xlog_location(), replay_location) AS total_lag " \
50-
"FROM pg_stat_replication;",
51-
"SELECT application_name, total_lag "\
52-
"FROM mamonsu.count_xlog_lag_lsn()"
40+
" {0} total_lag " \
41+
" FROM mamonsu.count_{1}_lag_lsn()"
5342
),
5443
}
5544

mamonsu/plugins/pgsql/xlog.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ def run(self, zbx):
6767
else:
6868
if Pooler.server_version_greater('10.0'):
6969
result = Pooler.query(self.query_wal_lsn_diff)
70-
result_lags = Pooler.run_sql_type('wal_lag_lsn')
70+
result_lags = Pooler.run_sql_type('wal_lag_lsn', args=[' flush_lag, replay_lag, write_lag, ',
71+
'wal',
72+
'lsn'])
7173
if result_lags:
7274
lags = []
7375
for info in result_lags:
@@ -84,7 +86,9 @@ def run(self, zbx):
8486
del lags
8587
else:
8688
result = Pooler.query(self.query_xlog_lsn_diff)
87-
result_lags = Pooler.run_sql_type('xlog_lag_lsn')
89+
result_lags = Pooler.run_sql_type('wal_lag_lsn', args=[' ',
90+
'xlog',
91+
'location'])
8892
if result_lags:
8993
lags = []
9094
for info in result_lags:
@@ -99,9 +103,9 @@ def run(self, zbx):
99103

100104
# count of xlog files
101105
if Pooler.server_version_greater('10.0'):
102-
result = Pooler.run_sql_type('count_wal_files')
106+
result = Pooler.run_sql_type('count_wal_files', args=['wal'])
103107
else:
104-
result = Pooler.run_sql_type('count_xlog_files')
108+
result = Pooler.run_sql_type('count_wal_files', args=['xlog'])
105109
zbx.send(self.key_count_wall.format("[]"), int(result[0][0]))
106110

107111
non_active_slots = Pooler.query("""SELECT count(*) FROM pg_replication_slots WHERE active = 'false';""")

0 commit comments

Comments
 (0)