stats

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CircuitLatencySample

type CircuitLatencySample struct {
	Timestamp time.Time `json:"timestamp"`
	RTT       uint32    `json:"rtt"`
}

type CircuitLatencyStat

type CircuitLatencyStat struct {
	Circuit   string `json:"circuit"`
	Timestamp string `json:"timestamp"` // Start of window (RFC3339Nano)

	// RTT metrics (in microseconds)
	RTTMean     float64 `json:"rtt_mean"`
	RTTMedian   float64 `json:"rtt_median"`
	RTTMin      float64 `json:"rtt_min"`
	RTTMax      float64 `json:"rtt_max"`
	RTTP90      float64 `json:"rtt_p90"`
	RTTP95      float64 `json:"rtt_p95"`
	RTTP99      float64 `json:"rtt_p99"`
	RTTStdDev   float64 `json:"rtt_stddev"`   // population
	RTTVariance float64 `json:"rtt_variance"` // population
	RTTMAD      float64 `json:"rtt_mad"`      // median absolute deviation

	// Jitter metrics (in microseconds)
	JitterAvg         float64 `json:"jitter_avg"`          // mean(|ΔRTT|)
	JitterEWMA        float64 `json:"jitter_ewma"`         // RFC3550-like EWMA of |ΔRTT|
	JitterDeltaStdDev float64 `json:"jitter_delta_stddev"` // stddev of ΔRTT
	JitterPeakToPeak  float64 `json:"jitter_peak_to_peak"` // range of |ΔRTT| (max-min)
	JitterMax         float64 `json:"jitter_max"`          // max(|ΔRTT|)

	// Success/failure counts and ratios
	SuccessCount uint64  `json:"success_count"`
	SuccessRate  float64 `json:"success_rate"`
	LossCount    uint64  `json:"loss_count"`
	LossRate     float64 `json:"loss_rate"`
}

func Aggregate

func Aggregate(circuitCode string, samples []CircuitLatencySample, maxPoints uint64, interval time.Duration) ([]CircuitLatencyStat, error)

func AggregateIntoOne

func AggregateIntoOne(ts time.Time, rtts []float64) CircuitLatencyStat

func AggregateIntoTimeBuckets

func AggregateIntoTimeBuckets(circuitCode string, timeseries []CircuitLatencySample, bucket time.Duration) ([]CircuitLatencyStat, error)

func (*CircuitLatencyStat) ConvertUnit

func (s *CircuitLatencyStat) ConvertUnit(factor float64)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL