From 9225e745b02538ff5ebd41daf81352ec2fb1a634 Mon Sep 17 00:00:00 2001 From: James Campbell Date: Tue, 17 Jun 2025 01:16:57 -0400 Subject: [PATCH] Handle division by zero possibility * When no I/O activity has been reported in pg_statio_all_tables for a database, the queries resulted in a division by zero. Cange this to a NULL instead. Still a problem for Zabbix, but maybe a little cleaner. --- sample-config/pgmon-metrics.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-config/pgmon-metrics.yml b/sample-config/pgmon-metrics.yml index e0aad5b..711e2a9 100644 --- a/sample-config/pgmon-metrics.yml +++ b/sample-config/pgmon-metrics.yml @@ -38,7 +38,7 @@ metrics: hit_ratios: type: row query: - 0: SELECT sum(heap_blks_read)::float / sum(heap_blks_read + heap_blks_hit) AS avg_heap_hit_ratio, sum(idx_blks_hit)::float / sum(idx_blks_read + idx_blks_hit) AS avg_idx_hit_ratio, sum(toast_blks_hit)::float / sum(toast_blks_read + toast_blks_hit) AS avg_toast_hit_ratio, sum(tidx_blks_hit)::float / sum(tidx_blks_read + tidx_blks_hit) AS avg_tidx_hit_ratio FROM pg_statio_all_tables + 0: SELECT sum(heap_blks_read)::float / NULLIF(sum(heap_blks_read + heap_blks_hit), 0) AS avg_heap_hit_ratio, sum(idx_blks_hit)::float / NULLIF(sum(idx_blks_read + idx_blks_hit), 0) AS avg_idx_hit_ratio, sum(toast_blks_hit)::float / NULLIF(sum(toast_blks_read + toast_blks_hit), 0) AS avg_toast_hit_ratio, sum(tidx_blks_hit)::float / NULLIF(sum(tidx_blks_read + tidx_blks_hit), 0) AS avg_tidx_hit_ratio FROM pg_statio_all_tables # Debugging ntables: