From: Cedric Paillet Date: Tue, 12 Sep 2023 09:37:55 +0000 (+0000) Subject: BUG/MINOR: promex: fix backend_agg_check_status X-Git-Tag: v2.9-dev6~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3790eb4f855e8897277193e83e4a80ba3ee09b4d;p=thirdparty%2Fhaproxy.git BUG/MINOR: promex: fix backend_agg_check_status When a server is in maintenance, the check.status is no longer updated. Therefore, we shouldn't consider check.status if the checks are not active. This check was properly implemented in the haproxy_server_check_status metric, but wasn't carried over to backend_agg_check_status, which introduced inconsistencies between the two metrics. [cf: This patch must be backported as far as 2.4] --- diff --git a/addons/promex/service-prometheus.c b/addons/promex/service-prometheus.c index e02e8c0c78..6885d202e5 100644 --- a/addons/promex/service-prometheus.c +++ b/addons/promex/service-prometheus.c @@ -863,8 +863,10 @@ static int promex_dump_back_metrics(struct appctx *appctx, struct htx *htx) goto next_px; sv = px->srv; while (sv) { - srv_check_status = sv->check.status; - srv_check_count[srv_check_status] += 1; + if ((sv->check.state & (CHK_ST_ENABLED|CHK_ST_PAUSED)) == CHK_ST_ENABLED) { + srv_check_status = sv->check.status; + srv_check_count[srv_check_status] += 1; + } sv = sv->next; } for (; ctx->obj_state < HCHK_STATUS_SIZE; ctx->obj_state++) {