2626#include " opentelemetry/sdk/metrics/meter_provider.h"
2727#include " opentelemetry/sdk/metrics/metric_reader.h"
2828#include " opentelemetry/sdk/metrics/push_metric_exporter.h"
29+ #include " opentelemetry/sdk/metrics/state/attributes_hashmap.h"
2930#include " opentelemetry/sdk/metrics/view/attributes_processor.h"
3031#include " opentelemetry/sdk/metrics/view/instrument_selector.h"
3132#include " opentelemetry/sdk/metrics/view/meter_selector.h"
3233#include " opentelemetry/sdk/metrics/view/view.h"
33- #include " opentelemetry/sdk/metrics/state/attributes_hashmap.h"
3434
3535#if OPENTELEMETRY_HAVE_WORKING_REGEX
3636
@@ -150,7 +150,7 @@ TEST(HistogramToSumFilterAttributesWithCardinaityLimit, Double)
150150 std::string instrument_unit = " ms" ;
151151 std::string instrument_name = " historgram1" ;
152152 std::string instrument_desc = " histogram metrics" ;
153- size_t cardinality_limit = 10000 ;
153+ size_t cardinality_limit = 10000 ;
154154
155155 std::unordered_map<std::string, bool > allowedattr;
156156 allowedattr[" attr1" ] = true ;
@@ -163,9 +163,8 @@ TEST(HistogramToSumFilterAttributesWithCardinaityLimit, Double)
163163 std::shared_ptr<MetricReader> reader{new MockMetricReader (std::move (exporter))};
164164 mp.AddMetricReader (reader);
165165
166- std::unique_ptr<View> view{new View (" view1" , " view1_description" ,
167- AggregationType::kSum , dummy_aggregation_config,
168- std::move (attrproc))};
166+ std::unique_ptr<View> view{new View (" view1" , " view1_description" , AggregationType::kSum ,
167+ dummy_aggregation_config, std::move (attrproc))};
169168 std::unique_ptr<InstrumentSelector> instrument_selector{
170169 new InstrumentSelector (InstrumentType::kHistogram , instrument_name, instrument_unit)};
171170 std::unique_ptr<MeterSelector> meter_selector{new MeterSelector (" meter1" , " version1" , " schema1" )};
@@ -182,7 +181,8 @@ TEST(HistogramToSumFilterAttributesWithCardinaityLimit, Double)
182181 {
183182 for (size_t i = 0 ; i < 2 * cardinality_limit; i++)
184183 {
185- std::unordered_map<std::string, std::string> attr = {{" attr1" , std::to_string (i)}, {" attr2" , " val2" }};
184+ std::unordered_map<std::string, std::string> attr = {{" attr1" , std::to_string (i)},
185+ {" attr2" , " val2" }};
186186 h->Record (1 , attr, opentelemetry::context::Context{});
187187 }
188188 }
@@ -192,20 +192,27 @@ TEST(HistogramToSumFilterAttributesWithCardinaityLimit, Double)
192192 {
193193 for (const MetricData &md : smd.metric_data_ )
194194 {
195- // 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.
195+ // Something weird about attributes hashmap. If cardinality is setup to n, it emits n-1
196+ // including overflow. Just making the logic generic here to succeed for n or n-1 total
197+ // cardinality.
196198 EXPECT_GE (cardinality_limit, md.point_data_attr_ .size ());
197199 EXPECT_LT (cardinality_limit / 2 , md.point_data_attr_ .size ());
198200 for (size_t i = 0 ; i < md.point_data_attr_ .size (); i++)
199201 {
200202 EXPECT_EQ (1 , md.point_data_attr_ [i].attributes .size ());
201- if (md.point_data_attr_ [i].attributes .end () != md.point_data_attr_ [i].attributes .find (" attr1" ))
203+ if (md.point_data_attr_ [i].attributes .end () !=
204+ md.point_data_attr_ [i].attributes .find (" attr1" ))
205+ {
206+ EXPECT_EQ (total_metrics_times * (repeat + 1 ),
207+ opentelemetry::nostd::get<double >(opentelemetry::nostd::get<SumPointData>(
208+ md.point_data_attr_ [i].point_data )
209+ .value_ ));
210+ }
211+ else
202212 {
203- EXPECT_EQ (total_metrics_times * (repeat + 1 ), opentelemetry::nostd::get<double >(opentelemetry::nostd::get<SumPointData>(
204- md.point_data_attr_ [i].point_data )
205- .value_ ));
206- } else {
207213 EXPECT_NE (md.point_data_attr_ [i].attributes .end (),
208- md.point_data_attr_ [i].attributes .find (sdk::metrics::kAttributesLimitOverflowKey ));
214+ md.point_data_attr_ [i].attributes .find (
215+ sdk::metrics::kAttributesLimitOverflowKey ));
209216 }
210217 }
211218 }
@@ -324,7 +331,7 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double)
324331 std::string instrument_unit = " ms" ;
325332 std::string instrument_name = " counter1" ;
326333 std::string instrument_desc = " counter metrics" ;
327- size_t cardinality_limit = 10000 ;
334+ size_t cardinality_limit = 10000 ;
328335
329336 std::unordered_map<std::string, bool > allowedattr;
330337 allowedattr[" attr1" ] = true ;
@@ -337,9 +344,8 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double)
337344 std::shared_ptr<MetricReader> reader{new MockMetricReader (std::move (exporter))};
338345 mp.AddMetricReader (reader);
339346
340- std::unique_ptr<View> view{new View (" view1" , " view1_description" ,
341- AggregationType::kSum , dummy_aggregation_config,
342- std::move (attrproc))};
347+ std::unique_ptr<View> view{new View (" view1" , " view1_description" , AggregationType::kSum ,
348+ dummy_aggregation_config, std::move (attrproc))};
343349 std::unique_ptr<InstrumentSelector> instrument_selector{
344350 new InstrumentSelector (InstrumentType::kCounter , instrument_name, instrument_unit)};
345351 std::unique_ptr<MeterSelector> meter_selector{new MeterSelector (" meter1" , " version1" , " schema1" )};
@@ -356,7 +362,8 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double)
356362 {
357363 for (size_t i = 0 ; i < 2 * cardinality_limit; i++)
358364 {
359- std::unordered_map<std::string, std::string> attr = {{" attr1" , std::to_string (i)}, {" attr2" , " val2" }};
365+ std::unordered_map<std::string, std::string> attr = {{" attr1" , std::to_string (i)},
366+ {" attr2" , " val2" }};
360367 c->Add (1 , attr, opentelemetry::context::Context{});
361368 }
362369 }
@@ -366,20 +373,27 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double)
366373 {
367374 for (const MetricData &md : smd.metric_data_ )
368375 {
369- // 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.
376+ // Something weird about attributes hashmap. If cardinality is setup to n, it emits n-1
377+ // including overflow. Just making the logic generic here to succeed for n or n-1 total
378+ // cardinality.
370379 EXPECT_GE (cardinality_limit, md.point_data_attr_ .size ());
371380 EXPECT_LT (cardinality_limit / 2 , md.point_data_attr_ .size ());
372381 for (size_t i = 0 ; i < md.point_data_attr_ .size (); i++)
373382 {
374383 EXPECT_EQ (1 , md.point_data_attr_ [i].attributes .size ());
375- if (md.point_data_attr_ [i].attributes .find (" attr1" ) != md.point_data_attr_ [i].attributes .end ())
384+ if (md.point_data_attr_ [i].attributes .find (" attr1" ) !=
385+ md.point_data_attr_ [i].attributes .end ())
386+ {
387+ EXPECT_EQ (total_metrics_times * (repeat + 1 ),
388+ opentelemetry::nostd::get<double >(opentelemetry::nostd::get<SumPointData>(
389+ md.point_data_attr_ [i].point_data )
390+ .value_ ));
391+ }
392+ else
376393 {
377- EXPECT_EQ (total_metrics_times * (repeat + 1 ), opentelemetry::nostd::get<double >(opentelemetry::nostd::get<SumPointData>(
378- md.point_data_attr_ [i].point_data )
379- .value_ ));
380- } else {
381394 EXPECT_NE (md.point_data_attr_ [i].attributes .end (),
382- md.point_data_attr_ [i].attributes .find (sdk::metrics::kAttributesLimitOverflowKey ));
395+ md.point_data_attr_ [i].attributes .find (
396+ sdk::metrics::kAttributesLimitOverflowKey ));
383397 }
384398 }
385399 }
@@ -389,7 +403,6 @@ TEST(CounterToSumFilterAttributesWithCardinalityLimit, Double)
389403 }
390404}
391405
392-
393406class UpDownCounterToSumFixture : public ::testing::TestWithParam<bool >
394407{};
395408
0 commit comments