blob: ea579f59ad73f85cb0af9e3d173cf05d5e668e33 [file] [log] [blame]
Willy Tarreau91861262007-10-17 17:06:05 +02001/*
2 include/proto/dumpstats.h
3 This file contains definitions of some primitives to dedicated to
4 statistics output.
5
Willy Tarreau9a42c0d2009-09-22 19:31:03 +02006 Copyright (C) 2000-2009 Willy Tarreau - w@1wt.eu
Willy Tarreaub1356cf2008-12-07 16:06:43 +01007
Willy Tarreau91861262007-10-17 17:06:05 +02008 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation, version 2.1
11 exclusively.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21*/
22
23#ifndef _PROTO_DUMPSTATS_H
24#define _PROTO_DUMPSTATS_H
25
26#include <common/config.h>
27#include <types/buffers.h>
28#include <types/session.h>
29
Willy Tarreau39f7e6d2008-03-17 21:38:24 +010030/* Flags for session->data_ctx.stats.flags */
31#define STAT_FMT_CSV 0x00000001 /* dump the stats in CSV format instead of HTML */
32#define STAT_SHOW_STAT 0x00000002 /* dump the stats part */
33#define STAT_SHOW_INFO 0x00000004 /* dump the info part */
34#define STAT_HIDE_DOWN 0x00000008 /* hide 'down' servers in the stats page */
35#define STAT_NO_REFRESH 0x00000010 /* do not automatically refresh the stats page */
36#define STAT_BOUND 0x00800000 /* bound statistics to selected proxies/types/services */
Willy Tarreau55bb8452007-10-17 18:44:57 +020037
Krzysztof Piotr Oledzki2c6962c2008-03-02 02:42:14 +010038#define STATS_TYPE_FE 0
39#define STATS_TYPE_BE 1
40#define STATS_TYPE_SV 2
Krzysztof Piotr Oledzkiaeebf9b2009-10-04 15:43:17 +020041#define STATS_TYPE_SO 3
Krzysztof Piotr Oledzki2c6962c2008-03-02 02:42:14 +010042
Willy Tarreauf5a885f2009-10-04 14:22:18 +020043/* unix stats socket states */
44#define STAT_CLI_INIT 0 /* initial state */
45#define STAT_CLI_END 1 /* final state, let's close */
46#define STAT_CLI_GETREQ 2 /* wait for a request */
47#define STAT_CLI_OUTPUT 3 /* all states after this one are responses */
48#define STAT_CLI_PROMPT 3 /* display the prompt (first output, same code) */
49
50#define STAT_CLI_O_HELP 4 /* display help */
51#define STAT_CLI_O_INFO 5 /* dump info/stats */
52#define STAT_CLI_O_SESS 6 /* dump sessions */
53#define STAT_CLI_O_ERR 7 /* dump errors */
54
Willy Tarreaub1356cf2008-12-07 16:06:43 +010055
Willy Tarreau9a42c0d2009-09-22 19:31:03 +020056int stats_sock_parse_request(struct stream_interface *si, char *line);
57void stats_io_handler(struct stream_interface *si);
Willy Tarreau24955a12009-10-04 11:54:04 +020058int stats_dump_raw_to_buffer(struct session *s, struct buffer *rep);
Willy Tarreau0a464892008-12-07 18:30:00 +010059int stats_dump_http(struct session *s, struct buffer *rep, struct uri_auth *uri);
Willy Tarreau39f7e6d2008-03-17 21:38:24 +010060int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri);
Willy Tarreau7e72a8f2009-10-03 23:55:14 +020061int stats_dump_sess_to_buffer(struct session *s, struct buffer *rep);
Willy Tarreau61b34732009-10-03 23:49:35 +020062int stats_dump_errors_to_buffer(struct session *s, struct buffer *rep);
Willy Tarreaub0c9bc42009-10-04 15:56:38 +020063void http_stats_io_handler(struct stream_interface *si);
Willy Tarreau91861262007-10-17 17:06:05 +020064
65
66#endif /* _PROTO_DUMPSTATS_H */
67
68/*
69 * Local variables:
70 * c-indent-level: 8
71 * c-basic-offset: 8
72 * End:
73 */