From: Florian Forster Date: Sat, 16 Dec 2023 19:55:45 +0000 (+0100) Subject: format_open_telemetry: Accept a `resource_metrics_set_t`. X-Git-Tag: 6.0.0-rc0~17^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71001cba999cf09262322de69c8994479a7fe6d8;p=thirdparty%2Fcollectd.git format_open_telemetry: Accept a `resource_metrics_set_t`. --- diff --git a/Makefile.am b/Makefile.am index e872b6655..9594b533e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -482,6 +482,8 @@ noinst_LTLIBRARIES += libformat_open_telemetry.la libformat_open_telemetry_la_SOURCES = \ src/utils/format_open_telemetry/format_open_telemetry.cc \ src/utils/format_open_telemetry/format_open_telemetry.h \ + src/utils/resource_metrics/resource_metrics.c \ + src/utils/resource_metrics/resource_metrics.h \ opentelemetry/proto/collector/metrics/v1/metrics_service.pb.cc \ opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h \ opentelemetry/proto/common/v1/common.pb.cc \ diff --git a/src/utils/format_open_telemetry/format_open_telemetry.cc b/src/utils/format_open_telemetry/format_open_telemetry.cc index 019034fab..691835f9e 100644 --- a/src/utils/format_open_telemetry/format_open_telemetry.cc +++ b/src/utils/format_open_telemetry/format_open_telemetry.cc @@ -126,18 +126,21 @@ static void set_instrumentation_scope(ScopeMetrics *sm) { is->set_version(PACKAGE_VERSION); } -static void add_scope_metrics(ResourceMetrics *rm, metric_family_t const *fam) { - ScopeMetrics *sm = rm->add_scope_metrics(); +static void add_scope_metrics(ResourceMetrics *rmpb, + resource_metrics_t const *rm) { + ScopeMetrics *sm = rmpb->add_scope_metrics(); set_instrumentation_scope(sm); - add_metric(sm, fam); + for (size_t i = 0; i < rm->families_num; i++) { + add_metric(sm, rm->families[i]); + } } -static void init_resource_metrics(ResourceMetrics *rm, - metric_family_t const *fam) { - Resource *res = rm->mutable_resource(); - for (size_t i = 0; i < fam->resource.num; i++) { - label_pair_t *l = fam->resource.ptr + i; +static void init_resource_metrics(ResourceMetrics *rmpb, + resource_metrics_t const *rm) { + Resource *res = rmpb->mutable_resource(); + for (size_t i = 0; i < rm->resource.num; i++) { + label_pair_t *l = rm->resource.ptr + i; KeyValue *kv = res->add_attributes(); kv->set_key(l->name); @@ -145,17 +148,17 @@ static void init_resource_metrics(ResourceMetrics *rm, v->set_string_value(l->value); } - add_scope_metrics(rm, fam); + add_scope_metrics(rmpb, rm); } ExportMetricsServiceRequest * format_open_telemetry_export_metrics_service_request( - metric_family_t const **fam, size_t fam_num) { + resource_metrics_set_t set) { ExportMetricsServiceRequest *req = new ExportMetricsServiceRequest(); - for (size_t i = 0; i < fam_num; i++) { + for (size_t i = 0; i < set.num; i++) { ResourceMetrics *rm = req->add_resource_metrics(); - init_resource_metrics(rm, fam[i]); + init_resource_metrics(rm, set.ptr + i); } return req; diff --git a/src/utils/format_open_telemetry/format_open_telemetry.h b/src/utils/format_open_telemetry/format_open_telemetry.h index 16024a56e..380c5d132 100644 --- a/src/utils/format_open_telemetry/format_open_telemetry.h +++ b/src/utils/format_open_telemetry/format_open_telemetry.h @@ -32,7 +32,8 @@ extern "C" { #endif #include "collectd.h" -#include "metric.h" +#include "daemon/metric.h" +#include "utils/resource_metrics/resource_metrics.h" #ifdef __cplusplus } @@ -42,7 +43,7 @@ extern "C" { opentelemetry::proto::collector::metrics::v1::ExportMetricsServiceRequest * format_open_telemetry_export_metrics_service_request( - metric_family_t const **fam, size_t fam_num); + resource_metrics_set_t set); #endif #endif /* UTILS_FORMAT_OPEN_TELEMETRY_H */