diff --git a/include/proto/cli.h b/include/proto/cli.h new file mode 100644 index 000000000..25c2ee022 --- /dev/null +++ b/include/proto/cli.h @@ -0,0 +1,31 @@ +/* + * include/proto/cli.h + * This file contains definitions of some primitives to dedicated to + * statistics output. + * + * Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, version 2.1 + * exclusively. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _PROTO_CLI_H +#define _PROTO_CLI_H + + +struct cli_kw* cli_find_kw(char **args); +void cli_register_kw(struct cli_kw_list *kw_list); + +#endif /* _PROTO_CLI_H */ + diff --git a/include/proto/stats.h b/include/proto/stats.h new file mode 100644 index 000000000..dfd8bff2f --- /dev/null +++ b/include/proto/stats.h @@ -0,0 +1,116 @@ +/* + * include/proto/stats.h + * This file contains definitions of some primitives to dedicated to + * statistics output. + * + * Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, version 2.1 + * exclusively. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _PROTO_STATS_H +#define _PROTO_STATS_H + +#include +#include +#include + + +static inline enum field_format field_format(const struct field *f, int e) +{ + return f[e].type & FF_MASK; +} + +static inline enum field_origin field_origin(const struct field *f, int e) +{ + return f[e].type & FO_MASK; +} + +static inline enum field_scope field_scope(const struct field *f, int e) +{ + return f[e].type & FS_MASK; +} + +static inline enum field_nature field_nature(const struct field *f, int e) +{ + return f[e].type & FN_MASK; +} + +static inline const char *field_str(const struct field *f, int e) +{ + return (field_format(f, e) == FF_STR) ? f[e].u.str : ""; +} + +static inline struct field mkf_s32(uint32_t type, int32_t value) +{ + struct field f = { .type = FF_S32 | type, .u.s32 = value }; + return f; +} + +static inline struct field mkf_u32(uint32_t type, uint32_t value) +{ + struct field f = { .type = FF_U32 | type, .u.u32 = value }; + return f; +} + +static inline struct field mkf_s64(uint32_t type, int64_t value) +{ + struct field f = { .type = FF_S64 | type, .u.s64 = value }; + return f; +} + +static inline struct field mkf_u64(uint32_t type, uint64_t value) +{ + struct field f = { .type = FF_U64 | type, .u.u64 = value }; + return f; +} + +static inline struct field mkf_str(uint32_t type, const char *value) +{ + struct field f = { .type = FF_STR | type, .u.str = 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[]; + +int stats_fill_info(struct field *info, int len); +int stats_fill_fe_stats(struct proxy *px, struct field *stats, int len); +int stats_fill_li_stats(struct proxy *px, struct listener *l, int flags, + struct field *stats, int len); +int stats_fill_sv_stats(struct proxy *px, struct server *sv, int flags, + struct field *stats, int len); +int stats_fill_be_stats(struct proxy *px, int flags, struct field *stats, int len); + +extern struct applet http_stats_applet; + +void stats_io_handler(struct stream_interface *si); +int stats_emit_raw_data_field(struct chunk *out, const struct field *f); +int stats_emit_typed_data_field(struct chunk *out, const struct field *f); +int stats_emit_field_tags(struct chunk *out, const struct field *f, char delim); +int stats_dump_stat_to_buffer(struct stream_interface *si, struct uri_auth *uri); + +#endif /* _PROTO_STATS_H */ + +/* + * Local variables: + * c-indent-level: 8 + * c-basic-offset: 8 + * End: + */ diff --git a/include/types/cli.h b/include/types/cli.h new file mode 100644 index 000000000..35c2c67cb --- /dev/null +++ b/include/types/cli.h @@ -0,0 +1,134 @@ +/* + * include/types/cli.h + * This file provides structures and types for CLI. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, version 2.1 + * exclusively. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _TYPES_CLI_H +#define _TYPES_CLI_H + +#include +#include + +struct cli_kw { + const char *str_kw[5]; /* keywords ended by NULL, limited to 5 + separated keywords combination */ + const char *usage; /* usage message */ + int (*parse)(char **args, struct appctx *appctx, void *private); + int (*io_handler)(struct appctx *appctx); + void (*io_release)(struct appctx *appctx); + void *private; +}; + +struct cli_kw_list { + struct list list; + struct cli_kw kw[VAR_ARRAY]; +}; + +/* 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 socket states */ +enum { + STAT_CLI_INIT = 0, /* initial state, must leave to zero ! */ + STAT_CLI_END, /* final state, let's close */ + STAT_CLI_GETREQ, /* wait for a request */ + STAT_CLI_OUTPUT, /* all states after this one are responses */ + STAT_CLI_PROMPT, /* display the prompt (first output, same code) */ + STAT_CLI_PRINT, /* display message in cli->msg */ + STAT_CLI_PRINT_FREE, /* display message in cli->msg. After the display, free the pointer */ + STAT_CLI_O_INFO, /* dump info */ + STAT_CLI_O_SESS, /* dump streams */ + STAT_CLI_O_ERR, /* dump errors */ + STAT_CLI_O_TAB, /* dump tables */ + STAT_CLI_O_CLR, /* clear tables */ + STAT_CLI_O_SET, /* set entries in tables */ + STAT_CLI_O_STAT, /* dump stats */ + STAT_CLI_O_PATS, /* list all pattern reference available */ + STAT_CLI_O_PAT, /* list all entries of a pattern */ + STAT_CLI_O_MLOOK, /* lookup a map entry */ + STAT_CLI_O_POOLS, /* dump memory pools */ + STAT_CLI_O_TLSK, /* list all TLS ticket keys references */ + STAT_CLI_O_TLSK_ENT, /* list all TLS ticket keys entries for a reference */ + STAT_CLI_O_RESOLVERS,/* dump a resolver's section nameservers counters */ + STAT_CLI_O_SERVERS_STATE, /* dump server state and changing information */ + STAT_CLI_O_BACKEND, /* dump backend list */ + STAT_CLI_O_ENV, /* dump environment */ + STAT_CLI_O_CUSTOM, /* custom callback pointer */ +}; + + +#endif /* _TYPES_CLI_H */ diff --git a/include/proto/dumpstats.h b/include/types/stats.h similarity index 61% rename from include/proto/dumpstats.h rename to include/types/stats.h index 6e0adfaee..dd52bba10 100644 --- a/include/proto/dumpstats.h +++ b/include/types/stats.h @@ -1,9 +1,6 @@ /* - * include/proto/dumpstats.h - * This file contains definitions of some primitives to dedicated to - * statistics output. - * - * Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu + * include/types/stats.h + * This file provides structures and types for stats. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,12 +17,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef _PROTO_DUMPSTATS_H -#define _PROTO_DUMPSTATS_H - -#include -#include -#include +#ifndef _TYPES_STATS_H +#define _TYPES_STATS_H /* Flags for applet.ctx.stats.flags */ #define STAT_FMT_HTML 0x00000001 /* dump the stats in HTML format */ @@ -55,160 +48,60 @@ enum { #define STAT_SCOPE_INPUT_NAME "scope" /* pattern form scope name 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, +/* Actions available for the stats admin forms */ +enum { + ST_ADM_ACTION_NONE = 0, - /* must always be the last one */ - INF_TOTAL_FIELDS + /* enable/disable health checks */ + ST_ADM_ACTION_DHLTH, + ST_ADM_ACTION_EHLTH, + + /* force health check status */ + ST_ADM_ACTION_HRUNN, + ST_ADM_ACTION_HNOLB, + ST_ADM_ACTION_HDOWN, + + /* enable/disable agent checks */ + ST_ADM_ACTION_DAGENT, + ST_ADM_ACTION_EAGENT, + + /* force agent check status */ + ST_ADM_ACTION_ARUNN, + ST_ADM_ACTION_ADOWN, + + /* set admin state */ + ST_ADM_ACTION_READY, + ST_ADM_ACTION_DRAIN, + ST_ADM_ACTION_MAINT, + ST_ADM_ACTION_SHUTDOWN, + /* these are the ancient actions, still available for compatibility */ + ST_ADM_ACTION_DISABLE, + ST_ADM_ACTION_ENABLE, + ST_ADM_ACTION_STOP, + ST_ADM_ACTION_START, }; -/* 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, - ST_F_DCON, - ST_F_DSES, - /* must always be the last one */ - ST_F_TOTAL_FIELDS +/* data transmission states for the stats responses */ +enum { + STAT_ST_INIT = 0, + STAT_ST_HEAD, + STAT_ST_INFO, + STAT_ST_LIST, + STAT_ST_END, + STAT_ST_FIN, +}; + +/* data transmission states for the stats responses inside a proxy */ +enum { + STAT_PX_ST_INIT = 0, + STAT_PX_ST_TH, + STAT_PX_ST_FE, + STAT_PX_ST_LI, + STAT_PX_ST_SV, + STAT_PX_ST_BE, + STAT_PX_ST_END, + STAT_PX_ST_FIN, }; /* This level of detail is needed to let the stats consumer know how to @@ -331,195 +224,99 @@ struct field { } u; }; -static inline enum field_format field_format(const struct field *f, int e) -{ - return f[e].type & FF_MASK; -} - -static inline enum field_origin field_origin(const struct field *f, int e) -{ - return f[e].type & FO_MASK; -} - -static inline enum field_scope field_scope(const struct field *f, int e) -{ - return f[e].type & FS_MASK; -} - -static inline enum field_nature field_nature(const struct field *f, int e) -{ - return f[e].type & FN_MASK; -} - -static inline const char *field_str(const struct field *f, int e) -{ - return (field_format(f, e) == FF_STR) ? f[e].u.str : ""; -} - -static inline struct field mkf_s32(uint32_t type, int32_t value) -{ - struct field f = { .type = FF_S32 | type, .u.s32 = value }; - return f; -} - -static inline struct field mkf_u32(uint32_t type, uint32_t value) -{ - struct field f = { .type = FF_U32 | type, .u.u32 = value }; - return f; -} - -static inline struct field mkf_s64(uint32_t type, int64_t value) -{ - struct field f = { .type = FF_S64 | type, .u.s64 = value }; - return f; -} - -static inline struct field mkf_u64(uint32_t type, uint64_t value) -{ - struct field f = { .type = FF_U64 | type, .u.u64 = value }; - return f; -} - -static inline struct field mkf_str(uint32_t type, const char *value) -{ - struct field f = { .type = FF_STR | type, .u.str = 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" +/* 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. */ -extern const char *info_field_names[]; -extern const char *stat_field_names[]; +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, + ST_F_DCON, + ST_F_DSES, -int stats_fill_info(struct field *info, int len); -int stats_fill_fe_stats(struct proxy *px, struct field *stats, int len); -int stats_fill_li_stats(struct proxy *px, struct listener *l, int flags, - struct field *stats, int len); -int stats_fill_sv_stats(struct proxy *px, struct server *sv, int flags, - struct field *stats, int len); -int stats_fill_be_stats(struct proxy *px, int flags, struct field *stats, int len); - -extern struct applet http_stats_applet; - -void stats_io_handler(struct stream_interface *si); -int stats_emit_raw_data_field(struct chunk *out, const struct field *f); -int stats_emit_typed_data_field(struct chunk *out, const struct field *f); -int stats_emit_field_tags(struct chunk *out, const struct field *f, char delim); - - -struct cli_kw { - const char *str_kw[5]; /* keywords ended by NULL, limited to 5 - separated keywords combination */ - const char *usage; /* usage message */ - int (*parse)(char **args, struct appctx *appctx, void *private); - int (*io_handler)(struct appctx *appctx); - void (*io_release)(struct appctx *appctx); - void *private; -}; - -struct cli_kw_list { - struct list list; - struct cli_kw kw[VAR_ARRAY]; -}; - -struct cli_kw* cli_find_kw(char **args); -void cli_register_kw(struct cli_kw_list *kw_list); - -/* stats socket states */ -enum { - STAT_CLI_INIT = 0, /* initial state, must leave to zero ! */ - STAT_CLI_END, /* final state, let's close */ - STAT_CLI_GETREQ, /* wait for a request */ - STAT_CLI_OUTPUT, /* all states after this one are responses */ - STAT_CLI_PROMPT, /* display the prompt (first output, same code) */ - STAT_CLI_PRINT, /* display message in cli->msg */ - STAT_CLI_PRINT_FREE, /* display message in cli->msg. After the display, free the pointer */ - STAT_CLI_O_INFO, /* dump info */ - STAT_CLI_O_SESS, /* dump streams */ - STAT_CLI_O_ERR, /* dump errors */ - STAT_CLI_O_TAB, /* dump tables */ - STAT_CLI_O_CLR, /* clear tables */ - STAT_CLI_O_SET, /* set entries in tables */ - STAT_CLI_O_STAT, /* dump stats */ - STAT_CLI_O_PATS, /* list all pattern reference available */ - STAT_CLI_O_PAT, /* list all entries of a pattern */ - STAT_CLI_O_MLOOK, /* lookup a map entry */ - STAT_CLI_O_POOLS, /* dump memory pools */ - STAT_CLI_O_TLSK, /* list all TLS ticket keys references */ - STAT_CLI_O_TLSK_ENT, /* list all TLS ticket keys entries for a reference */ - STAT_CLI_O_RESOLVERS,/* dump a resolver's section nameservers counters */ - STAT_CLI_O_SERVERS_STATE, /* dump server state and changing information */ - STAT_CLI_O_BACKEND, /* dump backend list */ - STAT_CLI_O_ENV, /* dump environment */ - STAT_CLI_O_CUSTOM, /* custom callback pointer */ -}; - -/* Actions available for the stats admin forms */ -enum { - ST_ADM_ACTION_NONE = 0, - - /* enable/disable health checks */ - ST_ADM_ACTION_DHLTH, - ST_ADM_ACTION_EHLTH, - - /* force health check status */ - ST_ADM_ACTION_HRUNN, - ST_ADM_ACTION_HNOLB, - ST_ADM_ACTION_HDOWN, - - /* enable/disable agent checks */ - ST_ADM_ACTION_DAGENT, - ST_ADM_ACTION_EAGENT, - - /* force agent check status */ - ST_ADM_ACTION_ARUNN, - ST_ADM_ACTION_ADOWN, - - /* set admin state */ - ST_ADM_ACTION_READY, - ST_ADM_ACTION_DRAIN, - ST_ADM_ACTION_MAINT, - ST_ADM_ACTION_SHUTDOWN, - /* these are the ancient actions, still available for compatibility */ - ST_ADM_ACTION_DISABLE, - ST_ADM_ACTION_ENABLE, - ST_ADM_ACTION_STOP, - ST_ADM_ACTION_START, + /* must always be the last one */ + ST_F_TOTAL_FIELDS }; -/* data transmission states for the stats responses */ -enum { - STAT_ST_INIT = 0, - STAT_ST_HEAD, - STAT_ST_INFO, - STAT_ST_LIST, - STAT_ST_END, - STAT_ST_FIN, -}; - -/* data transmission states for the stats responses inside a proxy */ -enum { - STAT_PX_ST_INIT = 0, - STAT_PX_ST_TH, - STAT_PX_ST_FE, - STAT_PX_ST_LI, - STAT_PX_ST_SV, - STAT_PX_ST_BE, - STAT_PX_ST_END, - STAT_PX_ST_FIN, -}; - - -int stats_dump_stat_to_buffer(struct stream_interface *si, struct uri_auth *uri); - -#endif /* _PROTO_DUMPSTATS_H */ - -/* - * Local variables: - * c-indent-level: 8 - * c-basic-offset: 8 - * End: - */ +#endif /* _TYPES_STATS_H */ diff --git a/src/cfgparse.c b/src/cfgparse.c index 7b05727a7..b0e636ce8 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -58,7 +59,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/checks.c b/src/checks.c index a9b89d090..61d376852 100644 --- a/src/checks.c +++ b/src/checks.c @@ -39,6 +39,7 @@ #include #include #include +#include #ifdef USE_OPENSSL #include @@ -47,7 +48,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/cli.c b/src/cli.c index d7de7cb06..e15fc8af7 100644 --- a/src/cli.c +++ b/src/cli.c @@ -38,14 +38,16 @@ #include #include +#include #include #include +#include #include #include #include #include -#include +#include #include #include #include diff --git a/src/hlua.c b/src/hlua.c index 559448404..5595446c0 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -25,14 +25,17 @@ #include +#include #include #include +#include #include #include #include +#include #include -#include +#include #include #include #include diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c index a21065dc3..3af4f6e20 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -21,13 +21,15 @@ #include #include +#include #include #include +#include -#include #include #include #include +#include /* Contains the class reference of the concat object. */ static int class_concat_ref; diff --git a/src/proto_http.c b/src/proto_http.c index 650e02a29..181dfc2bf 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -50,7 +51,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/stats.c b/src/stats.c index 713629e61..aef6299f7 100644 --- a/src/stats.c +++ b/src/stats.c @@ -40,12 +40,13 @@ #include #include #include +#include #include #include #include #include -#include +#include #include #include #include diff --git a/src/stream.c b/src/stream.c index 288d36def..346e7b61b 100644 --- a/src/stream.c +++ b/src/stream.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -32,7 +33,7 @@ #include #include #include -#include +#include #include #include #include