Expand description
Per-peer latency histogram tracking with percentile reporting.
This module provides fine-grained latency monitoring for each connected peer, including:
- Recording RTT measurements per peer with ring-buffer sample management
- Percentile computation with linear interpolation (p50, p95, p99, arbitrary)
- Histogram generation with configurable bucket counts
- Fastest/slowest peer ranking by mean latency
- Global aggregate statistics across all tracked peers
§Example
use ipfrs_network::latency_tracker::{PeerLatencyTracker};
let mut tracker = PeerLatencyTracker::new(1000);
tracker.record("peer-1", 1_500);
tracker.record("peer-1", 2_000);
tracker.record("peer-1", 1_800);
if let Some(p99) = tracker.percentile("peer-1", 0.99) {
println!("P99 = {} us", p99);
}
if let Some(m) = tracker.mean("peer-1") {
println!("Mean = {:.1} us", m);
}Structs§
- Latency
Bucket - A single bucket in a latency histogram.
- Latency
Tracker Stats - Aggregate statistics produced by
PeerLatencyTracker::stats. - Peer
Latency - Per-peer latency state with ring-buffer sample storage.
- Peer
Latency Tracker - Tracks per-peer RTT measurements with histogram, percentile, and ranking support.