1212#include < thread>
1313
1414using opentelemetry::exporter::metrics::PrometheusCollector;
15+ using opentelemetry::sdk::metrics::MetricProducer;
1516using opentelemetry::sdk::metrics::ResourceMetrics;
1617namespace metric_api = opentelemetry::metrics;
1718namespace metric_sdk = opentelemetry::sdk::metrics;
1819namespace metric_exporter = opentelemetry::exporter::metrics;
1920
20- class MockMetricProducer : public opentelemetry ::sdk::metrics:: MetricProducer
21+ class MockMetricProducer : public MetricProducer
2122{
2223 TestDataPoints test_data_points_;
2324
@@ -26,13 +27,12 @@ class MockMetricProducer : public opentelemetry::sdk::metrics::MetricProducer
2627 : sleep_ms_{sleep_ms}
2728 {}
2829
29- bool Collect (nostd::function_ref< bool (ResourceMetrics &)> callback ) noexcept override
30+ MetricProducer::Result Produce ( ) noexcept override
3031 {
3132 std::this_thread::sleep_for (sleep_ms_);
3233 data_sent_size_++;
3334 ResourceMetrics data = test_data_points_.CreateSumPointData ();
34- callback (data);
35- return true ;
35+ return {data, MetricProducer::Status::kSuccess };
3636 }
3737
3838 size_t GetDataCount () { return data_sent_size_; }
@@ -70,15 +70,13 @@ class MockMetricReader : public opentelemetry::sdk::metrics::MetricReader
7070 */
7171TEST (PrometheusCollector, BasicTests)
7272{
73- MockMetricReader * reader = new MockMetricReader () ;
74- MockMetricProducer * producer = new MockMetricProducer () ;
75- reader-> SetMetricProducer (producer);
76- PrometheusCollector collector (reader, true , false );
73+ MockMetricReader reader;
74+ MockMetricProducer producer;
75+ reader. SetMetricProducer (& producer);
76+ PrometheusCollector collector (& reader, true , false );
7777 auto data = collector.Collect ();
7878
7979 // Collection size should be the same as the size
8080 // of the records collection produced by MetricProducer.
8181 ASSERT_EQ (data.size (), 2 );
82- delete reader;
83- delete producer;
8482}
0 commit comments