-- No response hook: benchmarks must not be limited by Lua body processing. -- Known payload/status/headers are verified separately before measurement. done = function(summary, latency, requests) io.write("RUSTPROXY_BENCH_JSON {") io.write(string.format('"requests":%d,"duration_us":%d,"bytes":%d,', summary.requests, summary.duration, summary.bytes)) io.write(string.format('"p50_us":%.3f,"p95_us":%.3f,"p99_us":%.3f,', latency:percentile(50), latency:percentile(95), latency:percentile(99))) io.write(string.format('"latency_mean_us":%.3f,"latency_max_us":%.3f,', latency.mean, latency.max)) io.write(string.format('"errors_connect":%d,"errors_read":%d,"errors_write":%d,"errors_timeout":%d,"errors_status":%d', summary.errors.connect, summary.errors.read, summary.errors.write, summary.errors.timeout, summary.errors.status)) io.write("}\n") end