Skip to content

Commit c3e9b85

Browse files
committed
fix: updated Archive Queue query to fit PG 10- wal_segment_size
1 parent 6ca556a commit c3e9b85

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

mamonsu/plugins/pgsql/archive_command.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@ class ArchiveCommand(Plugin):
1010
Interval = 60
1111

1212
# if streaming replication is on, archive queue length and size will always be 0 for replicas
13+
14+
# TODO:
15+
# - check type compatibility
16+
# - check coalesce operator need
1317
query_agent_count_files = """
1418
WITH values AS (
1519
SELECT
16-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
20+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
1721
setting::bigint AS segment_size,
1822
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
1923
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -29,7 +33,7 @@ class ArchiveCommand(Plugin):
2933
query_agent_size_files = """
3034
WITH values AS (
3135
SELECT
32-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
36+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
3337
setting::bigint AS segment_size,
3438
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
3539
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -61,7 +65,7 @@ def run(self, zbx):
6165
query_queue = """
6266
WITH values AS (
6367
SELECT
64-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
68+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
6569
setting::bigint AS segment_size,
6670
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
6771
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,

mamonsu/tools/bootstrap/sql.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
RETURNS TABLE(COUNT_FILES BIGINT, SIZE_FILES BIGINT) AS $$
114114
WITH values AS (
115115
SELECT
116-
4096/(coalesce(pg_settings.setting::bigint/1024/1024, 1)) AS segment_parts_count,
116+
4096/(ceil(pg_settings.setting::numeric/1024/1024)) AS segment_parts_count,
117117
setting::bigint AS segment_size,
118118
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
119119
('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,

0 commit comments

Comments
 (0)