Client
Application
- container made with jib running on 8 core, 8 GB ram Virtual Machine
Database
- MySQL ver 5.7.29 w/ over 10M rows in the table
# Database Connection | RPS | Max RPS | # Non 200 Requests | Avg Latency (ms) | Total Test Time (mm:ss) |
---|---|---|---|---|---|
10 | 2,499.6 | 3,009.5 | 0 | 159.15 | 13:22 |
30 | 3,321.7 | 4,130.5 | 6 | 118.85 | 10:04 |
50 | 3,278.2 | 3,998.5 | 9 | 120 | 10:12 |
# Database Connection | RPS | Max RPS | # Non 200 Requests | Avg Latency (ms) | Total Test Time (mm:ss) |
---|---|---|---|---|---|
10 | 2,800.7 | 3,628 | 0 | 142.12 | 11:56 |
30 | 3,801.7 | 4,654.5 | 11 | 103.32 | 08:48 |
50 | 3,999.2 | 4,792 | 111 | 97.27 | 08:22 |
- create mysql database
grafana
- create mysql table and add sample data with below scripts
create table grafana.dashboard
(
id bigint auto_increment primary key,
version int not null,
title varchar(189) not null
);
INSERT INTO grafana.dashboard (id, version, title)
VALUES (1, 12, 'Sample Dashboard');
- create user
grafana
with passwordgrafana
and grant read privilege ongrafana
database
- Replace
host
value in application.conf with host address of your choice. ex) localhost
- choose the implementation of your choice
- Exposed
- Jasync-sql
- Run Application.kt
- Send http request to test functionality
curl --request GET 'http://localhost:8080/dashboards/1'