MINOR: stats: report the number of active jobs and listeners in "show info"
When an haproxy process doesn't stop after a reload, it's because it
still has some active "jobs", which mainly are active sessions, listeners,
peers or other specific activities. Sometimes it's difficult to troubleshoot
the cause of these issues (which generally are the result of a bug) only
because some indicators are missing.
This patch add the number of listeners, the number of jobs, and the stopping
status to the output of "show info". This way it becomes a bit easier to try
to narrow down the cause of such an issue should it happen. A typical use
case is to connect to the CLI before reloading, then issuing the "show info"
command to see what happens. In the normal situation, stopping should equal
1, jobs should equal 1 (meaning only the CLI is still active) and listeners
should equal zero.
The patch is so trivial that it could make sense to backport it to 1.8 in
order to help with troubleshooting.
diff --git a/src/stats.c b/src/stats.c
index efa5c09..cbb9870 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -130,6 +130,9 @@
[INF_IDLE_PCT] = "Idle_pct",
[INF_NODE] = "node",
[INF_DESCRIPTION] = "description",
+ [INF_STOPPING] = "Stopping",
+ [INF_JOBS] = "Jobs",
+ [INF_LISTENERS] = "Listeners",
};
const char *stat_field_names[ST_F_TOTAL_FIELDS] = {
@@ -3292,6 +3295,9 @@
info[INF_NODE] = mkf_str(FO_CONFIG|FN_OUTPUT|FS_SERVICE, global.node);
if (global.desc)
info[INF_DESCRIPTION] = mkf_str(FO_CONFIG|FN_OUTPUT|FS_SERVICE, global.desc);
+ info[INF_STOPPING] = mkf_u32(0, stopping);
+ info[INF_JOBS] = mkf_u32(0, jobs);
+ info[INF_LISTENERS] = mkf_u32(0, listeners);
return 1;
}