Skip to content

Commit 456bd6c

Browse files
committed
Add unit test for OtlpHttpMetricExporter
Signed-off-by: owentou <owentou@tencent.com>
1 parent 109269e commit 456bd6c

5 files changed

Lines changed: 583 additions & 23 deletions

File tree

exporters/otlp/src/otlp_http_exporter.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ opentelemetry::sdk::common::ExportResult OtlpHttpExporter::Export(
6969
{
7070
if (http_client_->IsShutdown())
7171
{
72+
std::size_t span_count = spans.size();
73+
OTEL_INTERNAL_LOG_ERROR("[OTLP HTTP Client] ERROR: Export "
74+
<< span_count << " trace span(s) failed, exporter is shutdown");
7275
return opentelemetry::sdk::common::ExportResult::kFailure;
7376
}
7477

exporters/otlp/src/otlp_http_log_exporter.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ opentelemetry::sdk::common::ExportResult OtlpHttpLogExporter::Export(
7171
{
7272
if (http_client_->IsShutdown())
7373
{
74+
std::size_t log_count = logs.size();
75+
OTEL_INTERNAL_LOG_ERROR("[OTLP HTTP Client] ERROR: Export "
76+
<< log_count << " log(s) failed, exporter is shutdown");
7477
return opentelemetry::sdk::common::ExportResult::kFailure;
7578
}
7679

exporters/otlp/src/otlp_http_metric_exporter.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ opentelemetry::sdk::common::ExportResult OtlpHttpMetricExporter::Export(
6666
{
6767
if (http_client_->IsShutdown())
6868
{
69+
std::size_t metric_count = data.instrumentation_info_metric_data_.size();
70+
OTEL_INTERNAL_LOG_ERROR("[OTLP HTTP Client] ERROR: Export "
71+
<< metric_count << " metric(s) failed, exporter is shutdown");
6972
return opentelemetry::sdk::common::ExportResult::kFailure;
7073
}
7174

exporters/otlp/src/otlp_metric_utils.cc

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -144,23 +144,23 @@ void OtlpMetricUtils::ConvertGaugeMetric(const opentelemetry::sdk::metrics::Metr
144144
auto ts = metric_data.end_ts.time_since_epoch().count();
145145
for (auto &point_data_with_attributes : metric_data.point_data_attr_)
146146
{
147-
proto::metrics::v1::NumberDataPoint *proto_sum_point_data = gauge->add_data_points();
148-
proto_sum_point_data->set_start_time_unix_nano(start_ts);
149-
proto_sum_point_data->set_time_unix_nano(ts);
150-
auto sum_data = nostd::get<sdk::metrics::SumPointData>(point_data_with_attributes.point_data);
147+
proto::metrics::v1::NumberDataPoint *proto_gauge_point_data = gauge->add_data_points();
148+
proto_gauge_point_data->set_start_time_unix_nano(start_ts);
149+
proto_gauge_point_data->set_time_unix_nano(ts);
150+
auto gauge_data = nostd::get<sdk::metrics::LastValuePointData>(point_data_with_attributes.point_data);
151151

152-
if ((nostd::holds_alternative<long>(sum_data.value_)))
152+
if ((nostd::holds_alternative<long>(gauge_data.value_)))
153153
{
154-
proto_sum_point_data->set_as_int(nostd::get<long>(sum_data.value_));
154+
proto_gauge_point_data->set_as_int(nostd::get<long>(gauge_data.value_));
155155
}
156156
else
157157
{
158-
proto_sum_point_data->set_as_double(nostd::get<double>(sum_data.value_));
158+
proto_gauge_point_data->set_as_double(nostd::get<double>(gauge_data.value_));
159159
}
160160
// set attributes
161161
for (auto &kv_attr : point_data_with_attributes.attributes)
162162
{
163-
OtlpPopulateAttributeUtils::PopulateAttribute(proto_sum_point_data->add_attributes(),
163+
OtlpPopulateAttributeUtils::PopulateAttribute(proto_gauge_point_data->add_attributes(),
164164
kv_attr.first, kv_attr.second);
165165
}
166166
}
@@ -197,9 +197,7 @@ void OtlpMetricUtils::PopulateResourceMetrics(
197197
const opentelemetry::sdk::metrics::ResourceMetrics &data,
198198
proto::metrics::v1::ResourceMetrics *resource_metrics) noexcept
199199
{
200-
proto::resource::v1::Resource proto;
201-
OtlpPopulateAttributeUtils::PopulateAttribute(&proto, *(data.resource_));
202-
*resource_metrics->mutable_resource() = proto;
200+
OtlpPopulateAttributeUtils::PopulateAttribute(resource_metrics->mutable_resource(), *(data.resource_));
203201

204202
for (auto &instrumentation_metrics : data.instrumentation_info_metric_data_)
205203
{
@@ -208,17 +206,14 @@ void OtlpMetricUtils::PopulateResourceMetrics(
208206
continue;
209207
}
210208
auto instrumentation_lib_metrics = resource_metrics->add_instrumentation_library_metrics();
211-
proto::common::v1::InstrumentationLibrary instrumentation_library;
212-
instrumentation_library.set_name(instrumentation_metrics.instrumentation_library_->GetName());
213-
instrumentation_library.set_version(
209+
proto::common::v1::InstrumentationLibrary* instrumentation_library = instrumentation_lib_metrics->mutable_instrumentation_library();
210+
instrumentation_library->set_name(instrumentation_metrics.instrumentation_library_->GetName());
211+
instrumentation_library->set_version(
214212
instrumentation_metrics.instrumentation_library_->GetVersion());
215-
*instrumentation_lib_metrics->mutable_instrumentation_library() = instrumentation_library;
216213

217214
for (auto &metric_data : instrumentation_metrics.metric_data_)
218215
{
219-
proto::metrics::v1::Metric metric;
220-
PopulateInstrumentationInfoMetric(metric_data, &metric);
221-
*instrumentation_lib_metrics->add_metrics() = metric;
216+
PopulateInstrumentationInfoMetric(metric_data, instrumentation_lib_metrics->add_metrics());
222217
}
223218
}
224219
}

0 commit comments

Comments
 (0)