diff --git a/CHANGELOG.md b/CHANGELOG.md index a49f5e8f8..6896a7ad7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ be deprecated eventually. - [#2358](https://github.com/influxdata/telegraf/pull/2358): Create pidfile with 644 permissions & defer file deletion. - [#2282](https://github.com/influxdata/telegraf/issues/2282): Reloading telegraf freezes prometheus output. - [#2390](https://github.com/influxdata/telegraf/issues/2390): Empty tag value causes error on InfluxDB output. +- [#2380](https://github.com/influxdata/telegraf/issues/2380): buffer_size field value is negative number from "internal" plugin. ## v1.2.1 [2017-02-01] diff --git a/internal/models/running_output.go b/internal/models/running_output.go index 0ce756f47..61f26add1 100644 --- a/internal/models/running_output.go +++ b/internal/models/running_output.go @@ -122,9 +122,9 @@ func (ro *RunningOutput) AddMetric(m telegraf.Metric) { // Write writes all cached points to this output. func (ro *RunningOutput) Write() error { nFails, nMetrics := ro.failMetrics.Len(), ro.metrics.Len() + ro.BufferSize.Set(int64(nFails + nMetrics)) log.Printf("D! Output [%s] buffer fullness: %d / %d metrics. ", ro.Name, nFails+nMetrics, ro.MetricBufferLimit) - ro.BufferSize.Incr(int64(nFails + nMetrics)) var err error if !ro.failMetrics.IsEmpty() { // how many batches of failed writes we need to write. @@ -176,7 +176,6 @@ func (ro *RunningOutput) write(metrics []telegraf.Metric) error { log.Printf("D! Output [%s] wrote batch of %d metrics in %s\n", ro.Name, nMetrics, elapsed) ro.MetricsWritten.Incr(int64(nMetrics)) - ro.BufferSize.Incr(-int64(nMetrics)) ro.WriteTime.Incr(elapsed.Nanoseconds()) } return err