Metric attributes need sort with keys only #1718
Merged
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.
HashKeyValue
is a simple wrapper aroundKeyValue
to provide hash, eq, ord implementations.The
Ord
implementation is required to ensure that attributes are treated the same irrespective of the order in which they are passed. This only requires a sort with theKey
alone.This PR simplifies the
Ord
implementation to be based of theKey
part alone from theKeyValue
. Also added tests to validate that all measurements aggregate to the same point, irrespective of the order in which KeyValue pairs are passed.(This is part of a somewhat big refactor of Metrics SDK to significantly improve performance - offering short PRs to make reviews easy. Also intentionally keeping the tests modelled like integration tests, instead of unit tests - this is to reduce churn when refactoring, as lot of internals are expected to change, but the end user facing API need to be relatively stable, as we move towards beta release.)