Skip to content
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

[internal/comparetest] Sort resource metrics by attributes #17179

Merged

Conversation

dmitryax
Copy link
Member

@dmitryax dmitryax commented Dec 20, 2022

Sort ResourceMetrics by attributes using the new map hash function. It brings the sorting behavior to consistency with the sorting of ScopeMetrics.

This change also applies a correction to the TestCompareMetrics/ignore-one-resource-attribute-multiple-resources test case. It is used to compare several ResourceMetrics with the same resource attributes relying on a different number of datapoints synthetically adjusted to have a deterministic order with the existing logic, but the different number of datapoints is not a real scenario in any of the existing scraping receivers. This change simplifies the actual/expected test datasets to have different attributes for each ResourceMetrics instance.

Depends on #17169

@dmitryax
Copy link
Member Author

@djaglowski PTAL whenever you have a chance

@runforesight
Copy link

runforesight bot commented Dec 20, 2022

Foresight Summary

    
Major Impacts

build-and-test-windows duration(4 seconds) has decreased 43 minutes 35 seconds compared to main branch avg(43 minutes 39 seconds).
View More Details

⭕  changelog workflow has finished in 4 seconds (8 minutes 58 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
changelog -     🔗  N/A See Details

⭕  build-and-test-windows workflow has finished in 4 seconds (43 minutes 35 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
windows-unittest-matrix -     🔗  N/A See Details
windows-unittest -     🔗  N/A See Details

✅  check-links workflow has finished in 48 seconds (2 minutes 43 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
changed files -     🔗  N/A See Details
check-links -     🔗  N/A See Details

✅  tracegen workflow has finished in 1 minute 12 seconds (2 minutes 39 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
build-dev -     🔗  N/A See Details
publish-latest -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  build-and-test workflow has finished in 43 minutes 43 seconds (16 minutes 14 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
unittest-matrix (1.18, internal) -     🔗  ✅ 597  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, extension) -     🔗  ✅ 528  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, internal) -     🔗  ✅ 597  ❌ 0  ⏭ 0    🔗 See Details
correctness-metrics -     🔗  ✅ 2  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, processor) -     🔗  ✅ 1474  ❌ 0  ⏭ 0    🔗 See Details
correctness-traces -     🔗  ✅ 17  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, processor) -     🔗  ✅ 1474  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, extension) -     🔗  ✅ 528  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-0) -     🔗  ✅ 2539  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-0) -     🔗  ✅ 2539  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, exporter) -     🔗  ✅ 2456  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, exporter) -     🔗  ✅ 2456  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, other) -     🔗  ✅ 4394  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, other) -     🔗  ✅ 4394  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-1) -     🔗  ✅ 1871  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-1) -     🔗  ✅ 1871  ❌ 0  ⏭ 0    🔗 See Details
integration-tests -     🔗  ✅ 55  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details
check-collector-module-version -     🔗  N/A See Details
check-codeowners -     🔗  N/A See Details
checks -     🔗  N/A See Details
lint-matrix (receiver-1) -     🔗  N/A See Details
lint-matrix (receiver-0) -     🔗  N/A See Details
lint-matrix (processor) -     🔗  N/A See Details
lint-matrix (exporter) -     🔗  N/A See Details
lint-matrix (internal) -     🔗  N/A See Details
lint-matrix (other) -     🔗  N/A See Details
lint-matrix (extension) -     🔗  N/A See Details
build-examples -     🔗  N/A See Details
unittest (1.19) -     🔗  N/A See Details
unittest (1.18) -     🔗  N/A See Details
lint -     🔗  N/A See Details
cross-compile (darwin, amd64) -     🔗  N/A See Details
cross-compile (darwin, arm64) -     🔗  N/A See Details
cross-compile (linux, 386) -     🔗  N/A See Details
cross-compile (linux, amd64) -     🔗  N/A See Details
cross-compile (linux, arm) -     🔗  N/A See Details
cross-compile (linux, ppc64le) -     🔗  N/A See Details
cross-compile (linux, arm64) -     🔗  N/A See Details
cross-compile (windows, 386) -     🔗  N/A See Details
cross-compile (windows, amd64) -     🔗  N/A See Details
build-package (deb) -     🔗  N/A See Details
build-package (rpm) -     🔗  N/A See Details
windows-msi -     🔗  N/A See Details
publish-dev -     🔗  N/A See Details
publish-check -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  load-tests workflow has finished in 9 minutes 1 second (8 minutes 28 seconds less than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
loadtest (TestIdleMode) -     🔗  ✅ 1  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceAttributesProcessor) -     🔗  ✅ 3  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetric10kDPS|TestMetricsFromFile) -     🔗  ✅ 6  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceNoBackend10kSPS|TestTrace1kSPSWithAttrs) -     🔗  ✅ 8  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetricResourceProcessor|TestTrace10kSPS) -     🔗  ✅ 12  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceBallast1kSPSWithAttrs|TestTraceBallast1kSPSAddAttrs) -     🔗  ✅ 10  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestBallastMemory|TestLog10kDPS) -     🔗  ✅ 19  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details

✅  prometheus-compliance-tests workflow has finished in 13 minutes 42 seconds (⚠️ 3 minutes 43 seconds more than main branch avg.) and finished at 20th Dec, 2022.


Job Failed Steps Tests
prometheus-compliance-tests -     🔗  ✅ 21  ❌ 0  ⏭ 0    🔗 See Details

🔎 See details on Foresight

*You can configure Foresight comments in your organization settings page.

@dmitryax dmitryax added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Dec 20, 2022
@dmitryax dmitryax changed the title Sort resource metrics by attributes [internal/comparetest] Sort resource metrics by attributes Dec 20, 2022
The function supposed to be used in places where data need to be grouped by attributes map. Adding it in contrib for now until it's ready to be moved to core
@dmitryax dmitryax force-pushed the sort-resource-metrics-by-attributes branch from 34405fc to 57c34f4 Compare December 20, 2022 22:55
Sort ResourceMetrics by attributes using the new map hash function. It brings the sorting behavior to consistency with the sorting of ScopeMetrics
@dmitryax dmitryax force-pushed the sort-resource-metrics-by-attributes branch from 57c34f4 to 2ef92bf Compare December 20, 2022 23:11
@djaglowski djaglowski merged commit 34b6fae into open-telemetry:main Dec 27, 2022
@dmitryax dmitryax deleted the sort-resource-metrics-by-attributes branch January 2, 2023 19:16
@plantfansam plantfansam mentioned this pull request Jul 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants