From: Anthonin Bonnefoy <anthonin.bonne...@datadoghq.com>

Prometheus protocol defines HELP and TYPE as a token after the '#' and
the space after the '#' is necessary.
This is expected in the prometheus python client for example
(https://github.com/prometheus/client_python/blob/a8f5c80f651ea570577c364203e0edbef67db727/prometheus_client/parser.py#L194)
and the missing space is breaking the parsing of metrics' type.
---
 contrib/prometheus-exporter/service-prometheus.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/prometheus-exporter/service-prometheus.c 
b/contrib/prometheus-exporter/service-prometheus.c
index 67914f602..9b9ef2ea8 100644
--- a/contrib/prometheus-exporter/service-prometheus.c
+++ b/contrib/prometheus-exporter/service-prometheus.c
@@ -1126,11 +1126,11 @@ static int promex_dump_metric_header(struct appctx 
*appctx, struct htx *htx,
                types = promex_st_metric_types;
        }
 
-       if (istcat(out, ist("#HELP "), max) == -1 ||
+       if (istcat(out, ist("# HELP "), max) == -1 ||
            istcat(out, name, max) == -1 ||
            istcat(out, ist(" "), max) == -1 ||
            istcat(out, desc[appctx->st2], max) == -1 ||
-           istcat(out, ist("\n#TYPE "), max) == -1 ||
+           istcat(out, ist("\n# TYPE "), max) == -1 ||
            istcat(out, name, max) == -1 ||
            istcat(out, ist(" "), max) == -1 ||
            istcat(out, types[appctx->st2], max) == -1 ||
-- 
2.19.1


Reply via email to