Documentation ¶
Overview ¶
Package window is a library that calculates windows cpu and memory usage.
Index ¶
- func Avg(iterator Iterator) float64
- func Count(iterator Iterator) float64
- func Max(iterator Iterator) float64
- func Min(iterator Iterator) float64
- func Sum(iterator Iterator) float64
- type Aggregation
- type Bucket
- type Iterator
- type Metric
- type Options
- type RollingCounter
- type RollingCounterOpts
- type RollingPolicy
- type RollingPolicyOpts
- type Window
- func (w *Window) Add(offset int, val float64)
- func (w *Window) Append(offset int, val float64)
- func (w *Window) Bucket(offset int) Bucket
- func (w *Window) Iterator(offset int, count int) Iterator
- func (w *Window) ResetBucket(offset int)
- func (w *Window) ResetBuckets(offset int, count int)
- func (w *Window) ResetWindow()
- func (w *Window) Size() int
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Aggregation ¶
type Aggregation interface { // Min finds the min value within the window. Min() float64 // Max finds the max value within the window. Max() float64 // Avg computes average value within the window. Avg() float64 // Sum computes sum value within the window. Sum() float64 }
Aggregation contains some common aggregation function. Each aggregation can compute summary statistics of window.
type Bucket ¶
Bucket contains multiple float64 points.
type Iterator ¶
type Iterator struct {
// contains filtered or unexported fields
}
Iterator iterates the buckets within the window.
type Metric ¶
type Metric interface { // Add adds the given value to the counter. Add(int64) // Value gets the current value. // If the metric's type is PointGauge, RollingCounter, RollingGauge, // it returns the sum value within the window. Value() int64 }
Metric is a sample interface. Implementations of Metrics in metric package are Counter, Gauge, PointGauge, RollingCounter and RollingGauge.
type RollingCounter ¶
type RollingCounter interface { Metric Aggregation Timespan() int // Reduce applies the reduction function to all buckets within the window. Reduce(func(Iterator) float64) float64 }
RollingCounter represents a ring window based on time duration. e.g. [[1], [3], [5]]
func NewRollingCounter ¶
func NewRollingCounter(opts RollingCounterOpts) RollingCounter
NewRollingCounter creates a new RollingCounter bases on RollingCounterOpts.
type RollingCounterOpts ¶
RollingCounterOpts contains the arguments for creating RollingCounter.
type RollingPolicy ¶
type RollingPolicy struct {
// contains filtered or unexported fields
}
RollingPolicy is a policy for ring window based on time duration. RollingPolicy moves bucket offset with time duration. e.g. If the last point is appended one bucket duration ago, RollingPolicy will increment current offset.
func NewRollingPolicy ¶
func NewRollingPolicy(window *Window, opts RollingPolicyOpts) *RollingPolicy
NewRollingPolicy creates a new RollingPolicy based on the given window and RollingPolicyOpts.
func (*RollingPolicy) Add ¶
func (r *RollingPolicy) Add(val float64)
Add adds the given value to the latest point within bucket.
func (*RollingPolicy) Append ¶
func (r *RollingPolicy) Append(val float64)
Append appends the given points to the window.
type RollingPolicyOpts ¶
RollingPolicyOpts contains the arguments for creating RollingPolicy.
type Window ¶
type Window struct {
// contains filtered or unexported fields
}
Window contains multiple buckets.
func (*Window) Add ¶
Add adds the given value to the latest point within bucket where index equals the given offset.
func (*Window) Append ¶
Append appends the given value to the bucket where index equals the given offset.
func (*Window) ResetBucket ¶
ResetBucket empties the bucket based on the given offset.
func (*Window) ResetBuckets ¶
ResetBuckets empties the buckets based on the given offsets.
func (*Window) ResetWindow ¶
func (w *Window) ResetWindow()
ResetWindow empties all buckets within the window.