From 7fca924edb5c1ecfdf7b89c44c43dec30056989e Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Sun, 2 Dec 2018 11:10:19 +0100 Subject: [PATCH] Log dropped events at the debug level (#9251) Log events dropped by encoding problems at the debug level. (cherry picked from commit 1180b37d80c2fda445195374bcf09ed9cc4b2f83) --- CHANGELOG.asciidoc | 1 + libbeat/outputs/console/console.go | 1 + libbeat/outputs/elasticsearch/client.go | 1 + libbeat/outputs/fileout/file.go | 1 + libbeat/outputs/kafka/client.go | 1 + libbeat/outputs/logstash/enc.go | 8 ++++++-- libbeat/outputs/redis/client.go | 2 ++ 7 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index f20783cd5b8..0244193fd05 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -34,6 +34,7 @@ https://github.com/elastic/beats/compare/v6.5.1...6.5[Check the HEAD diff] *Affecting all Beats* - Propagate Sync error when running SafeFileRotate. {pull}9069[9069] +- Log events at the debug level when dropped by encoding problems. {pull}9251[9251] *Auditbeat* diff --git a/libbeat/outputs/console/console.go b/libbeat/outputs/console/console.go index 7958b8da6bd..15d317c5159 100644 --- a/libbeat/outputs/console/console.go +++ b/libbeat/outputs/console/console.go @@ -129,6 +129,7 @@ func (c *console) publishEvent(event *publisher.Event) bool { } logp.Critical("Unable to encode event: %v", err) + logp.Debug("console", "Failed event: %v", event) return false } diff --git a/libbeat/outputs/elasticsearch/client.go b/libbeat/outputs/elasticsearch/client.go index 2bd1c06ab37..f9d13388233 100644 --- a/libbeat/outputs/elasticsearch/client.go +++ b/libbeat/outputs/elasticsearch/client.go @@ -372,6 +372,7 @@ func bulkEncodePublishRequest( } if err := body.Add(meta, event); err != nil { logp.Err("Failed to encode event: %s", err) + logp.Debug("elasticsearch", "Failed event: %v", event) continue } okEvents = append(okEvents, data[i]) diff --git a/libbeat/outputs/fileout/file.go b/libbeat/outputs/fileout/file.go index 75ea3092463..1b05fbb783f 100644 --- a/libbeat/outputs/fileout/file.go +++ b/libbeat/outputs/fileout/file.go @@ -126,6 +126,7 @@ func (out *fileOutput) Publish( } else { logp.Warn("Failed to serialize the event: %v", err) } + logp.Debug("file", "Failed event: %v", event) dropped++ continue diff --git a/libbeat/outputs/kafka/client.go b/libbeat/outputs/kafka/client.go index cae9c262eb5..a1f1955ff9c 100644 --- a/libbeat/outputs/kafka/client.go +++ b/libbeat/outputs/kafka/client.go @@ -179,6 +179,7 @@ func (c *client) getEventMessage(data *publisher.Event) (*message, error) { serializedEvent, err := c.codec.Encode(c.index, event) if err != nil { + logp.Debug("kafka", "Failed event: %v", event) return nil, err } diff --git a/libbeat/outputs/logstash/enc.go b/libbeat/outputs/logstash/enc.go index 00cb304c646..17d24d7a69c 100644 --- a/libbeat/outputs/logstash/enc.go +++ b/libbeat/outputs/logstash/enc.go @@ -24,7 +24,11 @@ import ( func makeLogstashEventEncoder(info beat.Info, escapeHTML bool, index string) func(interface{}) ([]byte, error) { enc := json.New(false, escapeHTML, info.Version) - return func(event interface{}) ([]byte, error) { - return enc.Encode(index, event.(*beat.Event)) + return func(event interface{}) (d []byte, err error) { + d, err = enc.Encode(index, event.(*beat.Event)) + if err != nil { + debugf("Failed to encode event: %v", event) + } + return } } diff --git a/libbeat/outputs/redis/client.go b/libbeat/outputs/redis/client.go index fc395070e27..7238ba367fd 100644 --- a/libbeat/outputs/redis/client.go +++ b/libbeat/outputs/redis/client.go @@ -312,6 +312,7 @@ func serializeEvents( serializedEvent, err := codec.Encode(index, &d.Content) if err != nil { logp.Err("Encoding event failed with error: %v", err) + logp.Debug("redis", "Failed event: %v", d.Content) goto failLoop } @@ -329,6 +330,7 @@ failLoop: serializedEvent, err := codec.Encode(index, &d.Content) if err != nil { logp.Err("Encoding event failed with error: %v", err) + logp.Debug("redis", "Failed event: %v", d.Content) i++ continue }