From 51c3aa4628cf597eb133f6ae8bb36e09139a73dc Mon Sep 17 00:00:00 2001 From: Anthonin Bonnefoy Date: Wed, 7 Aug 2019 17:45:25 +0200 Subject: [PATCH] BUG/MINOR: Fix prometheus '# TYPE' and '# HELP' headers 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. This patch must be backported to 2.0. --- 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 ||