Documentation
¶
Overview ¶
Package bps provides gauges for calculating the Bytes Per Second transfer rate of data streams.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Gauge ¶
type Gauge interface {
// Sample 添加监控流的新进度样本。 md5:d2b29305c97808d1
Sample(t time.Time, n int64)
// BPS 返回监控流的计算出的每秒字节数速率。 md5:6ca06acbcf94e710
BPS() float64
}
Gauge是该包中所有BPS度量的通用接口。给定一段时间内的多个采样,每种度量类型都可以用来测量数据流的字节/秒传输速率。
所有采样点的时间戳和值都必须单调递增。每个采样点应表示流中的总字节数,而不是自上一个采样点以来发送的字节数。
为了确保度量能够尽快报告进度,请在数据流开始时立即获取初始采样。
所有度量实现都支持并发使用。 md5:96b611c42ceb040c
func NewSMA ¶
NewSMA 返回一个使用简单移动平均法(Simple Moving Average)的仪表,该方法使用给定的样本数量来测量字节流的每秒字节数(BPS)。
BPS 的计算基于样本缓冲区中最新和最旧样本的时间戳。当添加新样本时,如果样本数量超过 maxSamples,最旧的样本将被丢弃。
该仪表不考虑新样本到达时间的延迟或期望的窗口大小。样本到达的任何偏差都将会导致 BPS 测量值正确地适用于提交的样本,但其覆盖的时间窗口会有所变化。
maxSamples 应等于 1 + (窗口大小 / 采样间隔),其中窗口大小是平滑移动平均的时间范围(以秒为单位),采样间隔是每个样本之间的时间间隔(以秒为单位)。
例如,如果你想要一个五秒的窗口,并且每秒采样一次,maxSamples 应该是 1 + 5/1 = 6。 md5:62f6153626d33f59
type SampleFunc ¶
type SampleFunc func() (n int64)
SampleFunc被Watch用来定期从监控流中采样。 md5:4f93786f07892dce