-
Notifications
You must be signed in to change notification settings - Fork 148
Closed
Labels
Description
Opening this issue as a result of this forum post: https://discuss.elastic.co/t/multiline-plugin-metadata-missing-from-last-line/136725
To summarize, I have noticed that when combining multiple lines into one event using the multiline codec, the metadata for the last line of the file is missing. From the discussion, it looks like [metadata][s3][key] is not set on the event when the codec is flushed (line 220).
My configuration:
input {
s3{
bucket => "bucket_name"
region => "us-east-2"
codec => multiline {
pattern => "^(%{DATESTAMP})"
negate => "true"
what => "previous"
}
}
}
filter { mutate { add_field => { "file_name" => "%{[@metadata][s3][key]}"}} }
output{ stdout { codec => rubydebug } }
Sample input file:
06-19-2018 15:25:35.7046|ERROR
more info...
06-19-2018 15:25:35.7046|DEBUG
more info...
06-19-2018 15:25:35.7046|INFO
more info...
Logstash output:
{
"@timestamp" => 2018-06-20T14:41:09.998Z,
"message" => "06-19-2018 15:25:35.7046|ERROR\r\n\tmore info...\r",
"tags" => [
[0] "multiline"
],
"@version" => "1",
"file_name" => "sampleLog.txt"
}
{
"@timestamp" => 2018-06-20T14:41:09.998Z,
"message" => "06-19-2018 15:25:35.7046|DEBUG\r\n\tmore info...\r",
"tags" => [
[0] "multiline"
],
"@version" => "1",
"file_name" => "sampleLog.txt"
}
{
"@timestamp" => 2018-06-20T14:41:09.999Z,
"message" => "06-19-2018 15:25:35.7046|INFO\r\n\tmore info...\r",
"tags" => [
[0] "multiline"
],
"@version" => "1",
"file_name" => "%{[@metadata][s3][key]}"
}