diff --git a/artifacts/load-report-20260128.json b/artifacts/load-report-20260128.json new file mode 100644 index 00000000..6bee4d63 --- /dev/null +++ b/artifacts/load-report-20260128.json @@ -0,0 +1,158 @@ +{ + "timestamp": "2026-01-28T19:39:33.306Z", + "config": { + "duration": 60, + "clients": 100, + "rate": 10, + "relay": "ws://localhost:8889", + "force": false + }, + "metrics": { + "total_sent": 10103, + "total_received": 10102, + "errors": 0, + "throughput_sent": 168.38333333333333, + "throughput_recv": 168.36666666666667, + "latency_ms": { + "p50": 5.760848000005353, + "p95": 16.885834000000614, + "p99": 19.095236999999997 + }, + "operation_times_ms": { + "build_avg": 0.06137749958035674, + "sign_avg": 5.593697509749546 + }, + "resource_usage": [ + { + "timestamp": 1769629118335, + "cpuPercent": 105.49, + "rss": 97357824, + "heapUsed": 19757664 + }, + { + "timestamp": 1769629123351, + "cpuPercent": 104.35, + "rss": 99233792, + "heapUsed": 15914376 + }, + { + "timestamp": 1769629128354, + "cpuPercent": 102.79, + "rss": 100491264, + "heapUsed": 18964920 + }, + { + "timestamp": 1769629133354, + "cpuPercent": 101.55, + "rss": 119353344, + "heapUsed": 18267024 + }, + { + "timestamp": 1769629138356, + "cpuPercent": 103.91, + "rss": 120532992, + "heapUsed": 30091568 + }, + { + "timestamp": 1769629143359, + "cpuPercent": 100.94, + "rss": 121270272, + "heapUsed": 26106864 + }, + { + "timestamp": 1769629148359, + "cpuPercent": 100.34, + "rss": 122187776, + "heapUsed": 32618248 + }, + { + "timestamp": 1769629153363, + "cpuPercent": 100.87, + "rss": 122843136, + "heapUsed": 26208872 + }, + { + "timestamp": 1769629158369, + "cpuPercent": 99.95, + "rss": 123981824, + "heapUsed": 24602000 + }, + { + "timestamp": 1769629163370, + "cpuPercent": 100.74, + "rss": 124456960, + "heapUsed": 31364336 + }, + { + "timestamp": 1769629168370, + "cpuPercent": 100.41, + "rss": 125243392, + "heapUsed": 30159064 + } + ], + "relay_resource_usage": [ + { + "timestamp": 1769629118395, + "cpuPercent": 13.4, + "memPercent": 0.8 + }, + { + "timestamp": 1769629123374, + "cpuPercent": 9.8, + "memPercent": 0.9 + }, + { + "timestamp": 1769629128374, + "cpuPercent": 8.2, + "memPercent": 0.9 + }, + { + "timestamp": 1769629133396, + "cpuPercent": 7.7, + "memPercent": 0.8 + }, + { + "timestamp": 1769629138376, + "cpuPercent": 7, + "memPercent": 0.9 + }, + { + "timestamp": 1769629143379, + "cpuPercent": 6.3, + "memPercent": 0.9 + }, + { + "timestamp": 1769629148402, + "cpuPercent": 5.9, + "memPercent": 0.9 + }, + { + "timestamp": 1769629153384, + "cpuPercent": 5.5, + "memPercent": 1 + }, + { + "timestamp": 1769629158401, + "cpuPercent": 5.4, + "memPercent": 1 + }, + { + "timestamp": 1769629163391, + "cpuPercent": 5.2, + "memPercent": 1 + }, + { + "timestamp": 1769629168401, + "cpuPercent": 4.9, + "memPercent": 1 + } + ], + "error_breakdown": {} + }, + "bottlenecks": [ + "None detected" + ], + "remediation": [ + "None required" + ] +} \ No newline at end of file diff --git a/artifacts/load-report.json b/artifacts/load-report.json new file mode 100644 index 00000000..6bee4d63 --- /dev/null +++ b/artifacts/load-report.json @@ -0,0 +1,158 @@ +{ + "timestamp": "2026-01-28T19:39:33.306Z", + "config": { + "duration": 60, + "clients": 100, + "rate": 10, + "relay": "ws://localhost:8889", + "force": false + }, + "metrics": { + "total_sent": 10103, + "total_received": 10102, + "errors": 0, + "throughput_sent": 168.38333333333333, + "throughput_recv": 168.36666666666667, + "latency_ms": { + "p50": 5.760848000005353, + "p95": 16.885834000000614, + "p99": 19.095236999999997 + }, + "operation_times_ms": { + "build_avg": 0.06137749958035674, + "sign_avg": 5.593697509749546 + }, + "resource_usage": [ + { + "timestamp": 1769629118335, + "cpuPercent": 105.49, + "rss": 97357824, + "heapUsed": 19757664 + }, + { + "timestamp": 1769629123351, + "cpuPercent": 104.35, + "rss": 99233792, + "heapUsed": 15914376 + }, + { + "timestamp": 1769629128354, + "cpuPercent": 102.79, + "rss": 100491264, + "heapUsed": 18964920 + }, + { + "timestamp": 1769629133354, + "cpuPercent": 101.55, + "rss": 119353344, + "heapUsed": 18267024 + }, + { + "timestamp": 1769629138356, + "cpuPercent": 103.91, + "rss": 120532992, + "heapUsed": 30091568 + }, + { + "timestamp": 1769629143359, + "cpuPercent": 100.94, + "rss": 121270272, + "heapUsed": 26106864 + }, + { + "timestamp": 1769629148359, + "cpuPercent": 100.34, + "rss": 122187776, + "heapUsed": 32618248 + }, + { + "timestamp": 1769629153363, + "cpuPercent": 100.87, + "rss": 122843136, + "heapUsed": 26208872 + }, + { + "timestamp": 1769629158369, + "cpuPercent": 99.95, + "rss": 123981824, + "heapUsed": 24602000 + }, + { + "timestamp": 1769629163370, + "cpuPercent": 100.74, + "rss": 124456960, + "heapUsed": 31364336 + }, + { + "timestamp": 1769629168370, + "cpuPercent": 100.41, + "rss": 125243392, + "heapUsed": 30159064 + } + ], + "relay_resource_usage": [ + { + "timestamp": 1769629118395, + "cpuPercent": 13.4, + "memPercent": 0.8 + }, + { + "timestamp": 1769629123374, + "cpuPercent": 9.8, + "memPercent": 0.9 + }, + { + "timestamp": 1769629128374, + "cpuPercent": 8.2, + "memPercent": 0.9 + }, + { + "timestamp": 1769629133396, + "cpuPercent": 7.7, + "memPercent": 0.8 + }, + { + "timestamp": 1769629138376, + "cpuPercent": 7, + "memPercent": 0.9 + }, + { + "timestamp": 1769629143379, + "cpuPercent": 6.3, + "memPercent": 0.9 + }, + { + "timestamp": 1769629148402, + "cpuPercent": 5.9, + "memPercent": 0.9 + }, + { + "timestamp": 1769629153384, + "cpuPercent": 5.5, + "memPercent": 1 + }, + { + "timestamp": 1769629158401, + "cpuPercent": 5.4, + "memPercent": 1 + }, + { + "timestamp": 1769629163391, + "cpuPercent": 5.2, + "memPercent": 1 + }, + { + "timestamp": 1769629168401, + "cpuPercent": 4.9, + "memPercent": 1 + } + ], + "error_breakdown": {} + }, + "bottlenecks": [ + "None detected" + ], + "remediation": [ + "None required" + ] +} \ No newline at end of file diff --git a/scripts/agent/load-test.mjs b/scripts/agent/load-test.mjs index 87fa9450..20087fd1 100644 --- a/scripts/agent/load-test.mjs +++ b/scripts/agent/load-test.mjs @@ -466,6 +466,13 @@ function generateReport() { report.remediation.push('Mark as requires-security-review. Check if running in a constrained environment or if crypto implementation is suboptimal.'); } + if (report.bottlenecks.length === 0) { + report.bottlenecks.push('None detected'); + } + if (report.remediation.length === 0) { + report.remediation.push('None required'); + } + // Report File const dateStr = new Date().toISOString().slice(0, 10).replace(/-/g, ''); // YYYYMMDD const filename = `load-report-${dateStr}.json`;