Skip to main content

Module latency_tracker

Module latency_tracker 

Source
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§

LatencyBucket
A single bucket in a latency histogram.
LatencyTrackerStats
Aggregate statistics produced by PeerLatencyTracker::stats.
PeerLatency
Per-peer latency state with ring-buffer sample storage.
PeerLatencyTracker
Tracks per-peer RTT measurements with histogram, percentile, and ranking support.