Metrics and Observability Example ​
Request/response counters, status classes, and latency histograms with httpx.Metrics. See examples/metricsServer.zig.
zig
var m = httpx.Metrics{};
// Record traffic.
m.recordRequest();
m.recordRequestMethod("GET");
m.recordResponseFull(200, 1_200_000, 512); // status, latency_ns, bytes
m.recordResponseFull(500, 4_500_000, 64);
const snap = m.snapshot();
std.debug.print("Total Requests: {d}\n", .{snap.requestsTotal});
std.debug.print("Error Rate: {d:.1}%\n", .{snap.errorRate() * 100.0});
std.debug.print("Avg Latency: {d:.3}ms\n", .{snap.averageLatencyMs()});Servers record automatically; mount try server.metrics("/metrics"); for live Prometheus exposition, or read server.snapshot() / server.metricsSnapshot().
Run ​
bash
zig build run-metrics-serverWhat to Verify ​
- Counters, status classes, and latency samples accumulate.
/metricsrenders Prometheus text with the live values.
