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
1 changed files with 5 additions and 3 deletions

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,
}
})
}