@@ -13,7 +13,7 @@ class ArchiveCommand(Plugin):
1313 query_agent_count_files = """
1414 WITH values AS (
1515 SELECT
16- 4096/(coalesce (pg_settings.setting::bigint /1024/1024, 1 )) AS segment_parts_count,
16+ 4096/(ceil (pg_settings.setting::numeric /1024/1024)) AS segment_parts_count,
1717 setting::bigint AS segment_size,
1818 ('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
1919 ('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -23,13 +23,13 @@ class ArchiveCommand(Plugin):
2323 ('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
2424 FROM pg_settings, pg_stat_archiver
2525 WHERE pg_settings.name = 'wal_segment_size')
26- SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0) AS count_files
26+ SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0)::bigint AS count_files
2727 FROM values;
2828 """
2929 query_agent_size_files = """
3030 WITH values AS (
3131 SELECT
32- 4096/(coalesce (pg_settings.setting::bigint /1024/1024, 1 )) AS segment_parts_count,
32+ 4096/(ceil (pg_settings.setting::numeric /1024/1024)) AS segment_parts_count,
3333 setting::bigint AS segment_size,
3434 ('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
3535 ('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -39,7 +39,7 @@ class ArchiveCommand(Plugin):
3939 ('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
4040 FROM pg_settings, pg_stat_archiver
4141 WHERE pg_settings.name = 'wal_segment_size')
42- greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0) AS size_files
42+ greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0)::bigint AS size_files
4343 FROM values;
4444 """
4545
@@ -61,7 +61,7 @@ def run(self, zbx):
6161 query_queue = """
6262 WITH values AS (
6363 SELECT
64- 4096/(coalesce (pg_settings.setting::bigint /1024/1024, 1 )) AS segment_parts_count,
64+ 4096/(ceil (pg_settings.setting::numeric /1024/1024)) AS segment_parts_count,
6565 setting::bigint AS segment_size,
6666 ('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
6767 ('x' || substring(pg_stat_archiver.last_archived_wal from 17 for 8))::bit(32)::int AS last_wal_mod,
@@ -71,8 +71,8 @@ def run(self, zbx):
7171 ('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
7272 FROM pg_settings, pg_stat_archiver
7373 WHERE pg_settings.name = 'wal_segment_size')
74- SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0) AS count_files,
75- greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0) AS size_files
74+ SELECT greatest(coalesce((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1, 0), 0)::bigint AS count_files,
75+ greatest(coalesce(((segment_parts_count - last_wal_mod) + ((current_wal_div - last_wal_div - 1) * segment_parts_count) + current_wal_mod - 1) * segment_size, 0), 0)::bigint AS size_files
7676 FROM values;
7777 """
7878
0 commit comments