package telegraf 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) // AddSummary is the same as AddFields, but will add the metric as a "Summary" type AddSummary(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) // AddHistogram is the same as AddFields, but will add the metric as a "Histogram" type AddHistogram(measurement string, fields map[string]interface{}, tags map[string]string, t ...time.Time) SetPrecision(precision, interval time.Duration) AddError(err error) }