BUG/MINOR: stats: do not report "via" on tracking servers in maintenance

When a server tracks another one, its state on the stats page always reports
"via xx/yy". That's convenient to know what server to act on to change the
state. But it is also possible to force the tracking server itself into
maintenance mode and in this case we should not report "via xx/yy" because
the tracked server can't do anything to change the server's state, which
is confusing. In practice there is nothing wrong in leaving it as-is,
except that it's highly misleading when looking at the stats page.

Note that we only change the HTML output, not the CSV one. The states are
already different : "MAINT" vs "MAINT(via)" and we expect anyone coding a
monitoring system based on the CSV output to know the differences between
all possible states.
This commit is contained in:
Willy Tarreau 2013-11-28 10:50:06 +01:00
parent 81cf08c5cd
commit f465994198

View File

@ -2349,10 +2349,16 @@ static int stats_dump_sv_stats(struct stream_interface *si, struct proxy *px, in
ref->observe ? "/Health Analyses" : "",
ref->counters.down_trans, human_time(srv_downtime(sv), 1));
}
else if (sv != ref)
chunk_appendf(&trash,
"<td class=ac colspan=3><a class=lfsb href=\"#%s/%s\">via %s/%s<a></td>",
ref->proxy->id, ref->id, ref->proxy->id, ref->id);
else if (sv != ref) {
if (sv->state & SRV_MAINTAIN)
chunk_appendf(&trash,
"<td class=ac colspan=3><a class=lfsb href=\"#%s/%s\"><a></td>",
ref->proxy->id, ref->id);
else
chunk_appendf(&trash,
"<td class=ac colspan=3><a class=lfsb href=\"#%s/%s\">via %s/%s<a></td>",
ref->proxy->id, ref->id, ref->proxy->id, ref->id);
}
else
chunk_appendf(&trash, "<td colspan=3></td>");