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

Cherry-pick #22650 to 7.x: Allow Beats to increase publisher internal queue size #22896

Merged
merged 1 commit into from
Dec 3, 2020

Conversation

adriansr
Copy link
Contributor

@adriansr adriansr commented Dec 3, 2020

Cherry-pick of PR #22650 to 7.x branch. Original message:

What does this PR do?

This is a mitigation to fix a problem with Beats that use PublishMode=DropIfFull (only Packetbeat).

This parameter is meant to drop events when the configured queue is full. However, due to the way the mem and spool queues are implemented, this is actually dropping events when the internal "publisher" queue is full. Due to the small hardcoded size in this queue (20 events), it can get full easily when the publisher queue is not full, just because a burst of events is published and the consumer goroutine doesn't react fast enough to consume them.

Changes in this PR allows Beats to set a parameter in instance.Settings to request a larger internal queue and Packetbeat is updated to request a queue for up to 400 events. All other Beats remain unchanged.

Why is it important?

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Author's Checklist

  • [ ]

How to test this PR locally

Related issues

Use cases

Screenshots

Logs

This is a mitigation to fix a problem with Beats that use
PublishMode=DropIfFull (only Packetbeat).

This parameter is meant to drop events when the configured queue is
full. However, due to the way the mem and spool queues are implemented,
this is actually dropping events when the internal "publisher" queue is
full. Due to the small hardcoded size in this queue (20 events), it can
get full easily when the publisher queue is not full, just because a
burst of events is published and the consumer goroutine doesn't react
fast enough to consume them.

Changes in this PR allows Beats to set a parameter in instance.Settings
to request a larger internal queue and Packetbeat is updated to request
a queue for up to 400 events. All other Beats remain unchanged.

(cherry picked from commit 1657b5a)
@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Dec 3, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/security-external-integrations (Team:Security-External Integrations)

@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Dec 3, 2020
@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: Pull request #22896 opened

  • Start Time: 2020-12-03T14:59:28.851+0000

  • Duration: 59 min 18 sec

Test stats 🧪

Test Results
Failed 0
Passed 16843
Skipped 1398
Total 18241

Steps errors 2

Expand to view the steps failures

Terraform Apply on x-pack/metricbeat/module/aws

  • Took 0 min 14 sec . View more details on here

Terraform Apply on x-pack/metricbeat/module/aws

  • Took 0 min 16 sec . View more details on here

💚 Flaky test report

Tests succeeded.

Expand to view the summary

Test stats 🧪

Test Results
Failed 0
Passed 16843
Skipped 1398
Total 18241

@adriansr adriansr merged commit 4309c8b into elastic:7.x Dec 3, 2020
@zube zube bot removed the [zube]: Done label Mar 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants