Beats queue configurations are specified at the top level of the config, grouped by queue type, e.g. queue.mem or queue.disk. Recent work to support the shipper involved exposing queue configuration hooks to the output itself during initialization. We should follow up on this by moving the queue configuration entirely into the output block, for example:
output.elasticsearch:
hosts: ["https://localhost:9200"]
queue.mem:
events: 5000
or
output.logstash:
hosts: ["127.0.0.1:5044"]
queue.disk:
max_size: 10GB
This settings block, when present, should use the same structure and behavior as the existing Beats queue settings, and should replace the root-level configuration (though we will still support root-level as a fallback).
Outputs that support this will automatically gain the ability to specify queue configurations through Agent, both with and without the shipper enabled. (However without the shipper it will apply these settings separately in each input process, duplicating the queue for each input type, so we should be careful how we communicate this option.)
In addition, please add the IdleConnectionTimeout setting for the Elasticsearch Idle Timeout to the ES Output settings.
|
httpcommon.WithKeepaliveSettings{IdleConnTimeout: s.IdleConnTimeout}, |
. This setting plus queue settings will allow users to adjust these settings for high scale.
Beats queue configurations are specified at the top level of the config, grouped by queue type, e.g.
queue.memorqueue.disk. Recent work to support the shipper involved exposing queue configuration hooks to the output itself during initialization. We should follow up on this by moving the queue configuration entirely into the output block, for example:or
This settings block, when present, should use the same structure and behavior as the existing Beats queue settings, and should replace the root-level configuration (though we will still support root-level as a fallback).
Outputs that support this will automatically gain the ability to specify queue configurations through Agent, both with and without the shipper enabled. (However without the shipper it will apply these settings separately in each input process, duplicating the queue for each input type, so we should be careful how we communicate this option.)
In addition, please add the
IdleConnectionTimeoutsetting for the Elasticsearch Idle Timeout to the ES Output settings.beats/libbeat/esleg/eslegclient/connection.go
Line 139 in ad64f28