From: Siavash Tavakoli Date: Thu, 18 Feb 2021 16:25:50 +0000 (+0000) Subject: stats: openmetrics: Do microsecond to seconds conversion only for duration values X-Git-Tag: 2.3.14~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c0f460b72d19714ab3bd93fa7c6584896b7c9301;p=thirdparty%2Fdovecot%2Fcore.git stats: openmetrics: Do microsecond to seconds conversion only for duration values Other metrics should be exported with their values unchanged. --- diff --git a/src/stats/stats-service-openmetrics.c b/src/stats/stats-service-openmetrics.c index 83832a3160..b8c4c29494 100644 --- a/src/stats/stats-service-openmetrics.c +++ b/src/stats/stats-service-openmetrics.c @@ -198,9 +198,12 @@ openmetrics_export_histogram_bucket(struct openmetrics_request *req, } if (bucket_limit == INTMAX_MAX) str_append(out, "le=\"+Inf\""); - else { + else if (strcmp(metric->group_by->field, + STATS_EVENT_FIELD_NAME_DURATION) == 0) { /* Convert from microseconds to seconds */ str_printfa(out, "le=\"%.6f\"", bucket_limit/1e6F); + } else { + str_printfa(out, "le=\"%jd\"", bucket_limit); } str_printfa(out, "} %"PRIu64"\n", count); } @@ -246,8 +249,12 @@ openmetrics_export_histogram(struct openmetrics_request *req, string_t *out, str_append_str(out, req->labels); str_append_c(out, '}'); } - /* Convert from microseconds to seconds */ - str_printfa(out, " %.6f\n", sum/1e6F); + if (strcmp(metric->group_by->field, + STATS_EVENT_FIELD_NAME_DURATION) == 0) { + /* Convert from microseconds to seconds */ + sum /= 1e6F; + } + str_printfa(out, " %.6f\n", sum); /* Count */ str_append(out, "dovecot_"); str_append(out, metric->name);