diff --git a/include/proto/stats.h b/include/proto/stats.h
index 6144d2f..d20beea 100644
--- a/include/proto/stats.h
+++ b/include/proto/stats.h
@@ -92,12 +92,11 @@
 
 extern const char *stat_status_codes[];
 
-/* These two structs contains all field names according with
- * the the number of entries in "enum stat_field" and
- * "enum info_field"
+/* These two structs contains all field names and descriptions according to
+ * 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 const struct name_desc stat_fields[];
+extern const struct name_desc info_fields[];
 
 int stats_fill_info(struct field *info, int len);
 int stats_fill_fe_stats(struct proxy *px, struct field *stats, int len);
diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
index 28261fd..7ef708c 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -356,7 +356,7 @@
 
 	lua_newtable(L);
 	for (i=0; i<INF_TOTAL_FIELDS; i++) {
-		lua_pushstring(L, info_field_names[i]);
+		lua_pushstring(L, info_fields[i].name);
 		hlua_fcn_pushfield(L, &stats[i]);
 		lua_settable(L, -3);
 	}
@@ -862,7 +862,7 @@
 
 	lua_newtable(L);
 	for (i=0; i<ST_F_TOTAL_FIELDS; i++) {
-		lua_pushstring(L, stat_field_names[i]);
+		lua_pushstring(L, stat_fields[i].name);
 		hlua_fcn_pushfield(L, &stats[i]);
 		lua_settable(L, -3);
 	}
@@ -918,7 +918,7 @@
 
 	lua_newtable(L);
 	for (i=0; i<ST_F_TOTAL_FIELDS; i++) {
-		lua_pushstring(L, stat_field_names[i]);
+		lua_pushstring(L, stat_fields[i].name);
 		hlua_fcn_pushfield(L, &stats[i]);
 		lua_settable(L, -3);
 	}
@@ -1333,7 +1333,7 @@
 		stats_fill_fe_stats(px, stats, STATS_LEN);
 	lua_newtable(L);
 	for (i=0; i<ST_F_TOTAL_FIELDS; i++) {
-		lua_pushstring(L, stat_field_names[i]);
+		lua_pushstring(L, stat_fields[i].name);
 		hlua_fcn_pushfield(L, &stats[i]);
 		lua_settable(L, -3);
 	}
diff --git a/src/stats.c b/src/stats.c
index 4c51a86..e9cbb96 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -72,7 +72,6 @@
 #include <proto/stream_interface.h>
 #include <proto/task.h>
 
-
 /* status codes available for the stats admin page (strictly 4 chars length) */
 const char *stat_status_codes[STAT_STATUS_SIZE] = {
 	[STAT_STATUS_DENY] = "DENY",
@@ -89,163 +88,163 @@
  * 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.
  */
-const char *info_field_names[INF_TOTAL_FIELDS] = {
-	[INF_NAME]                           = "Name",
-	[INF_VERSION]                        = "Version",
-	[INF_RELEASE_DATE]                   = "Release_date",
-	[INF_NBTHREAD]                       = "Nbthread",
-	[INF_NBPROC]                         = "Nbproc",
-	[INF_PROCESS_NUM]                    = "Process_num",
-	[INF_PID]                            = "Pid",
-	[INF_UPTIME]                         = "Uptime",
-	[INF_UPTIME_SEC]                     = "Uptime_sec",
-	[INF_MEMMAX_MB]                      = "Memmax_MB",
-	[INF_POOL_ALLOC_MB]                  = "PoolAlloc_MB",
-	[INF_POOL_USED_MB]                   = "PoolUsed_MB",
-	[INF_POOL_FAILED]                    = "PoolFailed",
-	[INF_ULIMIT_N]                       = "Ulimit-n",
-	[INF_MAXSOCK]                        = "Maxsock",
-	[INF_MAXCONN]                        = "Maxconn",
-	[INF_HARD_MAXCONN]                   = "Hard_maxconn",
-	[INF_CURR_CONN]                      = "CurrConns",
-	[INF_CUM_CONN]                       = "CumConns",
-	[INF_CUM_REQ]                        = "CumReq",
-	[INF_MAX_SSL_CONNS]                  = "MaxSslConns",
-	[INF_CURR_SSL_CONNS]                 = "CurrSslConns",
-	[INF_CUM_SSL_CONNS]                  = "CumSslConns",
-	[INF_MAXPIPES]                       = "Maxpipes",
-	[INF_PIPES_USED]                     = "PipesUsed",
-	[INF_PIPES_FREE]                     = "PipesFree",
-	[INF_CONN_RATE]                      = "ConnRate",
-	[INF_CONN_RATE_LIMIT]                = "ConnRateLimit",
-	[INF_MAX_CONN_RATE]                  = "MaxConnRate",
-	[INF_SESS_RATE]                      = "SessRate",
-	[INF_SESS_RATE_LIMIT]                = "SessRateLimit",
-	[INF_MAX_SESS_RATE]                  = "MaxSessRate",
-	[INF_SSL_RATE]                       = "SslRate",
-	[INF_SSL_RATE_LIMIT]                 = "SslRateLimit",
-	[INF_MAX_SSL_RATE]                   = "MaxSslRate",
-	[INF_SSL_FRONTEND_KEY_RATE]          = "SslFrontendKeyRate",
-	[INF_SSL_FRONTEND_MAX_KEY_RATE]      = "SslFrontendMaxKeyRate",
-	[INF_SSL_FRONTEND_SESSION_REUSE_PCT] = "SslFrontendSessionReuse_pct",
-	[INF_SSL_BACKEND_KEY_RATE]           = "SslBackendKeyRate",
-	[INF_SSL_BACKEND_MAX_KEY_RATE]       = "SslBackendMaxKeyRate",
-	[INF_SSL_CACHE_LOOKUPS]              = "SslCacheLookups",
-	[INF_SSL_CACHE_MISSES]               = "SslCacheMisses",
-	[INF_COMPRESS_BPS_IN]                = "CompressBpsIn",
-	[INF_COMPRESS_BPS_OUT]               = "CompressBpsOut",
-	[INF_COMPRESS_BPS_RATE_LIM]          = "CompressBpsRateLim",
-	[INF_ZLIB_MEM_USAGE]                 = "ZlibMemUsage",
-	[INF_MAX_ZLIB_MEM_USAGE]             = "MaxZlibMemUsage",
-	[INF_TASKS]                          = "Tasks",
-	[INF_RUN_QUEUE]                      = "Run_queue",
-	[INF_IDLE_PCT]                       = "Idle_pct",
-	[INF_NODE]                           = "node",
-	[INF_DESCRIPTION]                    = "description",
-	[INF_STOPPING]                       = "Stopping",
-	[INF_JOBS]                           = "Jobs",
-	[INF_UNSTOPPABLE_JOBS]               = "Unstoppable Jobs",
-	[INF_LISTENERS]                      = "Listeners",
-	[INF_ACTIVE_PEERS]                   = "ActivePeers",
-	[INF_CONNECTED_PEERS]                = "ConnectedPeers",
-	[INF_DROPPED_LOGS]                   = "DroppedLogs",
-	[INF_BUSY_POLLING]                   = "BusyPolling",
-	[INF_FAILED_RESOLUTIONS]             = "FailedResolutions",
-	[INF_TOTAL_BYTES_OUT]                = "TotalBytesOut",
-	[INF_BYTES_OUT_RATE]                 = "BytesOutRate",
+const struct name_desc info_fields[INF_TOTAL_FIELDS] = {
+	[INF_NAME]                           { .name = "Name",                        .desc = "" },
+	[INF_VERSION]                        { .name = "Version",                     .desc = "" },
+	[INF_RELEASE_DATE]                   { .name = "Release_date",                .desc = "" },
+	[INF_NBTHREAD]                       { .name = "Nbthread",                    .desc = "" },
+	[INF_NBPROC]                         { .name = "Nbproc",                      .desc = "" },
+	[INF_PROCESS_NUM]                    { .name = "Process_num",                 .desc = "" },
+	[INF_PID]                            { .name = "Pid",                         .desc = "" },
+	[INF_UPTIME]                         { .name = "Uptime",                      .desc = "" },
+	[INF_UPTIME_SEC]                     { .name = "Uptime_sec",                  .desc = "" },
+	[INF_MEMMAX_MB]                      { .name = "Memmax_MB",                   .desc = "" },
+	[INF_POOL_ALLOC_MB]                  { .name = "PoolAlloc_MB",                .desc = "" },
+	[INF_POOL_USED_MB]                   { .name = "PoolUsed_MB",                 .desc = "" },
+	[INF_POOL_FAILED]                    { .name = "PoolFailed",                  .desc = "" },
+	[INF_ULIMIT_N]                       { .name = "Ulimit-n",                    .desc = "" },
+	[INF_MAXSOCK]                        { .name = "Maxsock",                     .desc = "" },
+	[INF_MAXCONN]                        { .name = "Maxconn",                     .desc = "" },
+	[INF_HARD_MAXCONN]                   { .name = "Hard_maxconn",                .desc = "" },
+	[INF_CURR_CONN]                      { .name = "CurrConns",                   .desc = "" },
+	[INF_CUM_CONN]                       { .name = "CumConns",                    .desc = "" },
+	[INF_CUM_REQ]                        { .name = "CumReq",                      .desc = "" },
+	[INF_MAX_SSL_CONNS]                  { .name = "MaxSslConns",                 .desc = "" },
+	[INF_CURR_SSL_CONNS]                 { .name = "CurrSslConns",                .desc = "" },
+	[INF_CUM_SSL_CONNS]                  { .name = "CumSslConns",                 .desc = "" },
+	[INF_MAXPIPES]                       { .name = "Maxpipes",                    .desc = "" },
+	[INF_PIPES_USED]                     { .name = "PipesUsed",                   .desc = "" },
+	[INF_PIPES_FREE]                     { .name = "PipesFree",                   .desc = "" },
+	[INF_CONN_RATE]                      { .name = "ConnRate",                    .desc = "" },
+	[INF_CONN_RATE_LIMIT]                { .name = "ConnRateLimit",               .desc = "" },
+	[INF_MAX_CONN_RATE]                  { .name = "MaxConnRate",                 .desc = "" },
+	[INF_SESS_RATE]                      { .name = "SessRate",                    .desc = "" },
+	[INF_SESS_RATE_LIMIT]                { .name = "SessRateLimit",               .desc = "" },
+	[INF_MAX_SESS_RATE]                  { .name = "MaxSessRate",                 .desc = "" },
+	[INF_SSL_RATE]                       { .name = "SslRate",                     .desc = "" },
+	[INF_SSL_RATE_LIMIT]                 { .name = "SslRateLimit",                .desc = "" },
+	[INF_MAX_SSL_RATE]                   { .name = "MaxSslRate",                  .desc = "" },
+	[INF_SSL_FRONTEND_KEY_RATE]          { .name = "SslFrontendKeyRate",          .desc = "" },
+	[INF_SSL_FRONTEND_MAX_KEY_RATE]      { .name = "SslFrontendMaxKeyRate",       .desc = "" },
+	[INF_SSL_FRONTEND_SESSION_REUSE_PCT] { .name = "SslFrontendSessionReuse_pct", .desc = "" },
+	[INF_SSL_BACKEND_KEY_RATE]           { .name = "SslBackendKeyRate",           .desc = "" },
+	[INF_SSL_BACKEND_MAX_KEY_RATE]       { .name = "SslBackendMaxKeyRate",        .desc = "" },
+	[INF_SSL_CACHE_LOOKUPS]              { .name = "SslCacheLookups",             .desc = "" },
+	[INF_SSL_CACHE_MISSES]               { .name = "SslCacheMisses",              .desc = "" },
+	[INF_COMPRESS_BPS_IN]                { .name = "CompressBpsIn",               .desc = "" },
+	[INF_COMPRESS_BPS_OUT]               { .name = "CompressBpsOut",              .desc = "" },
+	[INF_COMPRESS_BPS_RATE_LIM]          { .name = "CompressBpsRateLim",          .desc = "" },
+	[INF_ZLIB_MEM_USAGE]                 { .name = "ZlibMemUsage",                .desc = "" },
+	[INF_MAX_ZLIB_MEM_USAGE]             { .name = "MaxZlibMemUsage",             .desc = "" },
+	[INF_TASKS]                          { .name = "Tasks",                       .desc = "" },
+	[INF_RUN_QUEUE]                      { .name = "Run_queue",                   .desc = "" },
+	[INF_IDLE_PCT]                       { .name = "Idle_pct",                    .desc = "" },
+	[INF_NODE]                           { .name = "node",                        .desc = "" },
+	[INF_DESCRIPTION]                    { .name = "description",                 .desc = "" },
+	[INF_STOPPING]                       { .name = "Stopping",                    .desc = "" },
+	[INF_JOBS]                           { .name = "Jobs",                        .desc = "" },
+	[INF_UNSTOPPABLE_JOBS]               { .name = "Unstoppable Jobs",            .desc = "" },
+	[INF_LISTENERS]                      { .name = "Listeners",                   .desc = "" },
+	[INF_ACTIVE_PEERS]                   { .name = "ActivePeers",                 .desc = "" },
+	[INF_CONNECTED_PEERS]                { .name = "ConnectedPeers",              .desc = "" },
+	[INF_DROPPED_LOGS]                   { .name = "DroppedLogs",                 .desc = "" },
+	[INF_BUSY_POLLING]                   { .name = "BusyPolling",                 .desc = "" },
+	[INF_FAILED_RESOLUTIONS]             { .name = "FailedResolutions",           .desc = "" },
+	[INF_TOTAL_BYTES_OUT]                { .name = "TotalBytesOut",               .desc = "" },
+	[INF_BYTES_OUT_RATE]                 { .name = "BytesOutRate",                .desc = "" },
 };
 
-const char *stat_field_names[ST_F_TOTAL_FIELDS] = {
-	[ST_F_PXNAME]         = "pxname",
-	[ST_F_SVNAME]         = "svname",
-	[ST_F_QCUR]           = "qcur",
-	[ST_F_QMAX]           = "qmax",
-	[ST_F_SCUR]           = "scur",
-	[ST_F_SMAX]           = "smax",
-	[ST_F_SLIM]           = "slim",
-	[ST_F_STOT]           = "stot",
-	[ST_F_BIN]            = "bin",
-	[ST_F_BOUT]           = "bout",
-	[ST_F_DREQ]           = "dreq",
-	[ST_F_DRESP]          = "dresp",
-	[ST_F_EREQ]           = "ereq",
-	[ST_F_ECON]           = "econ",
-	[ST_F_ERESP]          = "eresp",
-	[ST_F_WRETR]          = "wretr",
-	[ST_F_WREDIS]         = "wredis",
-	[ST_F_STATUS]         = "status",
-	[ST_F_WEIGHT]         = "weight",
-	[ST_F_ACT]            = "act",
-	[ST_F_BCK]            = "bck",
-	[ST_F_CHKFAIL]        = "chkfail",
-	[ST_F_CHKDOWN]        = "chkdown",
-	[ST_F_LASTCHG]        = "lastchg",
-	[ST_F_DOWNTIME]       = "downtime",
-	[ST_F_QLIMIT]         = "qlimit",
-	[ST_F_PID]            = "pid",
-	[ST_F_IID]            = "iid",
-	[ST_F_SID]            = "sid",
-	[ST_F_THROTTLE]       = "throttle",
-	[ST_F_LBTOT]          = "lbtot",
-	[ST_F_TRACKED]        = "tracked",
-	[ST_F_TYPE]           = "type",
-	[ST_F_RATE]           = "rate",
-	[ST_F_RATE_LIM]       = "rate_lim",
-	[ST_F_RATE_MAX]       = "rate_max",
-	[ST_F_CHECK_STATUS]   = "check_status",
-	[ST_F_CHECK_CODE]     = "check_code",
-	[ST_F_CHECK_DURATION] = "check_duration",
-	[ST_F_HRSP_1XX]       = "hrsp_1xx",
-	[ST_F_HRSP_2XX]       = "hrsp_2xx",
-	[ST_F_HRSP_3XX]       = "hrsp_3xx",
-	[ST_F_HRSP_4XX]       = "hrsp_4xx",
-	[ST_F_HRSP_5XX]       = "hrsp_5xx",
-	[ST_F_HRSP_OTHER]     = "hrsp_other",
-	[ST_F_HANAFAIL]       = "hanafail",
-	[ST_F_REQ_RATE]       = "req_rate",
-	[ST_F_REQ_RATE_MAX]   = "req_rate_max",
-	[ST_F_REQ_TOT]        = "req_tot",
-	[ST_F_CLI_ABRT]       = "cli_abrt",
-	[ST_F_SRV_ABRT]       = "srv_abrt",
-	[ST_F_COMP_IN]        = "comp_in",
-	[ST_F_COMP_OUT]       = "comp_out",
-	[ST_F_COMP_BYP]       = "comp_byp",
-	[ST_F_COMP_RSP]       = "comp_rsp",
-	[ST_F_LASTSESS]       = "lastsess",
-	[ST_F_LAST_CHK]       = "last_chk",
-	[ST_F_LAST_AGT]       = "last_agt",
-	[ST_F_QTIME]          = "qtime",
-	[ST_F_CTIME]          = "ctime",
-	[ST_F_RTIME]          = "rtime",
-	[ST_F_TTIME]          = "ttime",
-	[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",
-	[ST_F_CHECK_RISE]     = "check_rise",
-	[ST_F_CHECK_FALL]     = "check_fall",
-	[ST_F_CHECK_HEALTH]   = "check_health",
-	[ST_F_AGENT_RISE]     = "agent_rise",
-	[ST_F_AGENT_FALL]     = "agent_fall",
-	[ST_F_AGENT_HEALTH]   = "agent_health",
-	[ST_F_ADDR]           = "addr",
-	[ST_F_COOKIE]         = "cookie",
-	[ST_F_MODE]           = "mode",
-	[ST_F_ALGO]           = "algo",
-	[ST_F_CONN_RATE]      = "conn_rate",
-	[ST_F_CONN_RATE_MAX]  = "conn_rate_max",
-	[ST_F_CONN_TOT]       = "conn_tot",
-	[ST_F_INTERCEPTED]    = "intercepted",
-	[ST_F_DCON]           = "dcon",
-	[ST_F_DSES]           = "dses",
-	[ST_F_WREW]           = "wrew",
-	[ST_F_CONNECT]        = "connect",
-	[ST_F_REUSE]          = "reuse",
-	[ST_F_CACHE_LOOKUPS]  = "cache_lookups",
-	[ST_F_CACHE_HITS]     = "cache_hits",
-	[ST_F_SRV_ICUR]       = "srv_icur",
-	[ST_F_SRV_ILIM]       = "src_ilim"
+const struct name_desc stat_fields[ST_F_TOTAL_FIELDS] = {
+	[ST_F_PXNAME]                        { .name = "pxname",                      .desc = "" },
+	[ST_F_SVNAME]                        { .name = "svname",                      .desc = "" },
+	[ST_F_QCUR]                          { .name = "qcur",                        .desc = "" },
+	[ST_F_QMAX]                          { .name = "qmax",                        .desc = "" },
+	[ST_F_SCUR]                          { .name = "scur",                        .desc = "" },
+	[ST_F_SMAX]                          { .name = "smax",                        .desc = "" },
+	[ST_F_SLIM]                          { .name = "slim",                        .desc = "" },
+	[ST_F_STOT]                          { .name = "stot",                        .desc = "" },
+	[ST_F_BIN]                           { .name = "bin",                         .desc = "" },
+	[ST_F_BOUT]                          { .name = "bout",                        .desc = "" },
+	[ST_F_DREQ]                          { .name = "dreq",                        .desc = "" },
+	[ST_F_DRESP]                         { .name = "dresp",                       .desc = "" },
+	[ST_F_EREQ]                          { .name = "ereq",                        .desc = "" },
+	[ST_F_ECON]                          { .name = "econ",                        .desc = "" },
+	[ST_F_ERESP]                         { .name = "eresp",                       .desc = "" },
+	[ST_F_WRETR]                         { .name = "wretr",                       .desc = "" },
+	[ST_F_WREDIS]                        { .name = "wredis",                      .desc = "" },
+	[ST_F_STATUS]                        { .name = "status",                      .desc = "" },
+	[ST_F_WEIGHT]                        { .name = "weight",                      .desc = "" },
+	[ST_F_ACT]                           { .name = "act",                         .desc = "" },
+	[ST_F_BCK]                           { .name = "bck",                         .desc = "" },
+	[ST_F_CHKFAIL]                       { .name = "chkfail",                     .desc = "" },
+	[ST_F_CHKDOWN]                       { .name = "chkdown",                     .desc = "" },
+	[ST_F_LASTCHG]                       { .name = "lastchg",                     .desc = "" },
+	[ST_F_DOWNTIME]                      { .name = "downtime",                    .desc = "" },
+	[ST_F_QLIMIT]                        { .name = "qlimit",                      .desc = "" },
+	[ST_F_PID]                           { .name = "pid",                         .desc = "" },
+	[ST_F_IID]                           { .name = "iid",                         .desc = "" },
+	[ST_F_SID]                           { .name = "sid",                         .desc = "" },
+	[ST_F_THROTTLE]                      { .name = "throttle",                    .desc = "" },
+	[ST_F_LBTOT]                         { .name = "lbtot",                       .desc = "" },
+	[ST_F_TRACKED]                       { .name = "tracked",                     .desc = "" },
+	[ST_F_TYPE]                          { .name = "type",                        .desc = "" },
+	[ST_F_RATE]                          { .name = "rate",                        .desc = "" },
+	[ST_F_RATE_LIM]                      { .name = "rate_lim",                    .desc = "" },
+	[ST_F_RATE_MAX]                      { .name = "rate_max",                    .desc = "" },
+	[ST_F_CHECK_STATUS]                  { .name = "check_status",                .desc = "" },
+	[ST_F_CHECK_CODE]                    { .name = "check_code",                  .desc = "" },
+	[ST_F_CHECK_DURATION]                { .name = "check_duration",              .desc = "" },
+	[ST_F_HRSP_1XX]                      { .name = "hrsp_1xx",                    .desc = "" },
+	[ST_F_HRSP_2XX]                      { .name = "hrsp_2xx",                    .desc = "" },
+	[ST_F_HRSP_3XX]                      { .name = "hrsp_3xx",                    .desc = "" },
+	[ST_F_HRSP_4XX]                      { .name = "hrsp_4xx",                    .desc = "" },
+	[ST_F_HRSP_5XX]                      { .name = "hrsp_5xx",                    .desc = "" },
+	[ST_F_HRSP_OTHER]                    { .name = "hrsp_other",                  .desc = "" },
+	[ST_F_HANAFAIL]                      { .name = "hanafail",                    .desc = "" },
+	[ST_F_REQ_RATE]                      { .name = "req_rate",                    .desc = "" },
+	[ST_F_REQ_RATE_MAX]                  { .name = "req_rate_max",                .desc = "" },
+	[ST_F_REQ_TOT]                       { .name = "req_tot",                     .desc = "" },
+	[ST_F_CLI_ABRT]                      { .name = "cli_abrt",                    .desc = "" },
+	[ST_F_SRV_ABRT]                      { .name = "srv_abrt",                    .desc = "" },
+	[ST_F_COMP_IN]                       { .name = "comp_in",                     .desc = "" },
+	[ST_F_COMP_OUT]                      { .name = "comp_out",                    .desc = "" },
+	[ST_F_COMP_BYP]                      { .name = "comp_byp",                    .desc = "" },
+	[ST_F_COMP_RSP]                      { .name = "comp_rsp",                    .desc = "" },
+	[ST_F_LASTSESS]                      { .name = "lastsess",                    .desc = "" },
+	[ST_F_LAST_CHK]                      { .name = "last_chk",                    .desc = "" },
+	[ST_F_LAST_AGT]                      { .name = "last_agt",                    .desc = "" },
+	[ST_F_QTIME]                         { .name = "qtime",                       .desc = "" },
+	[ST_F_CTIME]                         { .name = "ctime",                       .desc = "" },
+	[ST_F_RTIME]                         { .name = "rtime",                       .desc = "" },
+	[ST_F_TTIME]                         { .name = "ttime",                       .desc = "" },
+	[ST_F_AGENT_STATUS]                  { .name = "agent_status",                .desc = "" },
+	[ST_F_AGENT_CODE]                    { .name = "agent_code",                  .desc = "" },
+	[ST_F_AGENT_DURATION]                { .name = "agent_duration",              .desc = "" },
+	[ST_F_CHECK_DESC]                    { .name = "check_desc",                  .desc = "" },
+	[ST_F_AGENT_DESC]                    { .name = "agent_desc",                  .desc = "" },
+	[ST_F_CHECK_RISE]                    { .name = "check_rise",                  .desc = "" },
+	[ST_F_CHECK_FALL]                    { .name = "check_fall",                  .desc = "" },
+	[ST_F_CHECK_HEALTH]                  { .name = "check_health",                .desc = "" },
+	[ST_F_AGENT_RISE]                    { .name = "agent_rise",                  .desc = "" },
+	[ST_F_AGENT_FALL]                    { .name = "agent_fall",                  .desc = "" },
+	[ST_F_AGENT_HEALTH]                  { .name = "agent_health",                .desc = "" },
+	[ST_F_ADDR]                          { .name = "addr",                        .desc = "" },
+	[ST_F_COOKIE]                        { .name = "cookie",                      .desc = "" },
+	[ST_F_MODE]                          { .name = "mode",                        .desc = "" },
+	[ST_F_ALGO]                          { .name = "algo",                        .desc = "" },
+	[ST_F_CONN_RATE]                     { .name = "conn_rate",                   .desc = "" },
+	[ST_F_CONN_RATE_MAX]                 { .name = "conn_rate_max",               .desc = "" },
+	[ST_F_CONN_TOT]                      { .name = "conn_tot",                    .desc = "" },
+	[ST_F_INTERCEPTED]                   { .name = "intercepted",                 .desc = "" },
+	[ST_F_DCON]                          { .name = "dcon",                        .desc = "" },
+	[ST_F_DSES]                          { .name = "dses",                        .desc = "" },
+	[ST_F_WREW]                          { .name = "wrew",                        .desc = "" },
+	[ST_F_CONNECT]                       { .name = "connect",                     .desc = "" },
+	[ST_F_REUSE]                         { .name = "reuse",                       .desc = "" },
+	[ST_F_CACHE_LOOKUPS]                 { .name = "cache_lookups",               .desc = "" },
+	[ST_F_CACHE_HITS]                    { .name = "cache_hits",                  .desc = "" },
+	[ST_F_SRV_ICUR]                      { .name = "srv_icur",                    .desc = "" },
+	[ST_F_SRV_ILIM]                      { .name = "src_ilim",                    .desc = "" },
 };
 
 /* one line of info */
@@ -316,7 +315,7 @@
 
 	chunk_appendf(&trash, "# ");
 	for (field = 0; field < ST_F_TOTAL_FIELDS; field++)
-		chunk_appendf(&trash, "%s,", stat_field_names[field]);
+		chunk_appendf(&trash, "%s,", stat_fields[field].name);
 
 	chunk_appendf(&trash, "\n");
 }
@@ -539,7 +538,7 @@
 		              stats[ST_F_TYPE].u.u32 == STATS_TYPE_SV ? 'S' :
 		              '?',
 		              stats[ST_F_IID].u.u32, stats[ST_F_SID].u.u32,
-		              field, stat_field_names[field], stats[ST_F_PID].u.u32);
+		              field, stat_fields[field].name, stats[ST_F_PID].u.u32);
 
 		if (!stats_emit_field_tags(out, &stats[field], ':'))
 			return 0;
@@ -575,7 +574,7 @@
 		chunk_appendf(out,
 			      "{\"field\":{\"pos\":%d,\"name\":\"%s\"},"
 			      "\"processNum\":%u,",
-			      field, info_field_names[field],
+			      field, info_fields[field].name,
 			      info[INF_PROCESS_NUM].u.u32);
 		if (old_len == out->data)
 			goto err;
@@ -642,7 +641,7 @@
 				"\"processNum\":%u,",
 			       obj_type, stats[ST_F_IID].u.u32,
 			       stats[ST_F_SID].u.u32, field,
-			       stat_field_names[field], stats[ST_F_PID].u.u32);
+			       stat_fields[field].name, stats[ST_F_PID].u.u32);
 		if (old_len == out->data)
 			goto err;
 
