The state of servers that were put in maintenance via the runtime API are reported within the "backend_agg_server_check_status" metric, which lead to inconsistent sums when compared to the "haproxy_server_check_status" metric.
Now excluding them from this computation. --- addons/promex/service-prometheus.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/promex/service-prometheus.c b/addons/promex/service-prometheus.c index e02e8c0c7..7b61683dd 100644 --- a/addons/promex/service-prometheus.c +++ b/addons/promex/service-prometheus.c @@ -863,9 +863,12 @@ static int promex_dump_back_metrics(struct appctx *appctx, struct htx *htx) goto next_px; sv = px->srv; while (sv) { + if (sv->cur_admin & SRV_ADMF_MAINT) + goto next_sv; srv_check_status = sv->check.status; srv_check_count[srv_check_status] += 1; - sv = sv->next; + next_sv: + sv = sv->next; } for (; ctx->obj_state < HCHK_STATUS_SIZE; ctx->obj_state++) { if (get_check_status_result(ctx->obj_state) < CHK_RES_FAILED) -- 2.25.1