-
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
[exporterhelper][batcher] User interface for controling batch measurement #12303
Comments
Any reason we are limiting users to only one mechanism? Why not have separate fields for both (items, byte size) |
@ms-jcorley Thanks for the input!
I think people use byte-size based batching to keep the payload size under outgoing protocol's limit; item-count based batching is more of a compromise because it is less accurate but has lower resource usage. What would be the use case to specify both limit? As for the unit, I agree that MB would be redundant for batching, but will be useful for queueing. |
Thanks, @sfc-gh-sili, for bringing this up. I lean towards the Option 1. However, I suggest some modifications. We don't need the whole Yes, it would prevent us from being able to batch with more than one sizer, but we are not solving that problem right now. I believe that would significantly complicate the batching implementation. There is an initiative to bring exporterhelper to connectors. Once we have that, this ask would be addressed with a bit more complicated pipeline while keeping the batcher simple. |
Now that I understand the background a bit more, I agree. Option 1 with just an added sizer field would be my vote. |
As part of the effort to support serialized byte based batching (#3262), we need to provide a way to configure the batch size in a couple of options, including item count, request count, and serialized byte size.
To avoid confusion, we should ensure that the Batching Config API uses the same sizer for max size and min size, and should align with the size limit in Queueing Config API (see discussion #9462)
Option 1 (expanded from discussion in #12154)
In addition to the above definition, we will
requests
,items
, orbytes
I like this option because this implicitly enforces the same sizer for min size and max size.
Option 1.a
Option 1.b
Option 1.c
TODO: try
Option 2 (derived from the most voted in #9462)
Validation will check that only one of the above fields are set + min size config and max size config uses the same sizer.
Personally I would vote for option 1.b, because each enum type sizer corresponds to its merge-splitting logic, while
max_size
andmin_size
is fully in charge of expressing the largeness.@open-telemetry/collector-approvers looking forward to hear some thoughts.
The text was updated successfully, but these errors were encountered: