]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
format_open_telemetry: Accept a `resource_metrics_set_t`.
authorFlorian Forster <octo@collectd.org>
Sat, 16 Dec 2023 19:55:45 +0000 (20:55 +0100)
committerFlorian Forster <octo@collectd.org>
Wed, 3 Jan 2024 16:16:28 +0000 (17:16 +0100)
Makefile.am
src/utils/format_open_telemetry/format_open_telemetry.cc
src/utils/format_open_telemetry/format_open_telemetry.h

index e872b66555fad3ec3e1f78ea019a6ca85a599116..9594b533e894c4e855486431a41a2eb57b9f7fb1 100644 (file)
@@ -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 \
index 019034fabd16b51502c3b2f7c82e420c392c7ba0..691835f9e24e672a37326594a3257395726c103e 100644 (file)
@@ -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;
index 16024a56e9415d170d4d442c30a58b51a116a73c..380c5d132585066a50bddc19b16de981d77bfecc 100644 (file)
@@ -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 */