feat: connection rate and chain latency metrics

Add RateTracker (rolling deque, events/sec) and LatencyTracker (circular
buffer, p50/p95/p99 in ms) to the Metrics class.  Both are recorded in
_handle_client and exposed via summary(), to_dict(), /status, and /metrics.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-18 00:16:46 +01:00
parent e7de479c88
commit b8f7217e43
9 changed files with 304 additions and 4 deletions

View File

@@ -109,6 +109,8 @@ class TestHandleStatus:
assert body["connections"] == 10
assert body["success"] == 8
assert "uptime" in body
assert "rate" in body
assert "latency" in body
def test_with_pool(self):
pool = MagicMock()
@@ -152,6 +154,8 @@ class TestHandleMetrics:
assert body["connections"] == 42
assert body["bytes_in"] == 1024
assert "uptime" in body
assert "rate" in body
assert "latency" in body
class TestHandlePool: