Conversation
metricbeat/metricbeat.reference.yml
Outdated
There was a problem hiding this comment.
It's a bit strange that we call it here queue and in the code broker. This will need some docs and changelog entry. But can happen in a follow up PR. Does this have to be in this PR?
There was a problem hiding this comment.
These are the user-visible settings. I decided to rename the broker package to queue, but first I want to get the changes to the settings in and documented, so we won't introduce BC-breaking changes in case package updates PR gets merged late.
fe27bb3 to
cc174ea
Compare
auditbeat/auditbeat.reference.yml
Outdated
There was a problem hiding this comment.
"to be sent" is correct
auditbeat/auditbeat.reference.yml
Outdated
There was a problem hiding this comment.
What happens when this is reached? Flush happens? Thinking if there should be flush.min, flush.max and flush.timeout or similar?
There was a problem hiding this comment.
Semantics is a little different from old spooler here. The queue/broker does not flush its buffers. By default it basically stream the events right through to the outputs (if output takes somewhat longer it will be presented with all events available - up to bulk_max_size).
By configuring min_events, the queue will block the output until:
- at least min events is reached
- timeout is trigger
The min events is more of a hint, as the output might still receive a smaller buffer.
There was a problem hiding this comment.
The events setting is the maximum number of events the queue can hold. It's independent of min_events and flush timer. Only min_events must be < events.
There was a problem hiding this comment.
Naming is a little weird here... as it's more like 'block-processing' settings...
There was a problem hiding this comment.
@urso what happens when events is reached? I assume it will block from adding more events? In case of metricbeat assuming sending events is slower then generating events but still all events are acked. What will happen?
There was a problem hiding this comment.
once events is reached, the queue will block (no more space). Upon ACK of N events, another N events can be stored in the queue (N producers will be unblocked).
There was a problem hiding this comment.
As quickly discussed, later we should probably rename broker package to queue to make the relation to the config more obvious.
There was a problem hiding this comment.
Seems like the 3 params could be a config struct for borkers.
winlogbeat/winlogbeat.reference.yml
Outdated
There was a problem hiding this comment.
I'll open a PR to delete this block of code from Winlogbeat so that queue isn't rejected.
57756c6 to
b3f1b82
Compare
CHANGELOG.asciidoc
Outdated
There was a problem hiding this comment.
Should we add a message to the 5.6 release that these values will change?
CHANGELOG.asciidoc
Outdated
There was a problem hiding this comment.
Same here, we should probably have a message in 5.6 or even better, not let the beat start in 6.0 if these values are set?
auditbeat/auditbeat.reference.yml
Outdated
There was a problem hiding this comment.
Is there a reason we changed the default to 5? Should probably be mentioned in the changelog?
There was a problem hiding this comment.
- pipeline can operate complete async -> take advantage of this fact
- with default settings we have a high chance to publish very small batches (no flush timeout -> reduced latency) if producers don't have a high enough rate. In Logstash case we can easily compensate for this by pushing more batches on the link
filebeat/config/config.go
Outdated
There was a problem hiding this comment.
Glad to see this one removed ;-)
There was a problem hiding this comment.
Kind of surprised to see a minimum here.
There was a problem hiding this comment.
well, we need to buffer some data for pushing to the outputs. Without queue the pipeline won't be able to operate -> enforce minimum so users don't use 1 or 0.
- remove setting queue_size - remove unused setting bulk_queue_size - introduce settings namespace `queue` with default `mem.events: 4096` - add settings queue.mem.flush.min_events and queue.mem.flush.timeout - change default output.logstash.pipelining to 5 - remove spooler settings from filebeat config object - Update winlogbeat config validate check
|
Translating old configurations:
|
|
I'm removing the needs_docs label here because I believe we've covered the doc requirements with the topic https://www.elastic.co/guide/en/beats/filebeat/current/configuring-internal-queue.html and the removed settings that are documented in the breaking changes for the release. |
filebeat.spooler,filebeat.publish_async,filebeat.idle_timeout,queue_size,bulk_queue_sizequeue.<queue_type>events,flush.min_events,flush.timeoutNote: docs will be updated in a separate PR.