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]
This commit is contained in:
Cedric Paillet 2023-09-12 09:37:55 +00:00 committed by Christopher Faulet
parent 665703d456
commit 3790eb4f85
1 changed files with 4 additions and 2 deletions

View File

@ -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++) {