Fix handling of @timestamp and type from the JSON decoder #1421
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If
json.keys_under_root
andjson.overwrite_keys
are set, and the keys@timestamp
ortype
show up in the decoded JSON, they can cause issues becausethe Elasticsearch output makes some assumptions about them: @timestamp has to
be of type
common.Time
andtype
has to be of typestring
.The fix attempts to make use of the
@timestamp
andtype
from the JSON, but ifparsing fails or the resulting values are invalid, the fields are not overwritten
and an error key is added to help with troubleshooting.
Fixes #1378.
Also hardens the
getIndex
call in libbeat, to protect against wrong types thereas well.