1313#include < thread>
1414
1515using opentelemetry::exporter::metrics::PrometheusCollector;
16+ using opentelemetry::sdk::metrics::MetricProducer;
1617using opentelemetry::sdk::metrics::ResourceMetrics;
1718namespace metric_api = opentelemetry::metrics;
1819namespace metric_sdk = opentelemetry::sdk::metrics;
1920namespace metric_exporter = opentelemetry::exporter::metrics;
2021
21- class MockMetricProducer : public opentelemetry ::sdk::metrics:: MetricProducer
22+ class MockMetricProducer : public MetricProducer
2223{
2324 TestDataPoints test_data_points_;
2425
@@ -27,13 +28,12 @@ class MockMetricProducer : public opentelemetry::sdk::metrics::MetricProducer
2728 : sleep_ms_{sleep_ms}
2829 {}
2930
30- bool Collect (nostd::function_ref< bool (ResourceMetrics &)> callback ) noexcept override
31+ MetricProducer::Result Produce ( ) noexcept override
3132 {
3233 std::this_thread::sleep_for (sleep_ms_);
3334 data_sent_size_++;
3435 ResourceMetrics data = test_data_points_.CreateSumPointData ();
35- callback (data);
36- return true ;
36+ return {data, MetricProducer::Status::kSuccess };
3737 }
3838
3939 size_t GetDataCount () { return data_sent_size_; }
@@ -71,15 +71,13 @@ class MockMetricReader : public opentelemetry::sdk::metrics::MetricReader
7171 */
7272TEST (PrometheusCollector, BasicTests)
7373{
74- MockMetricReader * reader = new MockMetricReader () ;
75- MockMetricProducer * producer = new MockMetricProducer () ;
76- reader-> SetMetricProducer (producer);
77- PrometheusCollector collector (reader, true , false );
74+ MockMetricReader reader;
75+ MockMetricProducer producer;
76+ reader. SetMetricProducer (& producer);
77+ PrometheusCollector collector (& reader, true , false );
7878 auto data = collector.Collect ();
7979
8080 // Collection size should be the same as the size
8181 // of the records collection produced by MetricProducer.
8282 ASSERT_EQ (data.size (), 2 );
83- delete reader;
84- delete producer;
8583}
0 commit comments