@@ -13,7 +13,7 @@ class ArchiveCommand(Plugin):
13
13
query_agent_count_files = """
14
14
WITH values AS (
15
15
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,
17
17
setting::bigint AS segment_size,
18
18
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
19
19
('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):
23
23
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
24
24
FROM pg_settings, pg_stat_archiver
25
25
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
27
27
FROM values;
28
28
"""
29
29
query_agent_size_files = """
30
30
WITH values AS (
31
31
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,
33
33
setting::bigint AS segment_size,
34
34
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
35
35
('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):
39
39
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
40
40
FROM pg_settings, pg_stat_archiver
41
41
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
43
43
FROM values;
44
44
"""
45
45
@@ -61,7 +61,7 @@ def run(self, zbx):
61
61
query_queue = """
62
62
WITH values AS (
63
63
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,
65
65
setting::bigint AS segment_size,
66
66
('x' || substring(pg_stat_archiver.last_archived_wal from 9 for 8))::bit(32)::int AS last_wal_div,
67
67
('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):
71
71
('x' || substring(pg_{1}_name(pg_current_{0}()) from 17 for 8))::bit(32)::int END AS current_wal_mod
72
72
FROM pg_settings, pg_stat_archiver
73
73
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
76
76
FROM values;
77
77
"""
78
78
0 commit comments