From 3f19640715fcec26a24c04753dad5a5be51b3d8c Mon Sep 17 00:00:00 2001 From: Ibrar Ahmed Date: Tue, 2 Feb 2021 17:55:31 +0000 Subject: [PATCH] PG-172: Exponential histogram for time buckets. --- pg_stat_monitor--1.0.sql | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pg_stat_monitor--1.0.sql b/pg_stat_monitor--1.0.sql index 601009f..5b663db 100644 --- a/pg_stat_monitor--1.0.sql +++ b/pg_stat_monitor--1.0.sql @@ -177,6 +177,19 @@ SELECT $$ LANGUAGE SQL PARALLEL SAFE; +CREATE OR REPLACE FUNCTION histogram(_bucket int, _quryid text) +RETURNS SETOF RECORD AS $$ +DECLARE + rec record; +BEGIN +for rec in + with stat as (select queryid, bucket, unnest(range()) as range, unnest(resp_calls)::int freq from pg_stat_monitor) select range, freq, repeat('■', (freq::float / max(freq) over() * 30)::int) as bar from stat where queryid = _quryid and bucket = _bucket +loop +return next rec; +end loop; +END +$$ language plpgsql; + GRANT SELECT ON pg_stat_monitor_settings TO PUBLIC; -- Don't want this to be available to non-superusers. REVOKE ALL ON FUNCTION pg_stat_monitor_reset() FROM PUBLIC;