I am experiencing the exact same problem as here:
The setup is very basic. We are using the ES output plugin with a basic logic:
output {
if [@metadata][scripted_upsert] == "true" {
elasticsearch {
...
scripted_upsert => true
script => "custom_update"
}
}
}
and a basic painless script.
Problem: if logstash looses connection to ES for whatever reason (error_message=>"Elasticsearch Unreachable") then on reconnection ("Restored connection to ES instance"), the scripted_upsert is ignored and a classic upsert is executed instead, which is not what we want.
Any idea why ? Last hypothesis I have to check is either the @metadata context is lost.
Edit: seems more a logstash elastic output plugin bug ?