blob: 8326429a65f57afc18eae712325c4430f6cf3ccc [file] [log] [blame]
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +02001/*
Willy Tarreau7d0aaf32011-03-10 23:25:56 +01002 * include/types/counters.h
3 * This file contains structure declarations for statistics counters.
4 *
5 * Copyright 2008-2009 Krzysztof Piotr Oledzki <ole@ans.pl>
6 * Copyright 2011 Willy Tarreau <w@1wt.eu>
7 *
8 * 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 */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020022
23#ifndef _TYPES_COUNTERS_H
24#define _TYPES_COUNTERS_H
25
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010026/* maybe later we might thing about having a different struct for FE and BE */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020027struct pxcounters {
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010028 unsigned int conn_max; /* max # of active sessions */
29 long long cum_conn; /* cumulated number of received connections */
30 long long cum_sess; /* cumulated number of accepted connections */
31 long long cum_lbconn; /* cumulated number of sessions processed by load balancing (BE only) */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020032
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010033 unsigned int cps_max; /* maximum of new connections received per second */
34 unsigned int sps_max; /* maximum of new connections accepted per second (sessions) */
35 unsigned int nbpend_max; /* max number of pending connections with no server assigned yet (BE only) */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020036
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010037 long long bytes_in; /* number of bytes transferred from the client to the server */
38 long long bytes_out; /* number of bytes transferred from the server to the client */
Willy Tarreauac68c5d2009-10-04 23:12:44 +020039
Willy Tarreau55058a72012-11-21 08:27:21 +010040 long long comp_in; /* input bytes fed to the compressor */
41 long long comp_out; /* output bytes emitted by the compressor */
42 long long comp_byp; /* input bytes that bypassed the compressor (cpu/ram/bw limitation) */
43
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010044 long long denied_req; /* blocked requests/responses because of security concerns */
45 long long denied_resp; /* blocked requests/responses because of security concerns */
46 long long failed_req; /* failed requests (eg: invalid or timeout) */
47 long long denied_conn; /* denied connection requests (tcp-req rules) */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020048
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010049 long long failed_conns; /* failed connect() attempts (BE only) */
50 long long failed_resp; /* failed responses (BE only) */
51 long long cli_aborts; /* aborted responses during DATA phase caused by the client */
52 long long srv_aborts; /* aborted responses during DATA phase caused by the server */
53 long long retries; /* retried and redispatched connections (BE only) */
54 long long redispatches; /* retried and redispatched connections (BE only) */
Willy Tarreaueabea072011-09-10 23:29:44 +020055 long long intercepted_req; /* number of monitoring or stats requests intercepted by the frontend */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020056
Krzysztof Piotr Oledzki5fb18822009-10-13 21:14:09 +020057 union {
58 struct {
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010059 long long cum_req; /* cumulated number of processed HTTP requests */
60 unsigned int rps_max; /* maximum of new HTTP requests second observed */
61 long long rsp[6]; /* http response codes */
Krzysztof Piotr Oledzki5fb18822009-10-13 21:14:09 +020062 } http;
Willy Tarreau7d0aaf32011-03-10 23:25:56 +010063 } p; /* protocol-specific stats */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020064};
65
66struct licounters {
67 unsigned int conn_max; /* max # of active listener sessions */
68
Willy Tarreaub36b4242010-06-04 20:59:39 +020069 long long cum_conn; /* cumulated number of received connections */
70 long long cum_sess; /* cumulated number of accepted sessions */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020071
72 long long bytes_in; /* number of bytes transferred from the client to the server */
73 long long bytes_out; /* number of bytes transferred from the server to the client */
74
75 long long denied_req, denied_resp; /* blocked requests/responses because of security concerns */
76 long long failed_req; /* failed requests (eg: invalid or timeout) */
Willy Tarreau2799e982010-06-05 15:43:21 +020077 long long denied_conn; /* denied connection requests (tcp-req rules) */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020078};
79
80struct srvcounters {
Willy Tarreauac68c5d2009-10-04 23:12:44 +020081 unsigned int cur_sess_max; /* max number of currently active sessions */
82 unsigned int nbpend_max; /* max number of pending connections reached */
83 unsigned int sps_max; /* maximum of new sessions per second seen on this server */
84
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020085 long long cum_sess; /* cumulated number of sessions really sent to this server */
86 long long cum_lbconn; /* cumulated number of sessions directed by load balancing */
87
88 long long bytes_in; /* number of bytes transferred from the client to the server */
89 long long bytes_out; /* number of bytes transferred from the server to the client */
90
91 long long failed_conns, failed_resp; /* failed connect() and responses */
Willy Tarreauae526782010-03-04 20:34:23 +010092 long long cli_aborts, srv_aborts; /* aborted responses during DATA phase due to client or server */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +020093 long long retries, redispatches; /* retried and redispatched connections */
94 long long failed_secu; /* blocked responses because of security concerns */
95
Krzysztof Piotr Oledzki5fb18822009-10-13 21:14:09 +020096 union {
97 struct {
Willy Tarreau24657792010-02-26 10:30:28 +010098 long long rsp[6]; /* http response codes */
Krzysztof Piotr Oledzki5fb18822009-10-13 21:14:09 +020099 } http;
100 } p;
101
Krzysztof Piotr Oledzki97f07b82009-12-15 22:31:24 +0100102 long long failed_checks, failed_hana; /* failed health checks and health analyses */
103 long long down_trans; /* up->down transitions */
Krzysztof Piotr Oledzki8d06b8b2009-10-04 14:32:53 +0200104};
105
106#endif /* _TYPES_COUNTERS_H */
107
108/*
109 * Local variables:
110 * c-indent-level: 8
111 * c-basic-offset: 8
112 * End:
113 */