mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-03-30 15:55:49 +00:00
Capture real responses from all 32 REST endpoints + 1 WebSocket message from the production MeshCore Analyzer instance. Fixtures include nodes, packets, observers, channels, analytics, config, and health endpoints with real IDs substituted. Stored in proto/testdata/node-fixtures/ for Go port contract testing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 line
4.8 KiB
JSON
1 line
4.8 KiB
JSON
{"uptime":20112,"totalRequests":38714,"avgMs":9.5,"endpoints":{"/api/stats":{"count":24863,"avgMs":8.6,"p50Ms":9.8,"p95Ms":20.9,"maxMs":331.1},"/api/perf":{"count":3892,"avgMs":22.6,"p50Ms":17.5,"p95Ms":32.1,"maxMs":1606},"/api/analytics/subpaths":{"count":42,"avgMs":515.4,"p50Ms":0.2,"p95Ms":3261.2,"maxMs":4066.4},"/api/analytics/rf":{"count":19,"avgMs":379.3,"p50Ms":0.8,"p95Ms":2157.9,"maxMs":2157.9},"/api/packets/:id":{"count":1034,"avgMs":6.5,"p50Ms":1.2,"p95Ms":21.2,"maxMs":762.1},"/api/packets":{"count":155,"avgMs":38,"p50Ms":13.6,"p95Ms":145.1,"maxMs":339},"/api/analytics/distance":{"count":12,"avgMs":332.7,"p50Ms":3.4,"p95Ms":1677.8,"maxMs":1677.8},"/api/analytics/topology":{"count":20,"avgMs":143.6,"p50Ms":18.3,"p95Ms":1358.3,"maxMs":1358.3},"/api/channels/:hash/messages":{"count":77,"avgMs":35.4,"p50Ms":31.6,"p95Ms":77.7,"maxMs":168},"/api/nodes":{"count":277,"avgMs":9.8,"p50Ms":6.8,"p95Ms":14.8,"maxMs":48.2},"/api/nodes/:pubkey/paths":{"count":26,"avgMs":63.6,"p50Ms":61.3,"p95Ms":161.9,"maxMs":286.4},"/api/channels":{"count":51,"avgMs":28,"p50Ms":26.4,"p95Ms":84.5,"maxMs":113.4},"/api/packets/timestamps":{"count":3173,"avgMs":0.4,"p50Ms":0.3,"p95Ms":0.5,"maxMs":8.4},"/api/health":{"count":3895,"avgMs":0.3,"p50Ms":0.2,"p95Ms":0.3,"maxMs":43.8},"/api/nodes/:pubkey/health":{"count":68,"avgMs":16.6,"p50Ms":23.8,"p95Ms":33.6,"maxMs":83.2},"/api/audio-lab/buckets":{"count":8,"avgMs":136,"p50Ms":117,"p95Ms":277.2,"maxMs":277.2},"/api/analytics/hash-sizes":{"count":18,"avgMs":30,"p50Ms":0.7,"p95Ms":191.7,"maxMs":191.7},"/api/observers/:id/analytics":{"count":2,"avgMs":200.6,"p50Ms":206,"p95Ms":206,"maxMs":206},"/api/observers":{"count":154,"avgMs":1.8,"p50Ms":1.4,"p95Ms":4.3,"maxMs":9.7},"/api/analytics/channels":{"count":16,"avgMs":14.9,"p50Ms":4.6,"p95Ms":83.5,"maxMs":83.5},"/api/config/regions":{"count":257,"avgMs":0.4,"p50Ms":0.4,"p95Ms":0.5,"maxMs":7.5},"/api/nodes/:pubkey":{"count":32,"avgMs":1.6,"p50Ms":1.6,"p95Ms":3.2,"maxMs":4.8},"/api/nodes/search":{"count":67,"avgMs":0.7,"p50Ms":0.7,"p95Ms":1,"maxMs":2},"/api/config/theme":{"count":133,"avgMs":0.3,"p50Ms":0.3,"p95Ms":0.7,"maxMs":1.1},"/api/config/client":{"count":132,"avgMs":0.1,"p50Ms":0.1,"p95Ms":0.2,"maxMs":0.9},"/api/config/cache":{"count":132,"avgMs":0.1,"p50Ms":0.1,"p95Ms":0.1,"maxMs":0.5},"/api/config/map":{"count":125,"avgMs":0.1,"p50Ms":0.1,"p95Ms":0.2,"maxMs":0.4},"/api/nodes/bulk-health":{"count":3,"avgMs":4,"p50Ms":5.2,"p95Ms":5.3,"maxMs":5.3},"/api/observers/:id":{"count":2,"avgMs":5.8,"p50Ms":6.4,"p95Ms":6.4,"maxMs":6.4},"/api/iata-coords":{"count":23,"avgMs":0.3,"p50Ms":0.3,"p95Ms":0.4,"maxMs":1.7},"/api/traces/:hash":{"count":6,"avgMs":0.4,"p50Ms":0.4,"p95Ms":1,"maxMs":1}},"slowQueries":[{"path":"/api/audio-lab/buckets","ms":277.2,"time":"2026-03-27T20:07:22.469Z","status":200},{"path":"/api/perf","ms":180.2,"time":"2026-03-27T20:09:01.763Z","status":200},{"path":"/api/packets","ms":151.1,"time":"2026-03-27T20:10:58.155Z","status":200},{"path":"/api/packets","ms":108.2,"time":"2026-03-27T20:10:58.264Z","status":200},{"path":"/api/audio-lab/buckets","ms":122.7,"time":"2026-03-27T20:11:09.997Z","status":200},{"path":"/api/audio-lab/buckets","ms":109.5,"time":"2026-03-27T20:12:37.269Z","status":200},{"path":"/api/packets/4c558a42871af63f","ms":762.1,"time":"2026-03-27T20:13:05.392Z","status":200},{"path":"/api/packets","ms":105.8,"time":"2026-03-27T20:13:11.097Z","status":200},{"path":"/api/audio-lab/buckets","ms":117,"time":"2026-03-27T20:13:13.565Z","status":200},{"path":"/api/perf","ms":144.1,"time":"2026-03-27T20:14:40.082Z","status":200},{"path":"/api/stats","ms":170.3,"time":"2026-03-27T20:15:08.744Z","status":200},{"path":"/api/perf","ms":1384,"time":"2026-03-27T20:23:38.755Z","status":200},{"path":"/api/stats","ms":167.1,"time":"2026-03-27T20:23:55.890Z","status":200},{"path":"/api/perf","ms":996.3,"time":"2026-03-27T20:32:27.091Z","status":200},{"path":"/api/perf","ms":251.3,"time":"2026-03-27T20:33:20.139Z","status":200},{"path":"/api/stats","ms":117.1,"time":"2026-03-27T20:34:52.022Z","status":200},{"path":"/api/perf","ms":382,"time":"2026-03-27T20:41:47.316Z","status":200},{"path":"/api/perf","ms":369.3,"time":"2026-03-27T20:41:58.228Z","status":200},{"path":"/api/perf","ms":106.1,"time":"2026-03-27T20:42:30.498Z","status":200},{"path":"/api/stats","ms":123.9,"time":"2026-03-27T21:05:09.485Z","status":200}],"cache":{"size":62,"hits":184,"misses":326,"staleHits":41,"recomputes":0,"hitRate":36.1},"packetStore":{"totalLoaded":53622,"totalObservations":1351739,"evicted":0,"inserts":75876,"queries":195,"inMemory":55522,"sqliteOnly":false,"maxPackets":2386092,"estimatedMB":24,"maxMB":1024,"indexes":{"byHash":55522,"byObserver":30,"byNode":769,"advertByObserver":769}},"sqlite":{"dbSizeMB":202,"walSizeMB":26.3,"freelistMB":0,"walPages":{"total":2,"checkpointed":2,"busy":0},"rows":{"transmissions":55522,"observations":1340147,"nodes":536,"observers":31}}} |