Skip to content

Allow queue configuration to be specified under the output type #35615

@faec

Description

@faec

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.

  • Implement Queue Settings for Outputs
  • Allow configuring IdleConnectionTimeout setting for Elasticsearch output

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions