From 1180b37d80c2fda445195374bcf09ed9cc4b2f83 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. --- 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 309ea89b05e..839b2c1bd87 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -35,6 +35,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha1...master[Check the HEAD d *Affecting all Beats* - Fix autodiscover configurations stopping when metadata is missing. {pull}8851[8851] +- 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 746b8e78244..84f216e4c98 100644 --- a/libbeat/outputs/elasticsearch/client.go +++ b/libbeat/outputs/elasticsearch/client.go @@ -380,6 +380,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 }