From f4659941982f6aad3208df3302f21368034d6c0f Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 28 Nov 2013 10:50:06 +0100 Subject: [PATCH] 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. --- src/dumpstats.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index b721c5874..2cfd39a94 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -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, - "via %s/%s", - ref->proxy->id, ref->id, ref->proxy->id, ref->id); + else if (sv != ref) { + if (sv->state & SRV_MAINTAIN) + chunk_appendf(&trash, + "", + ref->proxy->id, ref->id); + else + chunk_appendf(&trash, + "via %s/%s", + ref->proxy->id, ref->id, ref->proxy->id, ref->id); + } else chunk_appendf(&trash, "");