diff --git a/include/zephyr/net/prometheus/collector.h b/include/zephyr/net/prometheus/collector.h index 004dc7fd771..e63dc7aa827 100644 --- a/include/zephyr/net/prometheus/collector.h +++ b/include/zephyr/net/prometheus/collector.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -47,7 +48,7 @@ struct prometheus_collector { * @param _name The collector's name. */ #define PROMETHEUS_COLLECTOR_DEFINE(_name) \ - static STRUCT_SECTION_ITERABLE(prometheus_collector, _name) = { \ + STRUCT_SECTION_ITERABLE(prometheus_collector, _name) = { \ .name = STRINGIFY(_name), \ .metrics = SYS_SLIST_STATIC_INIT(&_name.metrics), \ .lock = Z_MUTEX_INITIALIZER(_name.lock), \ diff --git a/include/zephyr/net/prometheus/counter.h b/include/zephyr/net/prometheus/counter.h index 522df002b58..89c1ff123d3 100644 --- a/include/zephyr/net/prometheus/counter.h +++ b/include/zephyr/net/prometheus/counter.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -29,7 +30,7 @@ */ struct prometheus_counter { /** Base of the Prometheus counter metric */ - struct prometheus_metric *base; + struct prometheus_metric base; /** Value of the Prometheus counter metric */ uint64_t value; }; @@ -37,30 +38,29 @@ struct prometheus_counter { /** * @brief Prometheus Counter definition. * - * This macro defines a Counter metric. + * This macro defines a Counter metric. If you want to make the counter static, + * then add "static" keyword before the PROMETHEUS_COUNTER_DEFINE. * - * @param _name The channel's name. - * @param _detail The metric base. + * @param _name The counter metric name + * @param _desc Counter description + * @param _label Label for the metric. Additional labels can be added at runtime. * * Example usage: * @code{.c} * - * struct prometheus_metric http_request_counter = { - * .type = PROMETHEUS_COUNTER, - * .name = "http_request_counter", - * .description = "HTTP request counter", - * .num_labels = 1, - * .labels = { - * { .key = "http_request", .value = "request_count",} - * }, - *}; - * - * PROMETHEUS_COUNTER_DEFINE(test_counter, &test_counter_metric); + * PROMETHEUS_COUNTER_DEFINE(http_request_counter, "HTTP request counter", + * ({ .key = "http_request", .value = "request_count" })); * @endcode */ -#define PROMETHEUS_COUNTER_DEFINE(_name, _detail) \ - static STRUCT_SECTION_ITERABLE(prometheus_counter, _name) = {.base = (void *)(_detail), \ - .value = 0} +#define PROMETHEUS_COUNTER_DEFINE(_name, _desc, _label) \ + STRUCT_SECTION_ITERABLE(prometheus_counter, _name) = { \ + .base.name = STRINGIFY(_name), \ + .base.type = PROMETHEUS_COUNTER, \ + .base.description = _desc, \ + .base.labels[0] = __DEBRACKET _label, \ + .base.num_labels = 1, \ + .value = 0ULL, \ + } /** * @brief Increment the value of a Prometheus counter metric diff --git a/include/zephyr/net/prometheus/gauge.h b/include/zephyr/net/prometheus/gauge.h index d82b0a126fa..dd0f4dee4da 100644 --- a/include/zephyr/net/prometheus/gauge.h +++ b/include/zephyr/net/prometheus/gauge.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -27,7 +28,7 @@ */ struct prometheus_gauge { /** Base of the Prometheus gauge metric */ - struct prometheus_metric *base; + struct prometheus_metric base; /** Value of the Prometheus gauge metric */ double value; }; @@ -35,31 +36,30 @@ struct prometheus_gauge { /** * @brief Prometheus Gauge definition. * - * This macro defines a Gauge metric. + * This macro defines a Gauge metric. If you want to make the gauge static, + * then add "static" keyword before the PROMETHEUS_GAUGE_DEFINE. * - * @param _name The channel's name. - * @param _detail The metric base. + * @param _name The gauge metric name. + * @param _desc Gauge description + * @param _label Label for the metric. Additional labels can be added at runtime. * * Example usage: * @code{.c} * - * struct prometheus_metric http_request_gauge = { - * .type = PROMETHEUS_GAUGE, - * .name = "http_request_gauge", - * .description = "HTTP request gauge", - * .num_labels = 1, - * .labels = { - * { .key = "http_request", .value = "request_count",} - * }, - * }; - * - * PROMETHEUS_GAUGE_DEFINE(test_gauge, &test_gauge_metric); + * PROMETHEUS_GAUGE_DEFINE(http_request_gauge, "HTTP request gauge", + * ({ .key = "http_request", .value = "request_count" })); * * @endcode */ -#define PROMETHEUS_GAUGE_DEFINE(_name, _detail) \ - static STRUCT_SECTION_ITERABLE(prometheus_gauge, _name) = {.base = (void *)(_detail), \ - .value = 0} +#define PROMETHEUS_GAUGE_DEFINE(_name, _desc, _label) \ + STRUCT_SECTION_ITERABLE(prometheus_gauge, _name) = { \ + .base.name = STRINGIFY(_name), \ + .base.type = PROMETHEUS_GAUGE, \ + .base.description = _desc, \ + .base.labels[0] = __DEBRACKET _label, \ + .base.num_labels = 1, \ + .value = 0.0, \ + } /** * @brief Set the value of a Prometheus gauge metric diff --git a/include/zephyr/net/prometheus/histogram.h b/include/zephyr/net/prometheus/histogram.h index ec77e100e05..54c70632305 100644 --- a/include/zephyr/net/prometheus/histogram.h +++ b/include/zephyr/net/prometheus/histogram.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -41,7 +42,7 @@ struct prometheus_histogram_bucket { */ struct prometheus_histogram { /** Base of the Prometheus histogram metric */ - struct prometheus_metric *base; + struct prometheus_metric base; /** Array of buckets in the histogram */ struct prometheus_histogram_bucket *buckets; /** Number of buckets in the histogram */ @@ -55,34 +56,33 @@ struct prometheus_histogram { /** * @brief Prometheus Histogram definition. * - * This macro defines a Histogram metric. + * This macro defines a Histogram metric. If you want to make the histogram static, + * then add "static" keyword before the PROMETHEUS_HISTOGRAM_DEFINE. * - * @param _name The channel's name. - * @param _detail The metric base. + * @param _name The histogram metric name. + * @param _desc Histogram description + * @param _label Label for the metric. Additional labels can be added at runtime. * * Example usage: * @code{.c} * - * struct prometheus_metric http_request_gauge = { - * .type = PROMETHEUS_HISTOGRAM, - * .name = "http_request_histograms", - * .description = "HTTP request histogram", - * .num_labels = 1, - * .labels = { - * { .key = "request_latency", .value = "request_latency_seconds",} - * }, - * }; - * - * PROMETHEUS_HISTOGRAM_DEFINE(test_histogram, &test_histogram_metric); + * PROMETHEUS_HISTOGRAM_DEFINE(http_request_histogram, "HTTP request histogram", + * ({ .key = "request_latency", .value = "request_latency_seconds" })); * * @endcode */ -#define PROMETHEUS_HISTOGRAM_DEFINE(_name, _detail) \ - static STRUCT_SECTION_ITERABLE(prometheus_histogram, _name) = {.base = (void *)(_detail), \ - .buckets = NULL, \ - .num_buckets = 0, \ - .sum = 0, \ - .count = 0} +#define PROMETHEUS_HISTOGRAM_DEFINE(_name, _desc, _label) \ + STRUCT_SECTION_ITERABLE(prometheus_histogram, _name) = { \ + .base.name = STRINGIFY(_name), \ + .base.type = PROMETHEUS_HISTOGRAM, \ + .base.description = _desc, \ + .base.labels[0] = __DEBRACKET _label, \ + .base.num_labels = 1, \ + .buckets = NULL, \ + .num_buckets = 0, \ + .sum = 0.0, \ + .count = 0U, \ + } /** * @brief Observe a value in a Prometheus histogram metric diff --git a/include/zephyr/net/prometheus/metric.h b/include/zephyr/net/prometheus/metric.h index 2aa6591b4a4..519caaf21a7 100644 --- a/include/zephyr/net/prometheus/metric.h +++ b/include/zephyr/net/prometheus/metric.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ diff --git a/include/zephyr/net/prometheus/summary.h b/include/zephyr/net/prometheus/summary.h index 25ab847b5ca..ea1d5f1d087 100644 --- a/include/zephyr/net/prometheus/summary.h +++ b/include/zephyr/net/prometheus/summary.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -41,7 +42,7 @@ struct prometheus_summary_quantile { */ struct prometheus_summary { /** Base of the Prometheus summary metric */ - struct prometheus_metric *base; + struct prometheus_metric base; /** Array of quantiles associated with the Prometheus summary metric */ struct prometheus_summary_quantile *quantiles; /** Number of quantiles associated with the Prometheus summary metric */ @@ -55,35 +56,36 @@ struct prometheus_summary { /** * @brief Prometheus Summary definition. * - * This macro defines a Summary metric. + * This macro defines a Summary metric. If you want to make the summary static, + * then add "static" keyword before the PROMETHEUS_SUMMARY_DEFINE. + * + * @param _name The summary metric name. + * @param _desc Summary description + * @param _label Label for the metric. Additional labels can be added at runtime. * - * @param _name The channel's name. - * @param _detail The metric base. * * Example usage: * @code{.c} * - * struct prometheus_metric http_request_gauge = { - * .type = PROMETHEUS_SUMMARY, - * .name = "http_request_summary", - * .description = "HTTP request summary", - * .num_labels = 1, - * .labels = { - * { .key = "request_latency", .value = "request_latency_seconds",} - * }, - * }; - * - * PROMETHEUS_SUMMARY_DEFINE(test_summary, &test_summary_metric); + * PROMETHEUS_SUMMARY_DEFINE(http_request_summary, "HTTP request summary", + * ({ .key = "request_latency", + * .value = "request_latency_seconds" })); * * @endcode */ -#define PROMETHEUS_SUMMARY_DEFINE(_name, _detail) \ - static STRUCT_SECTION_ITERABLE(prometheus_summary, _name) = {.base = (void *)(_detail), \ - .quantiles = NULL, \ - .num_quantiles = 0, \ - .sum = 0, \ - .count = 0} +#define PROMETHEUS_SUMMARY_DEFINE(_name, _desc, _label) \ + STRUCT_SECTION_ITERABLE(prometheus_summary, _name) = { \ + .base.name = STRINGIFY(_name), \ + .base.type = PROMETHEUS_SUMMARY, \ + .base.description = _desc, \ + .base.labels[0] = __DEBRACKET _label, \ + .base.num_labels = 1, \ + .quantiles = NULL, \ + .num_quantiles = 0, \ + .sum = 0.0, \ + .count = 0U, \ + } /** * @brief Observes a value in a Prometheus summary metric diff --git a/samples/net/prometheus/src/main.c b/samples/net/prometheus/src/main.c index 3acd12ef94c..e554279cc83 100644 --- a/samples/net/prometheus/src/main.c +++ b/samples/net/prometheus/src/main.c @@ -145,18 +145,8 @@ static void setup_tls(void) #endif /* defined(CONFIG_NET_SAMPLE_HTTPS_SERVICE) */ } -struct prometheus_metric http_request_counter = { - .type = PROMETHEUS_COUNTER, - .name = "http_request_counter", - .description = "HTTP request counter", - .num_labels = 1, - .labels = {{ - .key = "http_request", - .value = "request_count", - }}, -}; - -PROMETHEUS_COUNTER_DEFINE(test_counter, &http_request_counter); +PROMETHEUS_COUNTER_DEFINE(http_request_counter, "HTTP request counter", + ({ .key = "http_request", .value = "request_count" })); PROMETHEUS_COLLECTOR_DEFINE(test_collector); @@ -165,10 +155,10 @@ int main(void) /* Create a mock collector with different types of metrics */ prom_context.collector = &test_collector; - prom_context.counter = &test_counter; + prom_context.counter = &http_request_counter; prometheus_counter_inc(prom_context.counter); - prometheus_collector_register_metric(prom_context.collector, prom_context.counter->base); + prometheus_collector_register_metric(prom_context.collector, &prom_context.counter->base); setup_tls(); diff --git a/subsys/net/lib/prometheus/collector.c b/subsys/net/lib/prometheus/collector.c index 3e322349deb..8fa26a47d16 100644 --- a/subsys/net/lib/prometheus/collector.c +++ b/subsys/net/lib/prometheus/collector.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology + * Copyright (c) 2024 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ @@ -46,10 +47,10 @@ int prometheus_collector_register_metric(struct prometheus_collector *collector, const struct prometheus_counter *prometheus_get_counter_metric(const char *name) { STRUCT_SECTION_FOREACH(prometheus_counter, entry) { - LOG_DBG("entry->name: %s", entry->base->name); + LOG_DBG("entry->name: %s", entry->base.name); - if (strncmp(entry->base->name, name, sizeof(entry->base->name)) == 0) { - LOG_DBG("Counter found %s=%s", entry->base->name, name); + if (strncmp(entry->base.name, name, strlen(entry->base.name)) == 0) { + LOG_DBG("Counter found %s", entry->base.name); return entry; } } @@ -62,10 +63,10 @@ const struct prometheus_counter *prometheus_get_counter_metric(const char *name) const struct prometheus_gauge *prometheus_get_gauge_metric(const char *name) { STRUCT_SECTION_FOREACH(prometheus_gauge, entry) { - LOG_DBG("entry->name: %s", entry->base->name); + LOG_DBG("entry->name: %s", entry->base.name); - if (strncmp(entry->base->name, name, sizeof(entry->base->name)) == 0) { - LOG_DBG("Counter found %s=%s", entry->base->name, name); + if (strncmp(entry->base.name, name, strlen(entry->base.name)) == 0) { + LOG_DBG("Counter found %s", entry->base.name); return entry; } } @@ -78,10 +79,10 @@ const struct prometheus_gauge *prometheus_get_gauge_metric(const char *name) const struct prometheus_histogram *prometheus_get_histogram_metric(const char *name) { STRUCT_SECTION_FOREACH(prometheus_histogram, entry) { - LOG_DBG("entry->name: %s", entry->base->name); + LOG_DBG("entry->name: %s", entry->base.name); - if (strncmp(entry->base->name, name, sizeof(entry->base->name)) == 0) { - LOG_DBG("Counter found %s=%s", entry->base->name, name); + if (strncmp(entry->base.name, name, strlen(entry->base.name)) == 0) { + LOG_DBG("Counter found %s", entry->base.name); return entry; } } @@ -94,10 +95,10 @@ const struct prometheus_histogram *prometheus_get_histogram_metric(const char *n const struct prometheus_summary *prometheus_get_summary_metric(const char *name) { STRUCT_SECTION_FOREACH(prometheus_summary, entry) { - LOG_DBG("entry->name: %s", entry->base->name); + LOG_DBG("entry->name: %s", entry->base.name); - if (strncmp(entry->base->name, name, sizeof(entry->base->name)) == 0) { - LOG_DBG("Counter found %s=%s", entry->base->name, name); + if (strncmp(entry->base.name, name, strlen(entry->base.name)) == 0) { + LOG_DBG("Counter found %s", entry->base.name); return entry; } } @@ -123,7 +124,7 @@ const void *prometheus_collector_get_metric(struct prometheus_collector *collect SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&collector->metrics, metric, tmp, node) { - if (strncmp(metric->name, name, sizeof(metric->name)) == 0) { + if (strncmp(metric->name, name, strlen(metric->name)) == 0) { type = metric->type; is_found = true; @@ -136,22 +137,23 @@ const void *prometheus_collector_get_metric(struct prometheus_collector *collect if (!is_found) { LOG_ERR("Metric %s not found", name); - return NULL; + goto out; } switch (type) { case PROMETHEUS_COUNTER: - return prometheus_get_counter_metric(name); + return CONTAINER_OF(metric, struct prometheus_counter, base); case PROMETHEUS_GAUGE: - return prometheus_get_gauge_metric(name); + return CONTAINER_OF(metric, struct prometheus_gauge, base); case PROMETHEUS_HISTOGRAM: - return prometheus_get_histogram_metric(name); + return CONTAINER_OF(metric, struct prometheus_histogram, base); case PROMETHEUS_SUMMARY: - return prometheus_get_summary_metric(name); + return CONTAINER_OF(metric, struct prometheus_summary, base); default: LOG_ERR("Invalid metric type"); - return NULL; + break; } +out: return NULL; } diff --git a/subsys/net/lib/prometheus/formatter.c b/subsys/net/lib/prometheus/formatter.c index c7a3038afc6..dd29e3d3cac 100644 --- a/subsys/net/lib/prometheus/formatter.c +++ b/subsys/net/lib/prometheus/formatter.c @@ -131,8 +131,7 @@ int prometheus_format_exposition(struct prometheus_collector *collector, char *b switch (metric->type) { case PROMETHEUS_COUNTER: { const struct prometheus_counter *counter = - (const struct prometheus_counter *)prometheus_collector_get_metric( - collector, metric->name); + CONTAINER_OF(metric, struct prometheus_counter, base); LOG_DBG("counter->value: %llu", counter->value); @@ -152,8 +151,7 @@ int prometheus_format_exposition(struct prometheus_collector *collector, char *b case PROMETHEUS_GAUGE: { const struct prometheus_gauge *gauge = - (const struct prometheus_gauge *)prometheus_collector_get_metric( - collector, metric->name); + CONTAINER_OF(metric, struct prometheus_gauge, base); LOG_DBG("gauge->value: %f", gauge->value); @@ -173,8 +171,7 @@ int prometheus_format_exposition(struct prometheus_collector *collector, char *b case PROMETHEUS_HISTOGRAM: { const struct prometheus_histogram *histogram = - (const struct prometheus_histogram *) - prometheus_collector_get_metric(collector, metric->name); + CONTAINER_OF(metric, struct prometheus_histogram, base); LOG_DBG("histogram->count: %lu", histogram->count); @@ -210,8 +207,7 @@ int prometheus_format_exposition(struct prometheus_collector *collector, char *b case PROMETHEUS_SUMMARY: { const struct prometheus_summary *summary = - (const struct prometheus_summary *)prometheus_collector_get_metric( - collector, metric->name); + CONTAINER_OF(metric, struct prometheus_summary, base); LOG_DBG("summary->count: %lu", summary->count); diff --git a/tests/net/lib/prometheus/collector/src/main.c b/tests/net/lib/prometheus/collector/src/main.c index e480b084152..613ae3bb004 100644 --- a/tests/net/lib/prometheus/collector/src/main.c +++ b/tests/net/lib/prometheus/collector/src/main.c @@ -9,18 +9,8 @@ #include #include -struct prometheus_metric test_counter_metric = { - .type = PROMETHEUS_COUNTER, - .name = "test_counter", - .description = "Test counter", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "counter", - }}, -}; - -PROMETHEUS_COUNTER_DEFINE(test_counter_m, &test_counter_metric); +PROMETHEUS_COUNTER_DEFINE(test_counter_m, "Test counter", + ({ .key = "test_counter", .value = "test" })); PROMETHEUS_COLLECTOR_DEFINE(test_custom_collector); @@ -38,7 +28,7 @@ ZTEST(test_collector, test_prometheus_collector_register) int ret; struct prometheus_counter *counter; - prometheus_collector_register_metric(&test_custom_collector, test_counter_m.base); + prometheus_collector_register_metric(&test_custom_collector, &test_counter_m.base); counter = (struct prometheus_counter *)prometheus_collector_get_metric( &test_custom_collector, "test_counter"); diff --git a/tests/net/lib/prometheus/counter/src/main.c b/tests/net/lib/prometheus/counter/src/main.c index ce2475f5fb0..5830c8da973 100644 --- a/tests/net/lib/prometheus/counter/src/main.c +++ b/tests/net/lib/prometheus/counter/src/main.c @@ -8,18 +8,8 @@ #include -struct prometheus_metric test_counter_metric = { - .type = PROMETHEUS_COUNTER, - .name = "test_counter", - .description = "Test counter", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "counter", - }}, -}; - -PROMETHEUS_COUNTER_DEFINE(test_counter_m, &test_counter_metric); +PROMETHEUS_COUNTER_DEFINE(test_counter_m, "Test counter", + ({ .key = "test_counter", .value = "test" })); /** * @brief Test prometheus_counter_inc diff --git a/tests/net/lib/prometheus/formatter/src/main.c b/tests/net/lib/prometheus/formatter/src/main.c index f8170b99c19..4cb55c9df7d 100644 --- a/tests/net/lib/prometheus/formatter/src/main.c +++ b/tests/net/lib/prometheus/formatter/src/main.c @@ -12,18 +12,8 @@ #define MAX_BUFFER_SIZE 256 -struct prometheus_metric test_counter_metric = { - .type = PROMETHEUS_COUNTER, - .name = "test_counter", - .description = "Test counter", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "counter", - }}, -}; - -PROMETHEUS_COUNTER_DEFINE(test_counter_m, &test_counter_metric); +PROMETHEUS_COUNTER_DEFINE(test_counter, "Test counter", + ({ .key = "test", .value = "counter" })); PROMETHEUS_COLLECTOR_DEFINE(test_custom_collector); @@ -42,16 +32,16 @@ ZTEST(test_formatter, test_prometheus_formatter_simple) "# TYPE test_counter counter\n" "test_counter{test=\"counter\"} 1\n"; - prometheus_collector_register_metric(&test_custom_collector, test_counter_m.base); + prometheus_collector_register_metric(&test_custom_collector, &test_counter.base); counter = (struct prometheus_counter *)prometheus_collector_get_metric( &test_custom_collector, "test_counter"); - zassert_equal(counter, &test_counter_m, "Counter not found in collector"); + zassert_equal(counter, &test_counter, "Counter not found in collector"); - zassert_equal(test_counter_m.value, 0, "Counter value is not 0"); + zassert_equal(test_counter.value, 0, "Counter value is not 0"); - ret = prometheus_counter_inc(&test_counter_m); + ret = prometheus_counter_inc(&test_counter); zassert_ok(ret, "Error incrementing counter"); zassert_equal(counter->value, 1, "Counter value is not 1"); @@ -59,7 +49,9 @@ ZTEST(test_formatter, test_prometheus_formatter_simple) ret = prometheus_format_exposition(&test_custom_collector, formatted, sizeof(formatted)); zassert_ok(ret, "Error formatting exposition data"); - zassert_equal(strcmp(formatted, exposed), 0, "Exposition format is not as expected"); + zassert_equal(strcmp(formatted, exposed), 0, + "Exposition format is not as expected (expected \"%s\", got \"%s\")", + exposed, formatted); } ZTEST_SUITE(test_formatter, NULL, NULL, NULL, NULL, NULL); diff --git a/tests/net/lib/prometheus/gauge/src/main.c b/tests/net/lib/prometheus/gauge/src/main.c index 82602c00960..08ee1b74966 100644 --- a/tests/net/lib/prometheus/gauge/src/main.c +++ b/tests/net/lib/prometheus/gauge/src/main.c @@ -8,18 +8,8 @@ #include -struct prometheus_metric test_gauge_metric = { - .type = PROMETHEUS_GAUGE, - .name = "test_gauge", - .description = "Test gauge", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "gauge", - }}, -}; - -PROMETHEUS_GAUGE_DEFINE(test_gauge_m, &test_gauge_metric); +PROMETHEUS_GAUGE_DEFINE(test_gauge_m, "Test gauge", + ({ .key = "test", .value = "gauge" })); /** * @brief Test prometheus_gauge_set diff --git a/tests/net/lib/prometheus/histogram/src/main.c b/tests/net/lib/prometheus/histogram/src/main.c index 1c4c7a58460..934dfe08e79 100644 --- a/tests/net/lib/prometheus/histogram/src/main.c +++ b/tests/net/lib/prometheus/histogram/src/main.c @@ -8,18 +8,8 @@ #include -struct prometheus_metric test_histogram_metric = { - .type = PROMETHEUS_HISTOGRAM, - .name = "test_histogram", - .description = "Test histogram", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "histogram", - }}, -}; - -PROMETHEUS_HISTOGRAM_DEFINE(test_histogram_m, &test_histogram_metric); +PROMETHEUS_HISTOGRAM_DEFINE(test_histogram_m, "Test histogram", + ({ .key = "test", .value = "histogram" })); /** * @brief Test prometheus_histogram_observe diff --git a/tests/net/lib/prometheus/summary/src/main.c b/tests/net/lib/prometheus/summary/src/main.c index 6dc30f43fc0..b8be3f3dd12 100644 --- a/tests/net/lib/prometheus/summary/src/main.c +++ b/tests/net/lib/prometheus/summary/src/main.c @@ -8,18 +8,8 @@ #include -struct prometheus_metric test_summary_metric = { - .type = PROMETHEUS_SUMMARY, - .name = "test_summary", - .description = "Test summary", - .num_labels = 1, - .labels = {{ - .key = "test", - .value = "summary", - }}, -}; - -PROMETHEUS_SUMMARY_DEFINE(test_summary_m, &test_summary_metric); +PROMETHEUS_SUMMARY_DEFINE(test_summary_m, "Test summary", + ({ .key = "test", .value = "summary" })); /** * @brief Test prometheus_summary_observe