MINOR: stats: support the "up" output modifier for "show stat"

We already had it on the HTTP interface but it was not accessible on the
CLI. It can be very convenient to hide servers which are down, do not
resolve, or are in maintenance.
diff --git a/doc/management.txt b/doc/management.txt
index a5fecff..2411405 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -2123,7 +2123,7 @@
   that the output format may evolve over time so this output must not be parsed
   by tools designed to be durable.
 
-show info [typed|json] [desc]
+show info [typed|json] [desc] [up]
   Dump info about haproxy status on current process. If "typed" is passed as an
   optional argument, field numbers, names and types are emitted as well so that
   external monitoring products can easily retrieve, possibly aggregate, then
@@ -2136,6 +2136,10 @@
   format, the dump for a single object is contiguous so that there is no
   need for a consumer to store everything at once.
 
+  The "up" modifier will result in listing only servers which reportedly up or
+  not checked. Those down, unresolved, or in maintenance will not be listed.
+  This is analogous to the ";up" option on the HTTP stats.
+
   When using the typed output format, each line is made of 4 columns delimited
   by colons (':'). The first column is a dot-delimited series of 3 elements. The
   first element is the numeric position of the field in the list (starting at
diff --git a/src/stats.c b/src/stats.c
index 033ed16..f6417b9 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -4310,6 +4310,8 @@
 			appctx->ctx.stats.flags = (appctx->ctx.stats.flags & ~STAT_FMT_MASK) | STAT_FMT_JSON;
 		else if (strcmp(args[arg], "desc") == 0)
 			appctx->ctx.stats.flags |= STAT_SHOW_FDESC;
+		else if (strcmp(args[arg], "up") == 0)
+			appctx->ctx.stats.flags |= STAT_HIDE_DOWN;
 		arg++;
 	}
 
@@ -4502,7 +4504,7 @@
 static struct cli_kw_list cli_kws = {{ },{
 	{ { "clear", "counters",  NULL }, "clear counters : clear max statistics counters (add 'all' for all counters)", cli_parse_clear_counters, NULL, NULL },
 	{ { "show", "info",  NULL }, "show info      : report information about the running process [desc|json|typed]*", cli_parse_show_info, cli_io_handler_dump_info, NULL },
-	{ { "show", "stat",  NULL }, "show stat      : report counters for each proxy and server [desc|json|typed]*", cli_parse_show_stat, cli_io_handler_dump_stat, NULL },
+	{ { "show", "stat",  NULL }, "show stat      : report counters for each proxy and server [desc|json|typed|up]*", cli_parse_show_stat, cli_io_handler_dump_stat, NULL },
 	{ { "show", "schema",  "json", NULL }, "show schema json : report schema used for stats", NULL, cli_io_handler_dump_json_schema, NULL },
 	{{},}
 }};