Documentation
¶
Overview ¶
Package stats provides streaming measurement math — running mean/variance, jitter, and sequence-based loss/duplicate/reorder detection — as pure values with no global state. See docs/blueprints/stats-engine.md and DESIGN.md §7.
Index ¶
- type Jitter
- type SeqTracker
- func (t *SeqTracker) Duplicates() uint64
- func (t *SeqTracker) Expected() uint64
- func (t *SeqTracker) LossPercent() float64
- func (t *SeqTracker) Lost() uint64
- func (t *SeqTracker) Observe(seq uint64)
- func (t *SeqTracker) Received() uint64
- func (t *SeqTracker) Reordered() uint64
- func (t *SeqTracker) Total() uint64
- type Stream
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Jitter ¶
type Jitter struct {
// contains filtered or unexported fields
}
Jitter tracks the mean absolute difference between consecutive observations.
type SeqTracker ¶
type SeqTracker struct {
// contains filtered or unexported fields
}
SeqTracker detects loss, duplicates, and reordering over a stream of sequence numbers (e.g. from the patterned payloader). Loss is inferred from the highest sequence seen versus the count of distinct sequences received.
It retains the set of seen sequences, so memory grows with distinct sequences; a windowed variant is a later optimization.
func (*SeqTracker) Duplicates ¶
func (t *SeqTracker) Duplicates() uint64
Duplicates returns the count of repeated sequences.
func (*SeqTracker) Expected ¶
func (t *SeqTracker) Expected() uint64
Expected returns maxSeq+1 — the number of packets that should have arrived if sequences start at 0 and are contiguous.
func (*SeqTracker) LossPercent ¶
func (t *SeqTracker) LossPercent() float64
LossPercent returns loss as a percentage of Expected.
func (*SeqTracker) Lost ¶
func (t *SeqTracker) Lost() uint64
Lost returns Expected minus distinct Received (never negative).
func (*SeqTracker) Observe ¶
func (t *SeqTracker) Observe(seq uint64)
Observe records one received sequence number.
func (*SeqTracker) Received ¶
func (t *SeqTracker) Received() uint64
Received returns the number of distinct sequences received.
func (*SeqTracker) Reordered ¶
func (t *SeqTracker) Reordered() uint64
Reordered returns the count of sequences that arrived below the running max.
func (*SeqTracker) Total ¶
func (t *SeqTracker) Total() uint64
Total returns the count of observations including duplicates.
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
Stream computes count, min, max, mean, variance, std-dev, and coefficient of variation incrementally (Welford's algorithm) without retaining samples.