libformat_json_la_SOURCES = \
src/utils/format_json/format_json.c \
src/utils/format_json/format_json.h \
- src/utils/format_json/open_telemetry.c
+ src/utils/format_json/open_telemetry.c \
+ src/utils/resource_metrics/resource_metrics.c \
+ src/utils/resource_metrics/resource_metrics.h
libformat_json_la_CPPFLAGS = $(AM_CPPFLAGS)
libformat_json_la_LDFLAGS = $(AM_LDFLAGS)
libformat_json_la_LIBADD = libmetric.la
#include "collectd.h"
#include "plugin.h"
+#include "utils/resource_metrics/resource_metrics.h"
#include "utils/strbuf/strbuf.h"
#ifndef JSON_GAUGE_FORMAT
int format_json_notification(char *buffer, size_t buffer_size,
notification_t const *n);
-int format_json_open_telemetry(strbuf_t *buf, metric_family_t const **families,
- size_t families_num);
+int format_json_open_telemetry(strbuf_t *buf,
+ resource_metrics_set_t const *set);
#endif /* UTILS_FORMAT_JSON_H */
return 0;
}
-static int add_resource_metric(yajl_gen g, metric_family_t const *fam) {
+static int add_resource_metric(yajl_gen g, resource_metrics_t const *rm) {
CHECK(yajl_gen_map_open(g)); /* BEGIN ResourceMetrics */
- if (fam->resource.num > 0) {
+ if (rm->resource.num > 0) {
CHECK(json_add_string(g, "resource"));
- CHECK(resource(g, fam->resource));
+ CHECK(resource(g, rm->resource));
}
CHECK(json_add_string(g, "scopeMetrics"));
CHECK(yajl_gen_array_open(g));
- CHECK(scope_metrics(g, fam));
+ for (size_t i = 0; i < rm->families_num; i++) {
+ CHECK(scope_metrics(g, rm->families[i]));
+ }
CHECK(yajl_gen_array_close(g));
CHECK(yajl_gen_map_close(g)); /* END ResourceMetrics */
return 0;
}
-int format_json_open_telemetry(strbuf_t *buf, metric_family_t const **families,
- size_t families_num) {
+int format_json_open_telemetry(strbuf_t *buf,
+ resource_metrics_set_t const *set) {
if (buf->pos != 0) {
ERROR("format_json_open_telemetry: buffer is not empty.");
return EINVAL;
CHECK(yajl_gen_array_open(g));
unsigned char const *out = NULL;
- for (size_t i = 0; i < families_num; i++) {
- metric_family_t const *fam = families[i];
- add_resource_metric(g, fam);
+ for (size_t i = 0; i < set->num; i++) {
+ resource_metrics_t const *rm = set->ptr + i;
+ add_resource_metric(g, rm);
}
CHECK(yajl_gen_array_close(g));