Description
Is your feature request related to a problem? Please describe.
Related to batch sender in #8122
Currently, queue sender and batch sender work together fine, but the config sending_queue.num_consumers
and batch sender concurrencyLimit
make it a little awkward to use. The awkwardness comes from the fact that it is impossible for batch sender to get more requests than queue sender's num_consumers, and may be forced to export a smaller batch due to it.
I am also not sure if this presents a performance problem at scale, which means a lot of goroutines will be involved.
The batch sender concurrency check has also been prone to unfavorable goroutine scheduling, as reported in #9952 .
Describe the solution you'd like
Ideally, queue sender can keep sending to batch sender without an artificial limit, such that batching is only triggered by min_size_items and flush_timeout.
I don't have an idea how to implement this yet. Also, this may require a change in contract between exporterhelper parts.