Fix crash when allow pending messgae wasn't set (#1785)

The default is 0 so we hit a division by 0 error and crash. This checks
ensure we will not crash and `log` and continue to let telegraf run

Also we set default allow pending message number to 10000
This commit is contained in:
Vinh Quốc Nguyễn
2016-09-23 03:37:47 -07:00
committed by Cameron Sparr
parent 9ea3dbeee8
commit 1d10eda84e

View File

@@ -24,7 +24,8 @@ const (
defaultFieldName = "value"
defaultSeparator = "_"
defaultSeparator = "_"
defaultAllowPendingMessage = 10000
)
var dropwarn = "ERROR: statsd message queue full. " +
@@ -297,7 +298,7 @@ func (s *Statsd) udpListen() error {
case s.in <- bufCopy:
default:
s.drops++
if s.drops == 1 || s.drops%s.AllowedPendingMessages == 0 {
if s.drops == 1 || s.AllowedPendingMessages == 0 || s.drops%s.AllowedPendingMessages == 0 {
log.Printf(dropwarn, s.drops)
}
}
@@ -650,7 +651,8 @@ func (s *Statsd) Stop() {
func init() {
inputs.Add("statsd", func() telegraf.Input {
return &Statsd{
MetricSeparator: "_",
MetricSeparator: "_",
AllowedPendingMessages: defaultAllowPendingMessage,
}
})
}