-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Bound memory use of the cumulative sum aggregator #3006
Comments
I think that OpenTelemetry may want to specify a behavior for SDKs to agree on and implement. The data model features "no data present" flags for each data point, which can be used to signal the intentional end of a series--it would be appropriate to emit one of these no-data-present points for "a while" before forgetting the point entirely. The problem or difficulty is in determining what the new start time should be when the series is re-started. Not sure there's a "best" answer to this question. |
Agreed. I also think in that agreement it need to specify what stale means. If one implementation defines stale as 5 cycles and another 2000 user behavior will be different. Is this something you can work on in the specification @jmacd? |
I am interested in helping with this specification, but I would like to look to the Prometheus developers for guidance. |
The cumulative sum
Aggregator
will never forget a sum for an attribute set, even if that set if never updated again.This means that an unbounded amount of memory will be used by the SDK if there are unbounded number of attribute sets being used.
Ultimately this is a user problem, they need to not allow unbounded many attribute sets to be recorded. However, the SDK should attempt to optimize its performance and remove "state" sums it has.
TODO
Aggregator
that forgets stale sums.The text was updated successfully, but these errors were encountered: