From 16a7ce39da4a5688cf9e5facdad297fa358cc2c3 Mon Sep 17 00:00:00 2001 From: Greg <2653109+glinton@users.noreply.github.com> Date: Mon, 11 Feb 2019 13:49:06 -0700 Subject: [PATCH] Add internal metric for line too long in influxdb_listener (#5396) --- plugins/inputs/influxdb_listener/http_listener.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/inputs/influxdb_listener/http_listener.go b/plugins/inputs/influxdb_listener/http_listener.go index 1de764bfd..2857ae9c9 100644 --- a/plugins/inputs/influxdb_listener/http_listener.go +++ b/plugins/inputs/influxdb_listener/http_listener.go @@ -72,6 +72,8 @@ type HTTPListener struct { NotFoundsServed selfstat.Stat BuffersCreated selfstat.Stat AuthFailures selfstat.Stat + + longLines selfstat.Stat } const sampleConfig = ` @@ -138,6 +140,7 @@ func (h *HTTPListener) Start(acc telegraf.Accumulator) error { h.NotFoundsServed = selfstat.Register("http_listener", "not_founds_served", tags) h.BuffersCreated = selfstat.Register("http_listener", "buffers_created", tags) h.AuthFailures = selfstat.Register("http_listener", "auth_failures", tags) + h.longLines = selfstat.Register("http_listener", "long_lines", tags) if h.MaxBodySize.Size == 0 { h.MaxBodySize.Size = DEFAULT_MAX_BODY_SIZE @@ -325,6 +328,7 @@ func (h *HTTPListener) serveWrite(res http.ResponseWriter, req *http.Request) { // final newline, then push the rest of the bytes into the next buffer. i := bytes.LastIndexByte(buf, '\n') if i == -1 { + h.longLines.Incr(1) // drop any line longer than the max buffer size log.Printf("D! http_listener received a single line longer than the maximum of %d bytes", len(buf))