Documentation ¶
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 Counter
- type CounterOpts
- type CounterVec
- type CounterVecOpts
- type Gauge
- type GaugeOpts
- type GaugeVec
- type GaugeVecOpts
- type HistogramVec
- type HistogramVecOpts
- type Iterator
- type Metric
- type Opts
- type PointGauge
- type PointGaugeOpts
- type PointPolicy
- type RollingCounter
- type RollingCounterOpts
- type RollingGauge
- type RollingGaugeOpts
- type RollingPolicy
- type RollingPolicyOpts
- type VectorOpts
- 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(offsets []int)
- func (w *Window) ResetWindow()
- func (w *Window) Size() int
- type WindowOpts
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.
func (*Bucket) Add ¶
Add adds the given value to the point.
func (*Bucket) Append ¶
Append appends the given value to the bucket.
type Counter ¶
type Counter interface { Metric }
Counter stores a numerical value that only ever goes up.
func NewCounter ¶
func NewCounter(opts CounterOpts) Counter
NewCounter creates a new Counter based on the CounterOpts.
type CounterVec ¶
type CounterVec interface { // Inc increments the counter by 1. Use Add to increment it by arbitrary // non-negative values. Inc(labels ...string) // Add adds the given value to the counter. It panics if the value is < // 0. Add(v float64, labels ...string) }
CounterVec counter vec.
func NewBusinessMetricCount ¶
func NewBusinessMetricCount(name string, labels ...string) CounterVec
NewBusinessMetricCount business Metric count vec. name or labels should not be empty.
type Gauge ¶
Gauge stores a numerical value that can be add arbitrarily.
type GaugeVec ¶
type GaugeVec interface { // Set sets the Gauge to an arbitrary value. Set(v float64, labels ...string) // Inc increments the Gauge by 1. Use Add to increment it by arbitrary // values. Inc(labels ...string) // Add adds the given value to the Gauge. (The value can be negative, // resulting in a decrease of the Gauge.) Add(v float64, labels ...string) }
GaugeVec gauge vec.
func NewBusinessMetricGauge ¶
NewBusinessMetricGauge business Metric gauge vec. name or labels should not be empty.
type HistogramVec ¶
type HistogramVec interface { // Observe adds a single observation to the histogram. Observe(v int64, labels ...string) }
HistogramVec gauge vec.
func NewBusinessMetricHistogram ¶
func NewBusinessMetricHistogram(name string, buckets []float64, labels ...string) HistogramVec
NewBusinessMetricHistogram business Metric histogram vec. name or labels should not be empty.
func NewHistogramVec ¶
func NewHistogramVec(cfg *HistogramVecOpts) HistogramVec
NewHistogramVec new a histogram vec.
type HistogramVecOpts ¶
type HistogramVecOpts struct { Namespace string Subsystem string Name string Help string Labels []string Buckets []float64 }
HistogramVecOpts is histogram vector opts.
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 PointGauge ¶
type PointGauge interface { Aggregation Metric // Reduce applies the reduction function to all buckets within the window. Reduce(func(Iterator) float64) float64 }
PointGauge represents a ring window. Every buckets within the window contains one point. When the window is full, the earliest point will be overwrite.
func NewPointGauge ¶
func NewPointGauge(opts PointGaugeOpts) PointGauge
NewPointGauge creates a new PointGauge based on PointGaugeOpts.
type PointGaugeOpts ¶
type PointGaugeOpts struct { // Size represents the bucket size within the window. Size int }
PointGaugeOpts contains the arguments for creating PointGauge.
type PointPolicy ¶
type PointPolicy struct {
// contains filtered or unexported fields
}
PointPolicy is a policy of points within the window. PointPolicy wraps the window and make it seem like ring-buf. When using PointPolicy, every buckets within the windows contains at more one point. e.g. [[1], [2], [3]]
func NewPointPolicy ¶
func NewPointPolicy(window *Window) *PointPolicy
NewPointPolicy creates a new PointPolicy.
func (*PointPolicy) Append ¶
func (p *PointPolicy) Append(val float64)
Append appends the given points to the window.
func (*PointPolicy) Reduce ¶
func (p *PointPolicy) Reduce(f func(Iterator) float64) float64
Reduce applies the reduction function to all buckets within the window.
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 RollingGauge ¶
type RollingGauge interface { Metric Aggregation // Reduce applies the reduction function to all buckets within the window. Reduce(func(Iterator) float64) float64 }
RollingGauge represents a ring window based on time duration. e.g. [[1, 2], [1, 2, 3], [1,2, 3, 4]]
func NewRollingGauge ¶
func NewRollingGauge(opts RollingGaugeOpts) RollingGauge
NewRollingGauge creates a new RollingGauge baseed on RollingGaugeOpts.
type RollingGaugeOpts ¶
RollingGaugeOpts contains the arguments for creating RollingGauge.
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.
func (*RollingPolicy) Reduce ¶
func (r *RollingPolicy) Reduce(f func(Iterator) float64) (val float64)
Reduce applies the reduction function to all buckets within the window.
type RollingPolicyOpts ¶
RollingPolicyOpts contains the arguments for creating RollingPolicy.
type VectorOpts ¶
type VectorOpts struct { Namespace string Subsystem string Name string Help string Labels []string }
VectorOpts contains the common arguments for creating vec Metric..
type Window ¶
type Window struct {
// contains filtered or unexported fields
}
Window contains multiple buckets.
func NewWindow ¶
func NewWindow(opts WindowOpts) *Window
NewWindow creates a new Window based on WindowOpts.
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) Bucket ¶
Bucket returns the bucket where index equals the given offset.
func (*Window) Iterator ¶
Iterator returns the bucket iterator.
func (*Window) ResetBucket ¶
ResetBucket empties the bucket based on the given offset.
func (*Window) ResetBuckets ¶
ResetBuckets empties the buckets based on the given offsets.