Skip to content

[Fleet] Add option to enable disk queue for elastic-agent-shipper #141508

Description

@leehinman

Part of #elastic/elastic-agent-shipper#118

Description

We need to support the new Elastic Agent Shipper in Fleet, that is going to replace the beats options currently configured in settings/outputs through YML editor. The aim is to allow the user to configure the new options from the Settings Output Flyout.

  • Options from add disk queue configuration to shipper configuration should be user configurable. The parameters shown in the UI are going to map those found in the reference configuration file.
    • Note that these are still in preliminary definition and might be changed. They are the same as current beats configs except for use_compression and  encryption_password.
    • The maximum batch size and flush timeout parameters are not yet defined for the shipper, so we're going to have placeholders (maximum_batch_bytes and output_queue_flush_timeout) until they get implemented.
    • Memory queue size for now is going to be Memory queue events. Copy: "Maximum number of events that can be stored in the queue. Default is set to 4096"
    • The encryption password doesn't need to be exposed in the UI as users don't need to be aware of it
  • Show the new options only when the Shipper feature flag is enabled per output (see comment)
    • The options should be visible for both Logstash and ES outputs
  • Implement toggle for disk queue vs memory queue (memory queue is the default). For the shipper the memory queue parameters are defined here.
    • Queue option is persistent between agent upgrade/downgrade
    • If downgrade is to 8.5.x or older, memory queue option is used (as disk queue wasn't available) and the new configuration under the shipper: object should be ignored
  • Disk Queue section should be collapsed when Disk Queue toggle is not enabled. Once enabled, all the options are available to the user to configure.
  • If Disk Queue and Encryption are enabled due to an integration, then Disk Queue and Encryption should be grayed out.
  • If Compression is disabled, do not display the compression levels.
    • Once compression is enabled, the compression levels (1 - 9) should be configurable.
    • All other options are available for configuration
  • Load balancing and compression options are unique to each output type. They'll be always visible in the case of Logstash/ES, however when the Kafka output will be added won't be applicable and will need to be hidden/grayed out
  • Add new shipper section to agent policy. The exact format is still being discussed ( see Namespace config values in fleet output elastic-agent#1729)
  • Write migration for new output format

Demo

  • Prepare recorded demo

Updated Mockups

Screenshot 2022-11-23 at 11 22 58

Screenshot 2022-11-23 at 11 24 21

Metadata

Metadata

Assignees

Labels

Team:FleetTeam label for Observability Data Collection Fleet teamv8.6.0

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions