]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: dumpstats: extract stats fields enum and names
authorThierry Fournier <tfournier@arpalert.org>
Wed, 23 Mar 2016 15:25:49 +0000 (16:25 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 30 Mar 2016 15:21:09 +0000 (17:21 +0200)
These field names can be used outside of the dumpstats file.
This will be useful for exporting stats in Lua.

include/proto/dumpstats.h
src/dumpstats.c

index ca3357ad9ba3eaf9b921915640454b5653e2f05b..9db2eece080566f9bb32dde083e0b28c378649f0 100644 (file)
@@ -55,6 +55,160 @@ enum {
 #define STAT_SCOPE_INPUT_NAME "scope" /* pattern form scope name <input> in html form */
 #define STAT_SCOPE_PATTERN    "?" STAT_SCOPE_INPUT_NAME "="
 
+/* Show Info fields for CLI output. For any field added here, please add the text
+ * representation in the info_field_names array below. Please only append at the end,
+ * before the INF_TOTAL_FIELDS entry, and never insert anything in the middle
+ * nor at the beginning.
+ */
+enum info_field {
+       INF_NAME,
+       INF_VERSION,
+       INF_RELEASE_DATE,
+       INF_NBPROC,
+       INF_PROCESS_NUM,
+       INF_PID,
+       INF_UPTIME,
+       INF_UPTIME_SEC,
+       INF_MEMMAX_MB,
+       INF_POOL_ALLOC_MB,
+       INF_POOL_USED_MB,
+       INF_POOL_FAILED,
+       INF_ULIMIT_N,
+       INF_MAXSOCK,
+       INF_MAXCONN,
+       INF_HARD_MAXCONN,
+       INF_CURR_CONN,
+       INF_CUM_CONN,
+       INF_CUM_REQ,
+       INF_MAX_SSL_CONNS,
+       INF_CURR_SSL_CONNS,
+       INF_CUM_SSL_CONNS,
+       INF_MAXPIPES,
+       INF_PIPES_USED,
+       INF_PIPES_FREE,
+       INF_CONN_RATE,
+       INF_CONN_RATE_LIMIT,
+       INF_MAX_CONN_RATE,
+       INF_SESS_RATE,
+       INF_SESS_RATE_LIMIT,
+       INF_MAX_SESS_RATE,
+       INF_SSL_RATE,
+       INF_SSL_RATE_LIMIT,
+       INF_MAX_SSL_RATE,
+       INF_SSL_FRONTEND_KEY_RATE,
+       INF_SSL_FRONTEND_MAX_KEY_RATE,
+       INF_SSL_FRONTEND_SESSION_REUSE_PCT,
+       INF_SSL_BACKEND_KEY_RATE,
+       INF_SSL_BACKEND_MAX_KEY_RATE,
+       INF_SSL_CACHE_LOOKUPS,
+       INF_SSL_CACHE_MISSES,
+       INF_COMPRESS_BPS_IN,
+       INF_COMPRESS_BPS_OUT,
+       INF_COMPRESS_BPS_RATE_LIM,
+       INF_ZLIB_MEM_USAGE,
+       INF_MAX_ZLIB_MEM_USAGE,
+       INF_TASKS,
+       INF_RUN_QUEUE,
+       INF_IDLE_PCT,
+       INF_NODE,
+       INF_DESCRIPTION,
+
+       /* must always be the last one */
+       INF_TOTAL_FIELDS
+};
+
+/* Stats fields for CSV output. For any field added here, please add the text
+ * representation in the stat_field_names array below. Please only append at the end,
+ * before the ST_F_TOTAL_FIELDS entry, and never insert anything in the middle
+ * nor at the beginning.
+ */
+enum stat_field {
+       ST_F_PXNAME,
+       ST_F_SVNAME,
+       ST_F_QCUR,
+       ST_F_QMAX,
+       ST_F_SCUR,
+       ST_F_SMAX,
+       ST_F_SLIM,
+       ST_F_STOT,
+       ST_F_BIN ,
+       ST_F_BOUT,
+       ST_F_DREQ,
+       ST_F_DRESP,
+       ST_F_EREQ,
+       ST_F_ECON,
+       ST_F_ERESP,
+       ST_F_WRETR,
+       ST_F_WREDIS,
+       ST_F_STATUS,
+       ST_F_WEIGHT,
+       ST_F_ACT,
+       ST_F_BCK,
+       ST_F_CHKFAIL,
+       ST_F_CHKDOWN,
+       ST_F_LASTCHG,
+       ST_F_DOWNTIME,
+       ST_F_QLIMIT,
+       ST_F_PID,
+       ST_F_IID,
+       ST_F_SID,
+       ST_F_THROTTLE,
+       ST_F_LBTOT,
+       ST_F_TRACKED,
+       ST_F_TYPE,
+       ST_F_RATE,
+       ST_F_RATE_LIM,
+       ST_F_RATE_MAX,
+       ST_F_CHECK_STATUS,
+       ST_F_CHECK_CODE,
+       ST_F_CHECK_DURATION,
+       ST_F_HRSP_1XX,
+       ST_F_HRSP_2XX,
+       ST_F_HRSP_3XX,
+       ST_F_HRSP_4XX,
+       ST_F_HRSP_5XX,
+       ST_F_HRSP_OTHER,
+       ST_F_HANAFAIL,
+       ST_F_REQ_RATE,
+       ST_F_REQ_RATE_MAX,
+       ST_F_REQ_TOT,
+       ST_F_CLI_ABRT,
+       ST_F_SRV_ABRT,
+       ST_F_COMP_IN,
+       ST_F_COMP_OUT,
+       ST_F_COMP_BYP,
+       ST_F_COMP_RSP,
+       ST_F_LASTSESS,
+       ST_F_LAST_CHK,
+       ST_F_LAST_AGT,
+       ST_F_QTIME,
+       ST_F_CTIME,
+       ST_F_RTIME,
+       ST_F_TTIME,
+       ST_F_AGENT_STATUS,
+       ST_F_AGENT_CODE,
+       ST_F_AGENT_DURATION,
+       ST_F_CHECK_DESC,
+       ST_F_AGENT_DESC,
+       ST_F_CHECK_RISE,
+       ST_F_CHECK_FALL,
+       ST_F_CHECK_HEALTH,
+       ST_F_AGENT_RISE,
+       ST_F_AGENT_FALL,
+       ST_F_AGENT_HEALTH,
+       ST_F_ADDR,
+       ST_F_COOKIE,
+       ST_F_MODE,
+       ST_F_ALGO,
+       ST_F_CONN_RATE,
+       ST_F_CONN_RATE_MAX,
+       ST_F_CONN_TOT,
+       ST_F_INTERCEPTED,
+
+       /* must always be the last one */
+       ST_F_TOTAL_FIELDS
+};
+
 /* This level of detail is needed to let the stats consumer know how to
  * aggregate them (eg: between processes or cluster nodes). Only a few
  * combinations are actually in use, though the mechanism tends to make
@@ -230,6 +384,13 @@ static inline struct field mkf_str(uint32_t type, const char *value)
        return f;
 }
 
+/* These two structs contains all field names according with
+ * the the number of entries in "enum stat_field" and
+ * "enum info_field"
+ */
+extern const char *info_field_names[];
+extern const char *stat_field_names[];
+
 extern struct applet http_stats_applet;
 
 void stats_io_handler(struct stream_interface *si);
index 9dd859f87eec45fe1e8ea6c876523956c14ab52e..833dd9f8c0bc9c31a40ede6d5fac47f6edfbe5a3 100644 (file)
@@ -131,68 +131,6 @@ enum {
 };
 
 
-/* Show Info fields for CLI output. For any field added here, please add the text
- * representation in the info_field_names array below. Please only append at the end,
- * before the INF_TOTAL_FIELDS entry, and never insert anything in the middle
- * nor at the beginning.
- */
-enum info_field {
-       INF_NAME,
-       INF_VERSION,
-       INF_RELEASE_DATE,
-       INF_NBPROC,
-       INF_PROCESS_NUM,
-       INF_PID,
-       INF_UPTIME,
-       INF_UPTIME_SEC,
-       INF_MEMMAX_MB,
-       INF_POOL_ALLOC_MB,
-       INF_POOL_USED_MB,
-       INF_POOL_FAILED,
-       INF_ULIMIT_N,
-       INF_MAXSOCK,
-       INF_MAXCONN,
-       INF_HARD_MAXCONN,
-       INF_CURR_CONN,
-       INF_CUM_CONN,
-       INF_CUM_REQ,
-       INF_MAX_SSL_CONNS,
-       INF_CURR_SSL_CONNS,
-       INF_CUM_SSL_CONNS,
-       INF_MAXPIPES,
-       INF_PIPES_USED,
-       INF_PIPES_FREE,
-       INF_CONN_RATE,
-       INF_CONN_RATE_LIMIT,
-       INF_MAX_CONN_RATE,
-       INF_SESS_RATE,
-       INF_SESS_RATE_LIMIT,
-       INF_MAX_SESS_RATE,
-       INF_SSL_RATE,
-       INF_SSL_RATE_LIMIT,
-       INF_MAX_SSL_RATE,
-       INF_SSL_FRONTEND_KEY_RATE,
-       INF_SSL_FRONTEND_MAX_KEY_RATE,
-       INF_SSL_FRONTEND_SESSION_REUSE_PCT,
-       INF_SSL_BACKEND_KEY_RATE,
-       INF_SSL_BACKEND_MAX_KEY_RATE,
-       INF_SSL_CACHE_LOOKUPS,
-       INF_SSL_CACHE_MISSES,
-       INF_COMPRESS_BPS_IN,
-       INF_COMPRESS_BPS_OUT,
-       INF_COMPRESS_BPS_RATE_LIM,
-       INF_ZLIB_MEM_USAGE,
-       INF_MAX_ZLIB_MEM_USAGE,
-       INF_TASKS,
-       INF_RUN_QUEUE,
-       INF_IDLE_PCT,
-       INF_NODE,
-       INF_DESCRIPTION,
-
-       /* must always be the last one */
-       INF_TOTAL_FIELDS
-};
-
 /* These are the field names for each INF_* field position. Please pay attention
  * to always use the exact same name except that the strings for new names must
  * be lower case or CamelCase while the enum entries must be upper case.
@@ -254,98 +192,6 @@ const char *info_field_names[INF_TOTAL_FIELDS] = {
 /* one line of stats */
 static struct field info[INF_TOTAL_FIELDS];
 
-/* Stats fields for CSV output. For any field added here, please add the text
- * representation in the stat_field_names array below. Please only append at the end,
- * before the ST_F_TOTAL_FIELDS entry, and never insert anything in the middle
- * nor at the beginning.
- */
-enum stat_field {
-       ST_F_PXNAME,
-       ST_F_SVNAME,
-       ST_F_QCUR,
-       ST_F_QMAX,
-       ST_F_SCUR,
-       ST_F_SMAX,
-       ST_F_SLIM,
-       ST_F_STOT,
-       ST_F_BIN ,
-       ST_F_BOUT,
-       ST_F_DREQ,
-       ST_F_DRESP,
-       ST_F_EREQ,
-       ST_F_ECON,
-       ST_F_ERESP,
-       ST_F_WRETR,
-       ST_F_WREDIS,
-       ST_F_STATUS,
-       ST_F_WEIGHT,
-       ST_F_ACT,
-       ST_F_BCK,
-       ST_F_CHKFAIL,
-       ST_F_CHKDOWN,
-       ST_F_LASTCHG,
-       ST_F_DOWNTIME,
-       ST_F_QLIMIT,
-       ST_F_PID,
-       ST_F_IID,
-       ST_F_SID,
-       ST_F_THROTTLE,
-       ST_F_LBTOT,
-       ST_F_TRACKED,
-       ST_F_TYPE,
-       ST_F_RATE,
-       ST_F_RATE_LIM,
-       ST_F_RATE_MAX,
-       ST_F_CHECK_STATUS,
-       ST_F_CHECK_CODE,
-       ST_F_CHECK_DURATION,
-       ST_F_HRSP_1XX,
-       ST_F_HRSP_2XX,
-       ST_F_HRSP_3XX,
-       ST_F_HRSP_4XX,
-       ST_F_HRSP_5XX,
-       ST_F_HRSP_OTHER,
-       ST_F_HANAFAIL,
-       ST_F_REQ_RATE,
-       ST_F_REQ_RATE_MAX,
-       ST_F_REQ_TOT,
-       ST_F_CLI_ABRT,
-       ST_F_SRV_ABRT,
-       ST_F_COMP_IN,
-       ST_F_COMP_OUT,
-       ST_F_COMP_BYP,
-       ST_F_COMP_RSP,
-       ST_F_LASTSESS,
-       ST_F_LAST_CHK,
-       ST_F_LAST_AGT,
-       ST_F_QTIME,
-       ST_F_CTIME,
-       ST_F_RTIME,
-       ST_F_TTIME,
-       ST_F_AGENT_STATUS,
-       ST_F_AGENT_CODE,
-       ST_F_AGENT_DURATION,
-       ST_F_CHECK_DESC,
-       ST_F_AGENT_DESC,
-       ST_F_CHECK_RISE,
-       ST_F_CHECK_FALL,
-       ST_F_CHECK_HEALTH,
-       ST_F_AGENT_RISE,
-       ST_F_AGENT_FALL,
-       ST_F_AGENT_HEALTH,
-       ST_F_ADDR,
-       ST_F_COOKIE,
-       ST_F_MODE,
-       ST_F_ALGO,
-       ST_F_CONN_RATE,
-       ST_F_CONN_RATE_MAX,
-       ST_F_CONN_TOT,
-       ST_F_INTERCEPTED,
-
-       /* must always be the last one */
-       ST_F_TOTAL_FIELDS
-};
-
 /* These are the field names for each ST_F_* field position. Please pay attention
  * to always use the exact same name except that the strings must be lower case
  * while the enum entries must be upper case.