MINOR: stats: indicate it when a server is down due to resolution
The server's state is now "MAINT (resolution)" just like we also have
"MAINT (via x/y)" when servers are tracked. The HTML stats page reports
"resolution" in the checks field similarly to what is done for the "via"
entry.
diff --git a/doc/management.txt b/doc/management.txt
index 4aaed2e..b5e041a 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -933,7 +933,7 @@
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 8d43ce5..d6db29a 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -3799,7 +3799,10 @@
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, "<td class=ac colspan=3>resolution</td>");
+ }
+ else if (stats[ST_F_CHKFAIL].type) {
chunk_appendf(out, "<td><u>%lld", (long long)stats[ST_F_CHKFAIL].u.u64);
if (stats[ST_F_HANAFAIL].type)
@@ -4286,7 +4289,9 @@
/* 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");