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.
This commit is contained in:
James Campbell 2025-06-17 01:16:57 -04:00
parent b981a9ad36
commit 9225e745b0
Signed by: james
GPG Key ID: 2287C33A40DC906A

View File

@ -38,7 +38,7 @@ metrics:
hit_ratios: hit_ratios:
type: row type: row
query: 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 # Debugging
ntables: ntables: