Fix observable counter cumulative aggregation #1644
+227
−25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1517 (incorrect cumulative aggregation for observable counters).
Changes
The observable counters rely on
PrecomputedSum
that was using the sameValueMap
implementation asSum
(its counterpart for synchronous counters), effectively adding all observations (also drastically reducing the counter range).This PR specializes
ValueMap
with anO
(operation) parameter so that observations can be performed with the correct semantics (AddAssign
for synchronous counters,Assign
for observable ones). It also updates thePrecomputedSum::cumulative
aggregation to return the current value.The tests (
observable_counter_delta
andobservable_counter_cumulative
) are from #1516 with tiny fixes.Merge requirement checklist
CHANGELOG.md
files updated for non-trivial, user-facing changes