add AddError method to accumulator (#1536)

This commit is contained in:
Patrick Hemmer
2016-07-25 08:09:49 -04:00
committed by Cameron Sparr
parent 986735234b
commit e68f251df7
5 changed files with 58 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"log"
"math"
"sync/atomic"
"time"
"github.com/influxdata/telegraf"
@@ -33,6 +34,8 @@ type accumulator struct {
inputConfig *internal_models.InputConfig
precision time.Duration
errCount uint64
}
func (ac *accumulator) Add(
@@ -155,6 +158,17 @@ func (ac *accumulator) AddFields(
ac.metrics <- m
}
// AddError passes a runtime error to the accumulator.
// The error will be tagged with the plugin name and written to the log.
func (ac *accumulator) AddError(err error) {
if err == nil {
return
}
atomic.AddUint64(&ac.errCount, 1)
//TODO suppress/throttle consecutive duplicate errors?
log.Printf("ERROR in input [%s]: %s", ac.inputConfig.Name, err)
}
func (ac *accumulator) Debug() bool {
return ac.debug
}