mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 14:06:20 +00:00
PG-267 Add testcase to test histogram.
This commit adds following three sql based testcases: 1) Test unique application name set by user. 2) Histogram function is working properly as desired. 3) Error on insert is shown with proper message.
This commit is contained in:
committed by
Hamid Akhtar
parent
0573be4090
commit
5aa6764041
@@ -1,28 +1,39 @@
|
||||
CREATE OR REPLACE FUNCTION generate_histogram()
|
||||
RETURNS TABLE (
|
||||
range TEXT, freq INT, bar TEXT
|
||||
) AS $$
|
||||
Declare
|
||||
bucket_id integer;
|
||||
query_id text;
|
||||
BEGIN
|
||||
select bucket into bucket_id from pg_stat_monitor order by calls desc limit 1;
|
||||
select queryid into query_id from pg_stat_monitor order by calls desc limit 1;
|
||||
--RAISE INFO 'bucket_id %', bucket_id;
|
||||
--RAISE INFO 'query_id %', query_id;
|
||||
return query
|
||||
SELECT * FROM histogram(bucket_id, query_id) AS a(range TEXT, freq INT, bar TEXT);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE OR REPLACE FUNCTION run_pg_sleep(INTEGER) RETURNS VOID AS $$
|
||||
DECLARE
|
||||
loops ALIAS FOR $1;
|
||||
BEGIN
|
||||
FOR i IN 1..loops LOOP
|
||||
--RAISE INFO 'Current timestamp: %', timeofday()::TIMESTAMP;
|
||||
RAISE INFO 'Sleep % seconds', i;
|
||||
PERFORM pg_sleep(i);
|
||||
END LOOP;
|
||||
END;
|
||||
$$ LANGUAGE 'plpgsql' STRICT;
|
||||
|
||||
CREATE EXTENSION pg_stat_monitor;
|
||||
|
||||
CREATE TABLE t1(a int);
|
||||
|
||||
SELECT pg_stat_monitor_reset();
|
||||
Set pg_stat_monitor.track='all';
|
||||
select run_pg_sleep(5);
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
SELECT substr(query, 0,50) as query, calls, resp_calls FROM pg_stat_monitor ORDER BY query COLLATE "C";
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;;
|
||||
select * from generate_histogram();
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,1000000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
|
||||
INSERT INTO t1 VALUES(generate_series(1,10000000));
|
||||
ANALYZE t1;
|
||||
SELECT count(*) FROM t1;
|
||||
|
||||
SELECT query, calls, min_time, max_time, resp_calls FROM pg_stat_monitor ORDER BY query COLLATE "C";
|
||||
SELECT * FROM histogram(0, 'F44CD1B4B33A47AF') AS a(range TEXT, freq INT, bar TEXT);
|
||||
|
||||
DROP TABLE t1;
|
||||
SELECT pg_stat_monitor_reset();
|
||||
DROP EXTENSION pg_stat_monitor;
|
||||
|
||||
Reference in New Issue
Block a user