]> git.ipfire.org Git - thirdparty/squid.git/blame - src/mgr/CountersAction.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / mgr / CountersAction.h
CommitLineData
8822ebee 1/*
b8ae064d 2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
8822ebee 3 *
bbc27441
AJ
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
8822ebee
AR
7 */
8
bbc27441
AJ
9/* DEBUG: section 16 Cache Manager API */
10
8822ebee
AR
11#ifndef SQUID_MGR_COUNTERS_ACTION_H
12#define SQUID_MGR_COUNTERS_ACTION_H
13
14#include "mgr/Action.h"
8822ebee 15
8822ebee
AR
16namespace Mgr
17{
18
19/// store traffic and resource counters
20class CountersActionData
21{
22public:
23 CountersActionData();
24 CountersActionData& operator += (const CountersActionData& stats);
25
26public:
27 struct timeval sample_time;
28 double client_http_requests;
29 double client_http_hits;
30 double client_http_errors;
31 double client_http_kbytes_in;
32 double client_http_kbytes_out;
33 double client_http_hit_kbytes_out;
34 double server_all_requests;
35 double server_all_errors;
36 double server_all_kbytes_in;
37 double server_all_kbytes_out;
38 double server_http_requests;
39 double server_http_errors;
40 double server_http_kbytes_in;
41 double server_http_kbytes_out;
42 double server_ftp_requests;
43 double server_ftp_errors;
44 double server_ftp_kbytes_in;
45 double server_ftp_kbytes_out;
46 double server_other_requests;
47 double server_other_errors;
48 double server_other_kbytes_in;
49 double server_other_kbytes_out;
50 double icp_pkts_sent;
51 double icp_pkts_recv;
52 double icp_queries_sent;
53 double icp_replies_sent;
54 double icp_queries_recv;
55 double icp_replies_recv;
56 double icp_replies_queued;
57 double icp_query_timeouts;
58 double icp_kbytes_sent;
59 double icp_kbytes_recv;
60 double icp_q_kbytes_sent;
61 double icp_r_kbytes_sent;
62 double icp_q_kbytes_recv;
63 double icp_r_kbytes_recv;
64#if USE_CACHE_DIGESTS
65 double icp_times_used;
66 double cd_times_used;
67 double cd_msgs_sent;
68 double cd_msgs_recv;
69 double cd_memory;
70 double cd_local_memory;
71 double cd_kbytes_sent;
72 double cd_kbytes_recv;
73#endif
74 double unlink_requests;
75 double page_faults;
76 double select_loops;
77 double cpu_time;
78 double wall_time;
79 double swap_outs;
80 double swap_ins;
81 double swap_files_cleaned;
82 double aborted_requests;
b2aca62a
EB
83 double hitValidationAttempts;
84 double hitValidationRefusalsDueToLocking;
85 double hitValidationRefusalsDueToZeroSize;
86 double hitValidationRefusalsDueToTimeLimit;
87 double hitValidationFailures;
8822ebee
AR
88};
89
90/// implement aggregated 'counters' action
91class CountersAction: public Action
92{
93protected:
94 CountersAction(const CommandPointer &cmd);
95
96public:
97 static Pointer Create(const CommandPointer &cmd);
98 /* Action API */
337b9aa4
AR
99 void add(const Action& action) override;
100 void pack(Ipc::TypedMsgHdr& msg) const override;
101 void unpack(const Ipc::TypedMsgHdr& msg) override;
8822ebee
AR
102
103protected:
104 /* Action API */
337b9aa4
AR
105 void collect() override;
106 void dump(StoreEntry* entry) override;
8822ebee
AR
107
108private:
109 CountersActionData data;
110};
111
112} // namespace Mgr
113
114#endif /* SQUID_MGR_COUNTERS_ACTION_H */
f53969cc 115