From c384da9921eeb2834d3a59e64541c3bd6acae3a5 Mon Sep 17 00:00:00 2001 From: Tom Tan Date: Thu, 25 Sep 2025 17:21:11 -0700 Subject: [PATCH 1/3] [TEST] Remove workaround for Metrics cardinality limit test --- sdk/test/metrics/sum_aggregation_test.cc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/sdk/test/metrics/sum_aggregation_test.cc b/sdk/test/metrics/sum_aggregation_test.cc index 02421a9e26..fc6be03a20 100644 --- a/sdk/test/metrics/sum_aggregation_test.cc +++ b/sdk/test/metrics/sum_aggregation_test.cc @@ -194,11 +194,7 @@ TEST(HistogramToSumFilterAttributesWithCardinalityLimit, Double) { for (const MetricData &md : smd.metric_data_) { - // Something weird about attributes hashmap. If cardinality is setup to n, it emits n-1 - // including overflow. Just making the logic generic here to succeed for n or n-1 total - // cardinality. - EXPECT_GE(cardinality_limit, md.point_data_attr_.size()); - EXPECT_LT(cardinality_limit / 2, md.point_data_attr_.size()); + EXPECT_GE(cardinality_limit - 1, md.point_data_attr_.size()); for (size_t i = 0; i < md.point_data_attr_.size(); i++) { EXPECT_EQ(1, md.point_data_attr_[i].attributes.size()); @@ -380,8 +376,7 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double) // resulting in a total of cardinality_limit sets. This test checks that the number of // emitted attribute sets is within the expected range, accounting for the overflow // behavior. - EXPECT_GE(cardinality_limit, md.point_data_attr_.size()); - EXPECT_LT(cardinality_limit / 2, md.point_data_attr_.size()); + EXPECT_GE(cardinality_limit - 1, md.point_data_attr_.size()); for (size_t i = 0; i < md.point_data_attr_.size(); i++) { EXPECT_EQ(1, md.point_data_attr_[i].attributes.size()); From 35b7dc26a9def824d741cab1ac9da194fd71bbff Mon Sep 17 00:00:00 2001 From: Tom Tan Date: Thu, 25 Sep 2025 17:31:02 -0700 Subject: [PATCH 2/3] Update test condition --- sdk/test/metrics/sum_aggregation_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/test/metrics/sum_aggregation_test.cc b/sdk/test/metrics/sum_aggregation_test.cc index fc6be03a20..5c29fe43e8 100644 --- a/sdk/test/metrics/sum_aggregation_test.cc +++ b/sdk/test/metrics/sum_aggregation_test.cc @@ -194,7 +194,7 @@ TEST(HistogramToSumFilterAttributesWithCardinalityLimit, Double) { for (const MetricData &md : smd.metric_data_) { - EXPECT_GE(cardinality_limit - 1, md.point_data_attr_.size()); + EXPECT_EQ(cardinality_limit, md.point_data_attr_.size()); for (size_t i = 0; i < md.point_data_attr_.size(); i++) { EXPECT_EQ(1, md.point_data_attr_[i].attributes.size()); @@ -376,7 +376,7 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double) // resulting in a total of cardinality_limit sets. This test checks that the number of // emitted attribute sets is within the expected range, accounting for the overflow // behavior. - EXPECT_GE(cardinality_limit - 1, md.point_data_attr_.size()); + EXPECT_EQ(cardinality_limit, md.point_data_attr_.size()); for (size_t i = 0; i < md.point_data_attr_.size(); i++) { EXPECT_EQ(1, md.point_data_attr_[i].attributes.size()); From 6626a1e35ed218f84d1f5eb55830417b51cf9f66 Mon Sep 17 00:00:00 2001 From: Tom Tan Date: Thu, 25 Sep 2025 22:29:42 -0700 Subject: [PATCH 3/3] Add changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1341a52ab..fa87cbc131 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ Increment the: ## [Unreleased] +* [TEST] Remove workaround for metrics cardinality limit test + [#3663](https://github.com/open-telemetry/opentelemetry-cpp/pull/3663) + ## [1.23 2025-09-25] * [CodeHealth] Fix clang-tidy warnings part 6