You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 21, 2023. It is now read-only.
Wouldn't it be more efficient to use in-memory queues which temporarily fall back to on-disk queues if there's a network issue?
When the connectivity issue is resolved, push the events from the on-disk queue back to the output integration. I've built software which did this using channels in Go to add redundancy by caching data to disk. This was done when there was a problem writing to elastic using the go-elasticsearch bulk indexer and it worked well. The software would periodically check connectivity to the cluster and send the events when there was no longer an issue.
This could be done by having an option to flush the in-memory queue to the on-disk queue instead of dropping the events. This would reduce the resources required to run on-disk queues on busy production servers 24/7. It sounds like on disk queues on busy domain controllers or other critical systems might use more resource which could trigger out IT teams to complain. It's too complicated to have separate policies in large multi-regional deployments to have in-memory queues on a subset of endpoints.
It's a good idea, but exploring that needs to come after making the disk queue available at all. Today there is definitely a performance penalty to write to disk as it requires serializing the event twice (once to disk, once to the output) but we haven't thoroughly quantified what it is. We may also be able to improve that cost.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Checklist to achieve
experimental
statusencryption_password
when disk queue is encryption is enabled elastic-agent#1656Checklist to achieve
beta
statusChecklist to achieve
ga
statusThe text was updated successfully, but these errors were encountered: