-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
[exporter] moving queue sender from pushing model to pulling model #11414
[exporter] moving queue sender from pushing model to pulling model #11414
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #11414 +/- ##
==========================================
- Coverage 92.15% 92.11% -0.05%
==========================================
Files 431 432 +1
Lines 20238 20382 +144
==========================================
+ Hits 18650 18774 +124
- Misses 1227 1240 +13
- Partials 361 368 +7 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
220383e
to
66f55f2
Compare
be.BatchMergeSplitfunc = bs.mergeSplitFunc | ||
|
||
if !be.queueCfg.Enabled { | ||
be.BatchSender = bs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need to create bs
at all if not used for !be.queueCfg.Enabled
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is related to #11414 (comment). The only reason batch sender is initialized here when !be.queueCfg.Enabled
is to set up batchMergeFunc
.
This can be removed once #11448 is merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are some high-level comments, also if you fix an issue use "Fixes #Number" and github will automatically close the issue.
Approved by mistake, PR looks good but needs some more review.
66f55f2
to
e37b01e
Compare
412e1a0
to
963ef11
Compare
… that operates on batch sender (#11448) #### Description As part of the effort to solve #10368, we no longer guarantee to initialize a `batchSender` when `batcher` is enabled. Therefore, we would like to remove the interface to set `mergeFunc` and `mergeSplitFunc` as a callback that operates on `batchSender`. Instead, users should use the alternative `WithBatchFuncs` that is a callback that operates `baseExporter`. Context: #11414 #### Link to tracking issue #8122 #10368 --------- Co-authored-by: Bogdan Drutu <[email protected]>
34dd771
to
03b28df
Compare
This PR was marked stale due to lack of activity. It will be closed in 14 days. |
Closed as inactive. Feel free to reopen if this PR is still being worked on. |
… that operates on batch sender (open-telemetry#11448) #### Description As part of the effort to solve open-telemetry#10368, we no longer guarantee to initialize a `batchSender` when `batcher` is enabled. Therefore, we would like to remove the interface to set `mergeFunc` and `mergeSplitFunc` as a callback that operates on `batchSender`. Instead, users should use the alternative `WithBatchFuncs` that is a callback that operates `baseExporter`. Context: open-telemetry#11414 #### Link to tracking issue open-telemetry#8122 open-telemetry#10368 --------- Co-authored-by: Bogdan Drutu <[email protected]>
Description
This PR implements a new component that pulls from queueSender to solve the issue mentioned in #10368.
The idea is that instead of allocating a group of reading goroutine and block them until the corresponding batch gets flushed, we now use a goroutine to read and then use the same goroutine go flush while allocating new goroutine to read.
Design doc:
https://docs.google.com/document/d/1y5jt7bQ6HWt04MntF8CjUwMBBeNiJs2gV4uUZfJjAsE/edit?usp=sharing
Link to tracking issue
#8122
Fixes #10368
Testing
Documentation