Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Elastic Agent] Support memory queue configuration #23993

Closed
simitt opened this issue Feb 11, 2021 · 9 comments
Closed

[Elastic Agent] Support memory queue configuration #23993

simitt opened this issue Feb 11, 2021 · 9 comments
Labels
enhancement Team:Elastic-Agent Label for the Agent team

Comments

@simitt
Copy link
Contributor

simitt commented Feb 11, 2021

The queue.* parameters in combination with output.elasticsearch.bulk_max_size and output.elasticsearch.worker are the most important settings to tune when scaling an APM Server deployment. Therefore it is important that the queue.* params are still supported; it is a requirement for running APM Server managed by Elastic Agent on cloud.

Different queue configurations should be allowed per sub process, as they will expect different workloads. Generally it is recommended to choose the queue settings in alignment with the above mentioned elasticsearch settings. While only one global output can be configured at the moment, the queue settings should still be configurable per sub process.

This probably requires changes in the memqueue to make it reloadable.

cc @ph, @ruflin, @urso

@simitt simitt added the Team:Elastic-Agent Label for the Agent team label Feb 11, 2021
@elasticmachine
Copy link
Collaborator

Pinging @elastic/agent (Team:Agent)

@urso
Copy link

urso commented Feb 11, 2021

Hm, I would rather see the memory queue to be removed in the future. In context of agent the memory queue would become an output setting, although it is somewhat unfortunated that each Beat will have it's own output.

@simitt
Copy link
Contributor Author

simitt commented Feb 15, 2021

We will need some support to configure the queue for 7.x when APM Server is managed by Elastic Agent. This is important to be able to scale the APM Server.

@ruflin
Copy link
Member

ruflin commented Feb 15, 2021

@simitt As a temporary solution, would it be enough to configure it through the input part and apm-server translates it to the correct place?

@simitt
Copy link
Contributor Author

simitt commented Feb 15, 2021

Configuration wise it would be fine to configure within the APM Server input vars; but we still need to have a solution in beats for actually applying the queue settings to the memory queue. This cannot be done by the APM Server code itself. Probably something similar to libbeat/cmd/instance/beat.go would be required in beats.

@ph
Copy link
Contributor

ph commented Feb 15, 2021

It is just me or having the queue defined in the input or adding it to the output requires the same amount of work, which to makes the queue reloadable? I don't think restarting the beats is an option here?

@simitt
Copy link
Contributor Author

simitt commented Feb 15, 2021

I believe the difference would be that currently only one global output can be configured, but the queue size should be configurable per sub process (e.g. having a different queue size for APM Server than for metricbeat, as the event size probably differs etc.).
Agree that applying the queue settings needs to be done in libbeat in both cases.

@ruflin
Copy link
Member

ruflin commented Feb 16, 2021

Reloading would definitively not be nice but I think today this is what happens with apm-server legacy if the queue config is changed?

@ph ph added the enhancement label Apr 30, 2021
@simitt
Copy link
Contributor Author

simitt commented Jul 9, 2021

Closing this in favor of #26638

@simitt simitt closed this as completed Jul 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Team:Elastic-Agent Label for the Agent team
Projects
None yet
Development

No branches or pull requests

5 participants