Le 12/09/2023 à 11:37, Cedric Paillet a écrit :
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."
---
  addons/promex/service-prometheus.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/addons/promex/service-prometheus.c 
b/addons/promex/service-prometheus.c
index e02e8c0c7..6885d202e 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++) {

Thanks, merged now !

--
Christopher Faulet


Reply via email to