-
Notifications
You must be signed in to change notification settings - Fork 889
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
Recommend a default size of 1 for the SimpleFixedSizeExemplarReservoir
#3670
Conversation
This reservoir type is used for all aggregations other than a histogram with more than one bucket. Each attribute set the aggregation records will have reservoir. Therefore, limiting this to a small value by default when enabled is preferable. This does not address the way a user will configure this value. That is left for a future PR/Issue. Part of open-telemetry#2421
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.
I'm not fully convinced the limit of "1" by OpenMetrics is a great default. IIUC - It's more a limitation of their protocol (only one exemplar per "point").
Specifically -
SimpleFixedSizeExemplarReservoir is likely the right reservoir for ExponentialHistograms. For these, we should definitely encourage a larger pool size.
Limiting to 1 is fine for now, but with ExponentialHistograms moving towards stable I'd encourage us to call out a different default for those.
Would it make sense in this case to use a default size equal to the exponential histogram's max size configuration? I can update for that aggregator in a follow up PR if that makes sense @jsuereth. |
I actually think the exponential histogram's default may be a bit too large right now, at least if we also track exemplars there. I'd suggest limiting to a range of 5-20 exemplars (or some division of the exponential histogram's max size) purely from an overhead standpoint on tracking these points. I don't have hard numbers to back this up, just some anecdotes. Here's some VERY lazy math with naive assumptions: Explicit Bucket histograms
Exponential Bucket Histogram
Given the key size differential, I don't think we should be spending quite as much memory overhead on exemplars. Particularly because Exponential Buckets are intended to give us very high accuracy percentiles. I think we're better of attempting to grab lower number but higher entropy exemplars.
that's good with me! |
Tracking with #3674 |
This reservoir type is used for all aggregations other than a histogram with more than one bucket. Each attribute set the aggregation records will have an instance of this reservoir. Therefore, limiting this to a small value by default when enabled is preferable.
This does not address the way a user will configure this value. That is left for a future PR/Issue.
Part of #2421
Additional context
For similar aggregation types, OpenMetrics allows one exemplar.
It looks like OpenCensus expected libraries to "retain and export at least [one] exemplar". But it is a little unclear if this is comparable.