1 /*
2  * include/haproxy/counters-t.h
3  * This file contains structure declarations for statistics counters.
4  *
5  * Copyright 2008-2009 Krzysztof Piotr Oledzki <ole@ans.pl>
6  * Copyright 2011-2014 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  */
22 
23 #ifndef _HAPROXY_COUNTERS_T_H
24 #define _HAPROXY_COUNTERS_T_H
25 
26 /* counters used by listeners and frontends */
27 struct fe_counters {
28 	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 
32 	unsigned int cps_max;                   /* maximum of new connections received per second */
33 	unsigned int sps_max;                   /* maximum of new connections accepted per second (sessions) */
34 
35 	long long bytes_in;                     /* number of bytes transferred from the client to the server */
36 	long long bytes_out;                    /* number of bytes transferred from the server to the client */
37 
38 	long long comp_in;                      /* input bytes fed to the compressor */
39 	long long comp_out;                     /* output bytes emitted by the compressor */
40 	long long comp_byp;                     /* input bytes that bypassed the compressor (cpu/ram/bw limitation) */
41 
42 	long long denied_req;                   /* blocked requests because of security concerns */
43 	long long denied_resp;                  /* blocked responses because of security concerns */
44 	long long failed_req;                   /* failed requests (eg: invalid or timeout) */
45 	long long denied_conn;                  /* denied connection requests (tcp-req-conn rules) */
46 	long long denied_sess;                  /* denied session requests (tcp-req-sess rules) */
47 	long long failed_rewrites;              /* failed rewrites (warning) */
48 	long long internal_errors;              /* internal processing errors */
49 
50 	long long cli_aborts;                   /* aborted responses during DATA phase caused by the client */
51 	long long srv_aborts;                   /* aborted responses during DATA phase caused by the server */
52 	long long intercepted_req;              /* number of monitoring or stats requests intercepted by the frontend */
53 
54 	union {
55 		struct {
56 			long long cum_req;      /* cumulated number of processed HTTP requests */
57 			long long comp_rsp;     /* number of compressed responses */
58 			unsigned int rps_max;   /* maximum of new HTTP requests second observed */
59 			long long rsp[6];       /* http response codes */
60 			long long cache_lookups;/* cache lookups */
61 			long long cache_hits;   /* cache hits */
62 		} http;
63 	} p;                                    /* protocol-specific stats */
64 };
65 
66 /* counters used by servers and backends */
67 struct be_counters {
68 	unsigned int conn_max;                  /* max # of active sessions */
69 	long long    cum_conn;                  /* cumulated number of received connections */
70 	long long    cum_sess;                  /* cumulated number of accepted connections */
71 	long long  cum_lbconn;                  /* cumulated number of sessions processed by load balancing (BE only) */
72 	unsigned long last_sess;                /* last session time */
73 
74 	unsigned int cps_max;                   /* maximum of new connections received per second */
75 	unsigned int sps_max;                   /* maximum of new connections accepted per second (sessions) */
76 	unsigned int nbpend_max;                /* max number of pending connections with no server assigned yet (BE only) */
77 	unsigned int cur_sess_max;		/* max number of currently active sessions */
78 
79 	long long bytes_in;                     /* number of bytes transferred from the client to the server */
80 	long long bytes_out;                    /* number of bytes transferred from the server to the client */
81 
82 	long long comp_in;                      /* input bytes fed to the compressor */
83 	long long comp_out;                     /* output bytes emitted by the compressor */
84 	long long comp_byp;                     /* input bytes that bypassed the compressor (cpu/ram/bw limitation) */
85 
86 	long long denied_req;                   /* blocked requests because of security concerns */
87 	long long denied_resp;                  /* blocked responses because of security concerns */
88 
89 	long long connect;                      /* number of connection establishment attempts */
90 	long long reuse;                        /* number of connection reuses */
91 	long long failed_conns;                 /* failed connect() attempts (BE only) */
92 	long long failed_resp;                  /* failed responses (BE only) */
93 	long long cli_aborts;                   /* aborted responses during DATA phase caused by the client */
94 	long long srv_aborts;                   /* aborted responses during DATA phase caused by the server */
95 	long long retries;                      /* retried and redispatched connections (BE only) */
96 	long long redispatches;                 /* retried and redispatched connections (BE only) */
97 	long long failed_rewrites;              /* failed rewrites (warning) */
98 	long long internal_errors;              /* internal processing errors */
99 
100 	long long failed_checks, failed_hana;	/* failed health checks and health analyses for servers */
101 	long long down_trans;			/* up->down transitions */
102 
103 	unsigned int q_time, c_time, d_time, t_time; /* sums of conn_time, queue_time, data_time, total_time */
104 	unsigned int qtime_max, ctime_max, dtime_max, ttime_max; /* maximum of conn_time, queue_time, data_time, total_time observed */
105 
106 	union {
107 		struct {
108 			long long cum_req;      /* cumulated number of processed HTTP requests */
109 			long long comp_rsp;     /* number of compressed responses */
110 			unsigned int rps_max;   /* maximum of new HTTP requests second observed */
111 			long long rsp[6];       /* http response codes */
112 			long long cache_lookups;/* cache lookups */
113 			long long cache_hits;   /* cache hits */
114 		} http;
115 	} p;                                    /* protocol-specific stats */
116 };
117 
118 #endif /* _HAPROXY_COUNTERS_T_H */
119 
120 /*
121  * Local variables:
122  *  c-indent-level: 8
123  *  c-basic-offset: 8
124  * End:
125  */
126