mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-12 22:44:32 +00:00
b24281b0ff
I/O handlers are still delicate to manipulate. They have no type, they're just raw functions which have no knowledge of themselves. Let's have them declared as applets once for all. That way we can have multiple applets share the same handler functions and we can store their names there. When we later need to add more parameters (eg: usage stats), we'll be able to do so in the applets themselves. The CLI functions has been prefixed with "cli" instead of "stats" as it's clearly what is going on there. The applet descriptor in the stream interface should get all the applet specific data (st0, ...) but this will be done in the next patch so that we don't pollute this one too much.
86 lines
3.5 KiB
C
86 lines
3.5 KiB
C
/*
|
|
* 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
|
|
*
|
|
* 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_DUMPSTATS_H
|
|
#define _PROTO_DUMPSTATS_H
|
|
|
|
#include <common/config.h>
|
|
#include <types/buffers.h>
|
|
#include <types/session.h>
|
|
|
|
/* Flags for session->data_ctx.stats.flags */
|
|
#define STAT_FMT_CSV 0x00000001 /* dump the stats in CSV format instead of HTML */
|
|
#define STAT_SHOW_STAT 0x00000002 /* dump the stats part */
|
|
#define STAT_SHOW_INFO 0x00000004 /* dump the info part */
|
|
#define STAT_HIDE_DOWN 0x00000008 /* hide 'down' servers in the stats page */
|
|
#define STAT_NO_REFRESH 0x00000010 /* do not automatically refresh the stats page */
|
|
#define STAT_ADMIN 0x00000020 /* indicate a stats admin level */
|
|
#define STAT_BOUND 0x00800000 /* bound statistics to selected proxies/types/services */
|
|
|
|
#define STATS_TYPE_FE 0
|
|
#define STATS_TYPE_BE 1
|
|
#define STATS_TYPE_SV 2
|
|
#define STATS_TYPE_SO 3
|
|
|
|
/* unix stats socket states */
|
|
#define STAT_CLI_INIT 0 /* initial state */
|
|
#define STAT_CLI_END 1 /* final state, let's close */
|
|
#define STAT_CLI_GETREQ 2 /* wait for a request */
|
|
#define STAT_CLI_OUTPUT 3 /* all states after this one are responses */
|
|
#define STAT_CLI_PROMPT 3 /* display the prompt (first output, same code) */
|
|
#define STAT_CLI_PRINT 4 /* display message in cli->msg */
|
|
|
|
#define STAT_CLI_O_INFO 5 /* dump info/stats */
|
|
#define STAT_CLI_O_SESS 6 /* dump sessions */
|
|
#define STAT_CLI_O_ERR 7 /* dump errors */
|
|
#define STAT_CLI_O_TAB 8 /* dump tables */
|
|
|
|
/* status codes (strictly 4 chars) used in the URL to display a message */
|
|
#define STAT_STATUS_UNKN "UNKN" /* an unknown error occured, shouldn't happen */
|
|
#define STAT_STATUS_DONE "DONE" /* the action is successful */
|
|
#define STAT_STATUS_NONE "NONE" /* nothing happened (no action chosen or servers state didn't change) */
|
|
#define STAT_STATUS_EXCD "EXCD" /* an error occured becayse the buffer couldn't store all data */
|
|
#define STAT_STATUS_DENY "DENY" /* action denied */
|
|
|
|
extern struct si_applet http_stats_applet;
|
|
extern struct si_applet cli_applet;
|
|
|
|
int stats_accept(struct session *s);
|
|
int stats_sock_parse_request(struct stream_interface *si, char *line);
|
|
void stats_io_handler(struct stream_interface *si);
|
|
int stats_dump_raw_to_buffer(struct session *s, struct buffer *rep);
|
|
int stats_dump_http(struct session *s, struct buffer *rep, struct uri_auth *uri);
|
|
int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri);
|
|
int stats_dump_sess_to_buffer(struct session *s, struct buffer *rep);
|
|
int stats_dump_table_to_buffer(struct session *s, struct buffer *rep);
|
|
int stats_dump_errors_to_buffer(struct session *s, struct buffer *rep);
|
|
|
|
|
|
#endif /* _PROTO_DUMPSTATS_H */
|
|
|
|
/*
|
|
* Local variables:
|
|
* c-indent-level: 8
|
|
* c-basic-offset: 8
|
|
* End:
|
|
*/
|