From: Florian Forster Date: Thu, 21 Dec 2023 09:15:59 +0000 (+0100) Subject: write_prometheus plugin: Break out formatting of a single metric family. X-Git-Tag: 6.0.0-rc0~28^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a68b7e3c4eba1a9e207ed07b70fc560d2028f27;p=thirdparty%2Fcollectd.git write_prometheus plugin: Break out formatting of a single metric family. --- diff --git a/src/write_prometheus.c b/src/write_prometheus.c index 50993f0b2..22446f4d6 100644 --- a/src/write_prometheus.c +++ b/src/write_prometheus.c @@ -59,17 +59,10 @@ static struct MHD_Daemon *httpd; static cdtime_t staleness_delta = PROMETHEUS_DEFAULT_STALENESS_DELTA; -static void format_text(strbuf_t *buf) { - pthread_mutex_lock(&prom_metrics_lock); - - char *unused_name; - metric_family_t *prom_fam; - - c_avl_iterator_t *iter = c_avl_get_iterator(prom_metrics); - while (c_avl_iterator_next(iter, (void *)&unused_name, (void *)&prom_fam) == - 0) { +/* visible for testing */ +void format_metric_family(strbuf_t *buf, metric_family_t const *prom_fam) { if (prom_fam->metric.num == 0) - continue; + return; char *type = NULL; switch (prom_fam->type) { @@ -84,7 +77,7 @@ static void format_text(strbuf_t *buf) { break; } if (type == NULL) { - continue; + return; } if (prom_fam->help == NULL) @@ -109,6 +102,17 @@ static void format_text(strbuf_t *buf) { strbuf_printf(buf, "\n"); } } +} + +static void format_text(strbuf_t *buf) { + pthread_mutex_lock(&prom_metrics_lock); + + char *unused; + metric_family_t *prom_fam; + + c_avl_iterator_t *iter = c_avl_get_iterator(prom_metrics); + while (c_avl_iterator_next(iter, (void *)&unused, (void *)&prom_fam) == 0) { + format_metric_family(buf, prom_fam); } c_avl_iterator_destroy(iter);