This scenario runs 4 subgraphs and a GraphQL gateway with Federation v1 spec, and runs a heavy query. It's being executed with a constant amount of VUs over a fixed amount of time. It measure things like memory usage, CPU usage, average RPS. It also includes a summary of the entire execution, and metrics information about HTTP execution times.
This scenario was running 300 VUs over 600s
Gateway | RPS ⬇️ | Requests | Duration | Notes |
---|---|---|---|---|
apollo-router | 175 | 105605 total, 0 failed | avg: 923ms, p95: 2598ms | ✅ |
wundergraph | 168 | 100951 total, 0 failed | avg: 900ms, p95: 2583ms | ✅ |
mesh-supergraph-bun | 120 | 72820 total, 0 failed | avg: 2400ms, p95: 4116ms | ✅ |
mesh-bun | 111 | 67229 total, 0 failed | avg: 2606ms, p95: 4439ms | ✅ |
mesh | 94 | 57124 total, 0 failed | avg: 3092ms, p95: 3723ms | ✅ |
mesh-supergraph | 94 | 56839 total, 0 failed | avg: 3109ms, p95: 3815ms | ✅ |
apollo-server | 69 | 41971 total, 980 failed | avg: 4282ms, p95: 3174ms | ❌ 980 failed requests, 980 non-200 responses, 980 unexpected GraphQL errors |
apollo-server-node16 | 67 | 40578 total, 0 failed | avg: 4432ms, p95: 6252ms | ✅ |
mercurius | 50 | 30432 total, 0 failed | avg: 5912ms, p95: 6121ms | ✅ |
Summary for: `apollo-router`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 316815 ✗ 0
data_received..................: 9.3 GB 15 MB/s
data_sent......................: 125 MB 209 kB/s
http_req_blocked...............: avg=816.43µs min=1.32µs med=3.34µs max=2.72s p(90)=5.35µs p(95)=6.38µs
http_req_connecting............: avg=540.04µs min=0s med=0s max=2.72s p(90)=0s p(95)=0s
http_req_duration..............: avg=923.34ms min=8.94ms med=672.12ms max=7.56s p(90)=2.1s p(95)=2.59s
{ expected_response:true }...: avg=923.34ms min=8.94ms med=672.12ms max=7.56s p(90)=2.1s p(95)=2.59s
http_req_failed................: 0.00% ✓ 0 ✗ 105605
http_req_receiving.............: avg=390.62ms min=22.87µs med=77.42µs max=6.81s p(90)=1.53s p(95)=2.05s
http_req_sending...............: avg=21.36ms min=6.43µs med=14.92µs max=5.57s p(90)=41.22µs p(95)=10.27ms
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=511.35ms min=8.53ms med=481.5ms max=2.78s p(90)=912.48ms p(95)=1.08s
http_reqs......................: 105605 175.681933/s
iteration_duration.............: avg=1.69s min=20ms med=1.35s max=12.05s p(90)=3.61s p(95)=4.43s
iterations.....................: 105605 175.681933/s
vus............................: 64 min=64 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `wundergraph`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 302853 ✗ 0
data_received..................: 8.9 GB 15 MB/s
data_sent......................: 120 MB 199 kB/s
http_req_blocked...............: avg=1.88ms min=1.45µs med=3.4µs max=3.68s p(90)=5.24µs p(95)=6.39µs
http_req_connecting............: avg=1.44ms min=0s med=0s max=3.1s p(90)=0s p(95)=0s
http_req_duration..............: avg=900.36ms min=8.25ms med=703.28ms max=7.9s p(90)=1.99s p(95)=2.58s
{ expected_response:true }...: avg=900.36ms min=8.25ms med=703.28ms max=7.9s p(90)=1.99s p(95)=2.58s
http_req_failed................: 0.00% ✓ 0 ✗ 100951
http_req_receiving.............: avg=346.8ms min=26.46µs med=80.32µs max=6.52s p(90)=1.38s p(95)=2.08s
http_req_sending...............: avg=20.72ms min=6.74µs med=15.43µs max=5.24s p(90)=35.68µs p(95)=460.66µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=532.84ms min=8.18ms med=488.65ms max=4.82s p(90)=989.29ms p(95)=1.15s
http_reqs......................: 100951 168.023757/s
iteration_duration.............: avg=1.77s min=19.01ms med=1.44s max=14.01s p(90)=3.74s p(95)=4.56s
iterations.....................: 100951 168.023757/s
vus............................: 300 min=300 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `mesh-supergraph-bun`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 218460 ✗ 0
data_received..................: 6.4 GB 11 MB/s
data_sent......................: 86 MB 144 kB/s
http_req_blocked...............: avg=49.21µs min=1.25µs med=3.06µs max=257.38ms p(90)=5.02µs p(95)=6.1µs
http_req_connecting............: avg=19.15µs min=0s med=0s max=24.96ms p(90)=0s p(95)=0s
http_req_duration..............: avg=2.39s min=133.34ms med=2.09s max=5.27s p(90)=3.9s p(95)=4.11s
{ expected_response:true }...: avg=2.39s min=133.34ms med=2.09s max=5.27s p(90)=3.9s p(95)=4.11s
http_req_failed................: 0.00% ✓ 0 ✗ 72820
http_req_receiving.............: avg=20.25ms min=29.02µs med=67.38µs max=1.77s p(90)=6.15ms p(95)=124.87ms
http_req_sending...............: avg=2.02ms min=7.04µs med=13.69µs max=1.33s p(90)=33.63µs p(95)=194.5µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=2.37s min=133.14ms med=2.07s max=5.27s p(90)=3.88s p(95)=4.1s
http_reqs......................: 72820 120.98932/s
iteration_duration.............: avg=2.47s min=140.99ms med=2.14s max=6.08s p(90)=4s p(95)=4.23s
iterations.....................: 72820 120.98932/s
vus............................: 188 min=188 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `mesh-bun`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 201687 ✗ 0
data_received..................: 5.9 GB 9.8 MB/s
data_sent......................: 80 MB 132 kB/s
http_req_blocked...............: avg=32.64µs min=1.37µs med=3.06µs max=214.61ms p(90)=4.96µs p(95)=6µs
http_req_connecting............: avg=14.45µs min=0s med=0s max=19.4ms p(90)=0s p(95)=0s
http_req_duration..............: avg=2.6s min=285.51ms med=2.25s max=5.68s p(90)=4.22s p(95)=4.43s
{ expected_response:true }...: avg=2.6s min=285.51ms med=2.25s max=5.68s p(90)=4.22s p(95)=4.43s
http_req_failed................: 0.00% ✓ 0 ✗ 67229
http_req_receiving.............: avg=23.12ms min=30.14µs med=66.52µs max=1.38s p(90)=12.22ms p(95)=154.95ms
http_req_sending...............: avg=1.64ms min=7.7µs med=13.56µs max=860.63ms p(90)=31.89µs p(95)=144.78µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=2.58s min=281.79ms med=2.24s max=5.68s p(90)=4.2s p(95)=4.42s
http_reqs......................: 67229 111.583623/s
iteration_duration.............: avg=2.68s min=302.55ms med=2.31s max=5.89s p(90)=4.3s p(95)=4.54s
iterations.....................: 67229 111.583623/s
vus............................: 136 min=136 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `mesh`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 171372 ✗ 0
data_received..................: 5.0 GB 8.3 MB/s
data_sent......................: 68 MB 113 kB/s
http_req_blocked...............: avg=74.34µs min=1.2µs med=3.46µs max=136.04ms p(90)=5.38µs p(95)=6.33µs
http_req_connecting............: avg=49.29µs min=0s med=0s max=29.21ms p(90)=0s p(95)=0s
http_req_duration..............: avg=3.09s min=1.71s med=3.07s max=6.9s p(90)=3.56s p(95)=3.72s
{ expected_response:true }...: avg=3.09s min=1.71s med=3.07s max=6.9s p(90)=3.56s p(95)=3.72s
http_req_failed................: 0.00% ✓ 0 ✗ 57124
http_req_receiving.............: avg=9.82ms min=31.42µs med=73.91µs max=1.57s p(90)=5.11ms p(95)=32.58ms
http_req_sending...............: avg=1.03ms min=7.29µs med=15.82µs max=1.05s p(90)=33.08µs p(95)=127.07µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=3.08s min=1.56s med=3.06s max=6.38s p(90)=3.54s p(95)=3.7s
http_reqs......................: 57124 94.879958/s
iteration_duration.............: avg=3.15s min=1.75s med=3.13s max=6.98s p(90)=3.64s p(95)=3.82s
iterations.....................: 57124 94.879958/s
vus............................: 36 min=36 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `mesh-supergraph`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 170517 ✗ 0
data_received..................: 5.0 GB 8.3 MB/s
data_sent......................: 68 MB 112 kB/s
http_req_blocked...............: avg=57.19µs min=1.44µs med=4.9µs max=392.41ms p(90)=6.99µs p(95)=8.02µs
http_req_connecting............: avg=21.39µs min=0s med=0s max=32.99ms p(90)=0s p(95)=0s
http_req_duration..............: avg=3.1s min=1.4s med=3.15s max=7.61s p(90)=3.67s p(95)=3.81s
{ expected_response:true }...: avg=3.1s min=1.4s med=3.15s max=7.61s p(90)=3.67s p(95)=3.81s
http_req_failed................: 0.00% ✓ 0 ✗ 56839
http_req_receiving.............: avg=8.34ms min=32.4µs med=95.72µs max=966.38ms p(90)=5.59ms p(95)=28.28ms
http_req_sending...............: avg=1.18ms min=8.32µs med=25.89µs max=766.21ms p(90)=43.63µs p(95)=149.49µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=3.09s min=1.4s med=3.14s max=7.58s p(90)=3.66s p(95)=3.79s
http_reqs......................: 56839 94.378252/s
iteration_duration.............: avg=3.17s min=1.43s med=3.21s max=7.67s p(90)=3.76s p(95)=3.91s
iterations.....................: 56839 94.378252/s
vus............................: 96 min=96 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `apollo-server`
K6 Output
✗ response code was 200
↳ 97% — ✓ 40991 / ✗ 980
✗ no graphql errors
↳ 97% — ✓ 40991 / ✗ 980
✓ valid response structure
checks.........................: 98.43% ✓ 122973 ✗ 1960
data_received..................: 3.6 GB 6.0 MB/s
data_sent......................: 50 MB 83 kB/s
http_req_blocked...............: avg=112.72µs min=1.27µs med=2.62µs max=126.41ms p(90)=4.48µs p(95)=6.45µs
http_req_connecting............: avg=103.04µs min=0s med=0s max=70.13ms p(90)=0s p(95)=0s
http_req_duration..............: avg=4.28s min=472.77ms med=2.94s max=1m0s p(90)=3.04s p(95)=3.17s
{ expected_response:true }...: avg=2.94s min=472.77ms med=2.94s max=59.16s p(90)=3.03s p(95)=3.07s
http_req_failed................: 2.33% ✓ 980 ✗ 40991
http_req_receiving.............: avg=222.36µs min=0s med=87µs max=177.62ms p(90)=127.88µs p(95)=171.93µs
http_req_sending...............: avg=109.59µs min=7.88µs med=13.65µs max=77.4ms p(90)=27µs p(95)=42.28µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=4.28s min=472.63ms med=2.94s max=1m0s p(90)=3.04s p(95)=3.17s
http_reqs......................: 41971 69.681905/s
iteration_duration.............: avg=4.29s min=484.56ms med=2.95s max=1m0s p(90)=3.06s p(95)=3.19s
iterations.....................: 41971 69.681905/s
vus............................: 67 min=67 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `apollo-server-node16`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 121734 ✗ 0
data_received..................: 3.6 GB 5.9 MB/s
data_sent......................: 48 MB 80 kB/s
http_req_blocked...............: avg=11.54µs min=1.34µs med=2.76µs max=30.85ms p(90)=4.34µs p(95)=5.17µs
http_req_connecting............: avg=4.73µs min=0s med=0s max=15.47ms p(90)=0s p(95)=0s
http_req_duration..............: avg=4.43s min=126.6ms med=4.16s max=9.68s p(90)=5.83s p(95)=6.25s
{ expected_response:true }...: avg=4.43s min=126.6ms med=4.16s max=9.68s p(90)=5.83s p(95)=6.25s
http_req_failed................: 0.00% ✓ 0 ✗ 40578
http_req_receiving.............: avg=1ms min=34.96µs med=85.82µs max=255.79ms p(90)=147.79µs p(95)=534.18µs
http_req_sending...............: avg=166.52µs min=8.05µs med=13.93µs max=141.94ms p(90)=26.49µs p(95)=35.2µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=4.43s min=126.51ms med=4.16s max=9.68s p(90)=5.82s p(95)=6.25s
http_reqs......................: 40578 67.272112/s
iteration_duration.............: avg=4.44s min=135.97ms med=4.17s max=9.73s p(90)=5.85s p(95)=6.27s
iterations.....................: 40578 67.272112/s
vus............................: 60 min=60 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview
Summary for: `mercurius`
K6 Output
✓ response code was 200
✓ no graphql errors
✓ valid response structure
checks.........................: 100.00% ✓ 91296 ✗ 0
data_received..................: 2.7 GB 4.4 MB/s
data_sent......................: 36 MB 60 kB/s
http_req_blocked...............: avg=55.13µs min=1.41µs med=3.99µs max=22.54ms p(90)=5.55µs p(95)=6.2µs
http_req_connecting............: avg=47.36µs min=0s med=0s max=22.51ms p(90)=0s p(95)=0s
http_req_duration..............: avg=5.91s min=298.06ms med=5.97s max=13.18s p(90)=6.08s p(95)=6.12s
{ expected_response:true }...: avg=5.91s min=298.06ms med=5.97s max=13.18s p(90)=6.08s p(95)=6.12s
http_req_failed................: 0.00% ✓ 0 ✗ 30432
http_req_receiving.............: avg=213.22µs min=37.13µs med=101.62µs max=101.96ms p(90)=138µs p(95)=156.08µs
http_req_sending...............: avg=54.28µs min=8.55µs med=23.29µs max=27.79ms p(90)=33.6µs p(95)=37.61µs
http_req_tls_handshaking.......: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
http_req_waiting...............: avg=5.91s min=297.69ms med=5.97s max=13.18s p(90)=6.08s p(95)=6.12s
http_reqs......................: 30432 50.562233/s
iteration_duration.............: avg=5.92s min=319.96ms med=5.98s max=13.21s p(90)=6.09s p(95)=6.13s
iterations.....................: 30432 50.562233/s
vus............................: 157 min=157 max=300
vus_max........................: 300 min=300 max=300
Performance Overview
Subgraphs Overview
HTTP Overview