Skip to content

Commit 05610ae

Browse files
committed
test: show requests/batch_size on loadtest report
1 parent 5ccf33e commit 05610ae

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

nix/loadtest.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ writeShellScriptBin "net-loadtest" ''
7878
fi
7979
8080
net-with-nginx xpg --options "-c log_min_messages=WARNING $batch_size_opt" \
81-
psql -c "call wait_for_many_gets($reqs)" -c "\pset format csv" -c "\o $query_csv" -c "select * from pg_net_stats" > /dev/null &
81+
psql -c "call wait_for_many_gets($reqs)" -c "\pset format csv" -c "\o $query_csv" -c "select * from run" > /dev/null &
8282
8383
# wait for process to start so we can capture it with psrecord
8484
sleep 2

test/utils/loadtest.sql

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
create table time_taken (time_taken interval);
2-
3-
create view pg_net_stats as
4-
select
5-
count(*) filter (where error_msg is null) as request_successes,
6-
count(*) filter (where error_msg is not null) as request_failures,
7-
(select error_msg from net._http_response where error_msg is not null order by id desc limit 1) as last_failure_error,
8-
(select time_taken from time_taken limit 1) as time_taken
9-
from net._http_response;
1+
create table run (
2+
requests int,
3+
batch_size int,
4+
time_taken interval,
5+
request_successes bigint,
6+
request_failures bigint,
7+
last_failure_error text
8+
);
109

1110
-- loadtest using many gets, used to be called `repro_timeouts`
1211
create or replace procedure wait_for_many_gets(number_of_requests int default 10000, url text default 'http://localhost:8080') as $$
1312
declare
1413
last_id bigint;
1514
first_time timestamptz;
1615
second_time timestamptz;
17-
time_taken interval;
16+
17+
request_successes bigint;
18+
request_failures bigint;
19+
last_failure_error text;
1820
begin
1921
delete from net._http_response;
2022

@@ -33,8 +35,15 @@ begin
3335

3436
select clock_timestamp() into second_time;
3537

36-
select age(second_time, first_time) into time_taken;
38+
select
39+
count(*) filter (where error_msg is null),
40+
count(*) filter (where error_msg is not null),
41+
(select error_msg from net._http_response where error_msg is not null order by id desc limit 1)
42+
into request_successes, request_failures, last_failure_error
43+
from net._http_response;
3744

38-
insert into time_taken values (time_taken);
45+
insert into run values (
46+
number_of_requests, current_setting('pg_net.batch_size')::int, age(second_time, first_time),
47+
request_successes, request_failures, last_failure_error);
3948
end;
4049
$$ language plpgsql;

0 commit comments

Comments
 (0)