@@ -3324,7 +3323,7 @@
 		if (!field_format(info, field))
 			continue;
 
-		if (!chunk_appendf(out, "%s: ", info_field_names[field]))
+		if (!chunk_appendf(out, "%s: ", info_fields[field].name))
 			return 0;
 		if (!stats_emit_raw_data_field(out, &info[field]))
 			return 0;
@@ -3344,7 +3343,7 @@
 		if (!field_format(info, field))
 			continue;
 
-		if (!chunk_appendf(out, "%d.%s.%u:", field, info_field_names[field], info[INF_PROCESS_NUM].u.u32))
+		if (!chunk_appendf(out, "%d.%s.%u:", field, info_fields[field].name, info[INF_PROCESS_NUM].u.u32))
 			return 0;
 		if (!stats_emit_field_tags(out, &info[field], ':'))
 			return 0;
@@ -3864,8 +3863,8 @@
 /* register cli keywords */
 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 [json|typed]", cli_parse_show_info, cli_io_handler_dump_info, NULL },
-	{ { "show", "stat",  NULL }, "show stat      : report counters for each proxy and server [json|typed]", cli_parse_show_stat, cli_io_handler_dump_stat, 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", "schema",  "json", NULL }, "show schema json : report schema used for stats", NULL, cli_io_handler_dump_json_schema, NULL },
 	{{},}
 }};
