[output.wavefront] Introduced "immediate_flush" flag#8165
Merged
ssoroka merged 5 commits intoinfluxdata:masterfrom Nov 3, 2020
wavefrontHQ:prydin-wfnobuffer
Merged
[output.wavefront] Introduced "immediate_flush" flag#8165ssoroka merged 5 commits intoinfluxdata:masterfrom wavefrontHQ:prydin-wfnobuffer
ssoroka merged 5 commits intoinfluxdata:masterfrom
wavefrontHQ:prydin-wfnobuffer
Conversation
ssoroka
reviewed
Sep 22, 2020
Contributor
There was a problem hiding this comment.
This is great, but I think there's no reason to still support the buffer or allow configuration of the flush. Keep in mind Telegraf is already doing periodic flush (which is essentially the write method) based on metric_batch_size and flush_interval.
ssoroka
approved these changes
Nov 2, 2020
3 tasks
ssoroka
pushed a commit
that referenced
this pull request
Nov 13, 2020
(cherry picked from commit 748af7f)
arstercz
pushed a commit
to arstercz/telegraf
that referenced
this pull request
Mar 5, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Required for all PRs:
Addresses an issue mentioned in #7409 concerning the "double buffering" done by the Wavefront SDK. The SDK is designed to send metrics asynchronously in order to minimize the delay experienced by a caller. This behavior is not ideal when used with Telegraf, since Telegraf will assume the connection to Wavefront can accept data very quickly. When the internal buffer in the Wavefront SDK overflows, it will drop metrics. Meanwhile, Telegraf will still think the metrics are flowing at a very high rate and will keep flooding the SDK.
To avoid extensive redesign of the SDK, this PR adds a flag,
immediate_flushthat flushes the internal SDK buffers after each batch. This will ensure that the buffer never fills with more records than the batch size and also has the side effect of providing "back pressure" to the Telegraf core. Thanks to that back pressure, Telegraf will no longer be "tricked" into thinking the connection has virtually unlimited capacity and can take whatever the action it needs to manage the throughput gracefully.