25
25
26
26
# include " opentelemetry/exporters/otlp/protobuf_include_suffix.h"
27
27
28
+ # include " opentelemetry/exporters/otlp/otlp_grpc_client.h"
29
+ # include " opentelemetry/exporters/otlp/otlp_grpc_client_factory.h"
30
+
28
31
# include " opentelemetry/sdk/trace/simple_processor.h"
29
32
# include " opentelemetry/sdk/trace/tracer_provider.h"
30
33
# include " opentelemetry/trace/provider.h"
@@ -50,12 +53,34 @@ class OtlpGrpcMetricExporterTestPeer : public ::testing::Test
50
53
{
51
54
public:
52
55
std::unique_ptr<sdk::metrics::PushMetricExporter> GetExporter (
53
- std::unique_ptr<proto::collector::metrics::v1::MetricsService::StubInterface> &stub_interface)
56
+ const OtlpGrpcMetricExporterOptions &options)
57
+ {
58
+ return std::unique_ptr<sdk::metrics::PushMetricExporter>(new OtlpGrpcMetricExporter (options));
59
+ }
60
+
61
+ std::unique_ptr<sdk::metrics::PushMetricExporter> GetExporter (
62
+ std::unique_ptr<proto::collector::metrics::v1::MetricsService::StubInterface> stub_interface)
54
63
{
55
64
return std::unique_ptr<sdk::metrics::PushMetricExporter>(
56
65
new OtlpGrpcMetricExporter (std::move (stub_interface)));
57
66
}
58
67
68
+ std::unique_ptr<sdk::metrics::PushMetricExporter> GetExporter (
69
+ std::unique_ptr<proto::collector::metrics::v1::MetricsService::StubInterface> stub_interface,
70
+ std::shared_ptr<OtlpGrpcClient> client)
71
+ {
72
+ return std::unique_ptr<sdk::metrics::PushMetricExporter>(
73
+ new OtlpGrpcMetricExporter (std::move (stub_interface), std::move (client)));
74
+ }
75
+
76
+ std::unique_ptr<sdk::metrics::PushMetricExporter> GetExporter (
77
+ const OtlpGrpcMetricExporterOptions &options,
78
+ std::shared_ptr<OtlpGrpcClient> client)
79
+ {
80
+ return std::unique_ptr<sdk::metrics::PushMetricExporter>(
81
+ new OtlpGrpcMetricExporter (options, std::move (client)));
82
+ }
83
+
59
84
// Get the options associated with the given exporter.
60
85
const OtlpGrpcMetricExporterOptions &GetOptions (std::unique_ptr<OtlpGrpcMetricExporter> &exporter)
61
86
{
@@ -204,6 +229,35 @@ TEST_F(OtlpGrpcMetricExporterTestPeer, ConfigUnknownInsecureFromEnv)
204
229
}
205
230
# endif
206
231
232
+ TEST_F (OtlpGrpcMetricExporterTestPeer, CheckGetAggregationTemporality)
233
+ {
234
+ auto options = OtlpGrpcMetricExporterOptions ();
235
+ options.aggregation_temporality = PreferredAggregationTemporality::kCumulative ;
236
+
237
+ auto client = OtlpGrpcClientFactory::Create (options);
238
+
239
+ auto exporter0 = GetExporter (options);
240
+ auto exporter1 = GetExporter (client->MakeMetricsServiceStub ());
241
+ auto exporter2 = GetExporter (options, client);
242
+ auto exporter3 = GetExporter (client->MakeMetricsServiceStub (), client);
243
+
244
+ EXPECT_EQ (
245
+ opentelemetry::sdk::metrics::AggregationTemporality::kCumulative ,
246
+ exporter0->GetAggregationTemporality (opentelemetry::sdk::metrics::InstrumentType::kCounter ));
247
+
248
+ EXPECT_EQ (
249
+ opentelemetry::sdk::metrics::AggregationTemporality::kCumulative ,
250
+ exporter1->GetAggregationTemporality (opentelemetry::sdk::metrics::InstrumentType::kCounter ));
251
+
252
+ EXPECT_EQ (
253
+ opentelemetry::sdk::metrics::AggregationTemporality::kCumulative ,
254
+ exporter2->GetAggregationTemporality (opentelemetry::sdk::metrics::InstrumentType::kCounter ));
255
+
256
+ EXPECT_EQ (
257
+ opentelemetry::sdk::metrics::AggregationTemporality::kCumulative ,
258
+ exporter3->GetAggregationTemporality (opentelemetry::sdk::metrics::InstrumentType::kCounter ));
259
+ }
260
+
207
261
} // namespace otlp
208
262
} // namespace exporter
209
263
OPENTELEMETRY_END_NAMESPACE
0 commit comments