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] [up]
+show info [typed|json] [desc] [up|no-maint]
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
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.
+ This is analogous to the ";up" option on the HTTP stats. Similarly, the
+ "no-maint" modifier will act like the ";no-maint" HTTP modifier and will
+ result in disabled servers not to be listed. The difference is that those
+ which are enabled but down will not be evicted.
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
#define STAT_SHLGNDS 0x00000800 /* conf: show legends */
#define STAT_SHOW_FDESC 0x00001000 /* show the field descriptions when possible */
#define STAT_SHMODULES 0x00002000 /* conf: show modules */
+#define STAT_HIDE_MAINT 0x00004000 /* hide maint/disabled servers */
#define STAT_BOUND 0x00800000 /* bound statistics to selected proxies/types/services */
#define STAT_STARTED 0x01000000 /* some output has occurred */
continue;
}
+ /* do not report disabled servers */
+ if (appctx->ctx.stats.flags & STAT_HIDE_MAINT &&
+ sv->cur_admin & SRV_ADMF_MAINT) {
+ continue;
+ }
+
svs = sv;
while (svs->track)
svs = svs->track;
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], "no-maint") == 0)
+ appctx->ctx.stats.flags |= STAT_HIDE_MAINT;
else if (strcmp(args[arg], "up") == 0)
appctx->ctx.stats.flags |= STAT_HIDE_DOWN;
arg++;
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|up]*", cli_parse_show_stat, cli_io_handler_dump_stat, NULL },
+ { { "show", "stat", NULL }, "show stat : report counters for each proxy and server [desc|json|no-maint|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 },
{{},}
}};