diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index a0cc6f951739..13190ae7da5c 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -38,6 +38,7 @@ https://github.com/elastic/beats/compare/v6.5.0...6.x[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] - Refresh host metadata in add_host_metadata. {pull}9359[9359] *Auditbeat* diff --git a/libbeat/outputs/console/console.go b/libbeat/outputs/console/console.go index 7958b8da6bd0..15d317c51597 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 2bd1c06ab37b..f9d133882338 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 75ea30924631..1b05fbb783fe 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 cae9c262eb59..a1f1955ff9cd 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 00cb304c6467..17d24d7a69c8 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 fc395070e27d..7238ba367fd0 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 }