35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
package plugins
|
|
|
|
import "time"
|
|
|
|
// Accumulator is an interface for "accumulating" metrics from plugin(s).
|
|
// The metrics are sent down a channel shared between all plugins.
|
|
type Accumulator interface {
|
|
// AddFields adds a metric to the accumulator with the given measurement
|
|
// name, fields, and tags (and timestamp). If a timestamp is not provided,
|
|
// then the accumulator sets it to "now".
|
|
// Create a point with a value, decorating it with tags
|
|
// NOTE: tags is expected to be owned by the caller, don't mutate
|
|
// it after passing to Add.
|
|
AddFields(measurement string,
|
|
fields map[string]interface{},
|
|
tags map[string]string,
|
|
t ...time.Time)
|
|
|
|
// AddGauge is the same as AddFields, but will add the metric as a "Gauge" type
|
|
AddGauge(measurement string,
|
|
fields map[string]interface{},
|
|
tags map[string]string,
|
|
t ...time.Time)
|
|
|
|
// AddCounter is the same as AddFields, but will add the metric as a "Counter" type
|
|
AddCounter(measurement string,
|
|
fields map[string]interface{},
|
|
tags map[string]string,
|
|
t ...time.Time)
|
|
|
|
SetPrecision(precision, interval time.Duration)
|
|
|
|
AddError(err error)
|
|
}
|