]> git.ipfire.org Git - thirdparty/squid.git/blame - src/mgr/CountersAction.h
Boilerplate: update copyright blurbs on Squid helpers
[thirdparty/squid.git] / src / mgr / CountersAction.h
CommitLineData
8822ebee 1/*
8822ebee
AR
2 * DEBUG: section 16 Cache Manager API
3 *
4 */
5
6#ifndef SQUID_MGR_COUNTERS_ACTION_H
7#define SQUID_MGR_COUNTERS_ACTION_H
8
9#include "mgr/Action.h"
8822ebee 10
8822ebee
AR
11namespace Mgr
12{
13
14/// store traffic and resource counters
15class CountersActionData
16{
17public:
18 CountersActionData();
19 CountersActionData& operator += (const CountersActionData& stats);
20
21public:
22 struct timeval sample_time;
23 double client_http_requests;
24 double client_http_hits;
25 double client_http_errors;
26 double client_http_kbytes_in;
27 double client_http_kbytes_out;
28 double client_http_hit_kbytes_out;
29 double server_all_requests;
30 double server_all_errors;
31 double server_all_kbytes_in;
32 double server_all_kbytes_out;
33 double server_http_requests;
34 double server_http_errors;
35 double server_http_kbytes_in;
36 double server_http_kbytes_out;
37 double server_ftp_requests;
38 double server_ftp_errors;
39 double server_ftp_kbytes_in;
40 double server_ftp_kbytes_out;
41 double server_other_requests;
42 double server_other_errors;
43 double server_other_kbytes_in;
44 double server_other_kbytes_out;
45 double icp_pkts_sent;
46 double icp_pkts_recv;
47 double icp_queries_sent;
48 double icp_replies_sent;
49 double icp_queries_recv;
50 double icp_replies_recv;
51 double icp_replies_queued;
52 double icp_query_timeouts;
53 double icp_kbytes_sent;
54 double icp_kbytes_recv;
55 double icp_q_kbytes_sent;
56 double icp_r_kbytes_sent;
57 double icp_q_kbytes_recv;
58 double icp_r_kbytes_recv;
59#if USE_CACHE_DIGESTS
60 double icp_times_used;
61 double cd_times_used;
62 double cd_msgs_sent;
63 double cd_msgs_recv;
64 double cd_memory;
65 double cd_local_memory;
66 double cd_kbytes_sent;
67 double cd_kbytes_recv;
68#endif
69 double unlink_requests;
70 double page_faults;
71 double select_loops;
72 double cpu_time;
73 double wall_time;
74 double swap_outs;
75 double swap_ins;
76 double swap_files_cleaned;
77 double aborted_requests;
78};
79
80/// implement aggregated 'counters' action
81class CountersAction: public Action
82{
83protected:
84 CountersAction(const CommandPointer &cmd);
85
86public:
87 static Pointer Create(const CommandPointer &cmd);
88 /* Action API */
89 virtual void add(const Action& action);
90 virtual void pack(Ipc::TypedMsgHdr& msg) const;
91 virtual void unpack(const Ipc::TypedMsgHdr& msg);
92
93protected:
94 /* Action API */
95 virtual void collect();
96 virtual void dump(StoreEntry* entry);
97
98private:
99 CountersActionData data;
100};
101
102} // namespace Mgr
103
104#endif /* SQUID_MGR_COUNTERS_ACTION_H */