diff --git a/doc/management.txt b/doc/management.txt index 4aaed2e79..b5e041a0b 100644 --- a/doc/management.txt +++ b/doc/management.txt @@ -933,7 +933,7 @@ S (Servers). 16. wredis [..BS]: number of times a request was redispatched to another server. The server value counts the number of times that server was switched away from. - 17. status [LFBS]: status (UP/DOWN/NOLB/MAINT/MAINT(via)...) + 17. status [LFBS]: status (UP/DOWN/NOLB/MAINT/MAINT(via)/MAINT(resolution)...) 18. weight [..BS]: total weight (backend), server weight (server) 19. act [..BS]: number of active servers (backend), server is active (server) 20. bck [..BS]: number of backup servers (backend), server is backup (server) diff --git a/src/dumpstats.c b/src/dumpstats.c index 8d43ce559..d6db29a53 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -3799,7 +3799,10 @@ static int stats_dump_fields_html(struct chunk *out, const struct field *stats, stats[ST_F_BCK].u.u32 ? "Y" : "-"); /* check failures: unique, fatal, down time */ - if (stats[ST_F_CHKFAIL].type) { + if (strcmp(field_str(stats, ST_F_STATUS), "MAINT (resolution)") == 0) { + chunk_appendf(out, "resolution"); + } + else if (stats[ST_F_CHKFAIL].type) { chunk_appendf(out, "%lld", (long long)stats[ST_F_CHKFAIL].u.u64); if (stats[ST_F_HANAFAIL].type) @@ -4286,7 +4289,9 @@ int stats_fill_sv_stats(struct proxy *px, struct server *sv, int flags, /* status */ fld_status = chunk_newstr(out); - if (sv->admin & SRV_ADMF_IMAINT) + if (sv->admin & SRV_ADMF_RMAINT) + chunk_appendf(out, "MAINT (resolution)"); + else if (sv->admin & SRV_ADMF_IMAINT) chunk_appendf(out, "MAINT (via %s/%s)", via->proxy->id, via->id); else if (sv->admin & SRV_ADMF_MAINT) chunk_appendf(out, "MAINT");