MINOR: stats: add check_desc and agent_desc to the output fields
Added these two new fields to the CSV output :
- check_desc : short human-readable description of check_status
- agent_desc : short human-readable description of agent_status
Also factor two tests for enabled checks.
diff --git a/doc/management.txt b/doc/management.txt
index 46b03aa..6b491ff 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -1014,6 +1014,8 @@
L7STS -> agent reported "fail", "stop", or "down"
63. agent_code [...S]: numeric code reported by agent if any (unused for now)
64. agent_duration [...S]: time in ms taken to finish last check
+ 65. check_desc [...S]: short human-readable description of check_status
+ 66. agent_desc [...S]: short human-readable description of agent_status
9.2. Unix Socket commands
diff --git a/src/dumpstats.c b/src/dumpstats.c
index f3c2beb..38abc42 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -325,6 +325,8 @@
ST_F_AGENT_STATUS,
ST_F_AGENT_CODE,
ST_F_AGENT_DURATION,
+ ST_F_CHECK_DESC,
+ ST_F_AGENT_DESC,
/* must always be the last one */
ST_F_TOTAL_FIELDS
@@ -400,6 +402,8 @@
[ST_F_AGENT_STATUS] = "agent_status",
[ST_F_AGENT_CODE] = "agent_code",
[ST_F_AGENT_DURATION] = "agent_duration",
+ [ST_F_CHECK_DESC] = "check_desc",
+ [ST_F_AGENT_DESC] = "agent_desc",
};
/* one line of stats */
@@ -3750,6 +3754,9 @@
if (sv->check.status >= HCHK_STATUS_CHECKED)
stats[ST_F_CHECK_DURATION] = mkf_u64(FN_DURATION, sv->check.duration);
+
+ stats[ST_F_CHECK_DESC] = mkf_str(FN_OUTPUT, get_check_status_description(sv->check.status));
+ stats[ST_F_LAST_CHK] = mkf_str(FN_OUTPUT, sv->check.desc);
}
if ((sv->agent.state & (CHK_ST_ENABLED|CHK_ST_PAUSED)) == CHK_ST_ENABLED) {
@@ -3767,6 +3774,9 @@
if (sv->agent.status >= HCHK_STATUS_CHECKED)
stats[ST_F_AGENT_DURATION] = mkf_u64(FN_DURATION, sv->agent.duration);
+
+ stats[ST_F_AGENT_DESC] = mkf_str(FN_OUTPUT, get_check_status_description(sv->agent.status));
+ stats[ST_F_LAST_AGT] = mkf_str(FN_OUTPUT, sv->agent.desc);
}
/* http response: 1xx, 2xx, 3xx, 4xx, 5xx, other */
@@ -3784,12 +3794,6 @@
stats[ST_F_SRV_ABRT] = mkf_u64(FN_COUNTER, sv->counters.srv_aborts);
stats[ST_F_LASTSESS] = mkf_s32(FN_AGE, srv_lastsession(sv));
- if ((sv->check.state & (CHK_ST_ENABLED|CHK_ST_PAUSED)) == CHK_ST_ENABLED)
- stats[ST_F_LAST_CHK] = mkf_str(FN_OUTPUT, sv->check.desc);
-
- if ((sv->agent.state & (CHK_ST_ENABLED|CHK_ST_PAUSED)) == CHK_ST_ENABLED)
- stats[ST_F_LAST_AGT] = mkf_str(FN_OUTPUT, sv->agent.desc);
-
stats[ST_F_QTIME] = mkf_u32(FN_AVG, swrate_avg(sv->counters.q_time, TIME_STATS_SAMPLES));
stats[ST_F_CTIME] = mkf_u32(FN_AVG, swrate_avg(sv->counters.c_time, TIME_STATS_SAMPLES));
stats[ST_F_RTIME] = mkf_u32(FN_AVG, swrate_avg(sv->counters.d_time, TIME_STATS_SAMPLES));
@@ -3989,8 +3993,8 @@
if (stats[ST_F_AGENT_DURATION].type && stats[ST_F_AGENT_DURATION].u.u64 >= 0)
chunk_appendf(&trash, " in %lums", (long)stats[ST_F_AGENT_DURATION].u.u64);
- chunk_appendf(&trash, "<div class=tips>%s",
- get_check_status_description(sv->agent.status));
+ chunk_appendf(&trash, "<div class=tips>%s", field_str(stats, ST_F_AGENT_DESC));
+
if (*field_str(stats, ST_F_LAST_AGT)) {
chunk_appendf(&trash, ": ");
chunk_initstr(&src, field_str(stats, ST_F_LAST_AGT));
@@ -4009,8 +4013,8 @@
if (stats[ST_F_CHECK_DURATION].type && stats[ST_F_CHECK_DURATION].u.u64 >= 0)
chunk_appendf(&trash, " in %lums", (long)stats[ST_F_CHECK_DURATION].u.u64);
- chunk_appendf(&trash, "<div class=tips>%s",
- get_check_status_description(sv->check.status));
+ chunk_appendf(&trash, "<div class=tips>%s", field_str(stats, ST_F_CHECK_DESC));
+
if (*field_str(stats, ST_F_LAST_CHK)) {
chunk_appendf(&trash, ": ");
chunk_initstr(&src, field_str(stats, ST_F_LAST_CHK));