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
Maybe the goroutine responsible for actually exporting the log records should be also responsible for getting/dequeuing the log records from the queue instead of doing it here?
My idea was that here we only signal that we want to have the exporter goroutine (processRecordsBatches) to try to export. The exporter goroutine could dequeue by itself. I do not think we need a sync.Pool for batches as we have only one exporting goroutine.
The idea is also to get rid of something like len(b.recordsBatches) == cap(b.recordsBatches) (or len(e.input) != cap(e.input)) which looks like a code smell.
Currently, the "poll goroutine" can consume almost a whole CPU thread when there is "big traffic" and bufferExporter.Ready returns false over and over (which results in no-op for loop) .
Created for tracking and assigning myself as "sponsor".
@wmdanor, feel free to continue working on it if you are interested.
However, giving my laconic description and unclear outcome, I totally understand if you do not want to abandon it.
Uh oh!
There was an error while loading. Please reload this page.
My idea was that here we only signal that we want to have the exporter goroutine (processRecordsBatches) to try to export. The exporter goroutine could dequeue by itself. I do not think we need a sync.Pool for batches as we have only one exporting goroutine.
The idea is also to get rid of something like
len(b.recordsBatches) == cap(b.recordsBatches)
(orlen(e.input) != cap(e.input)
) which looks like a code smell.Currently, the "poll goroutine" can consume almost a whole CPU thread when there is "big traffic" and
bufferExporter.Ready
returnsfalse
over and over (which results in no-op for loop) .Originally posted by @pellared in #6673 (comment)
The text was updated successfully, but these errors were encountered: