]> git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/IntervalAction.h
Merged from trunk (r13356).
[thirdparty/squid.git] / src / mgr / IntervalAction.h
1 /*
2 * DEBUG: section 16 Cache Manager API
3 *
4 */
5
6 #ifndef SQUID_MGR_INTERVAL_ACTION_H
7 #define SQUID_MGR_INTERVAL_ACTION_H
8
9 #include "mgr/Action.h"
10
11 namespace Mgr
12 {
13
14 /// auxiliary class which store stats computed
15 /// from StatCounters for specified interval
16 class IntervalActionData
17 {
18 public:
19 IntervalActionData();
20 IntervalActionData& operator += (const IntervalActionData& stats);
21
22 public:
23 struct timeval sample_start_time;
24 struct timeval sample_end_time;
25 double client_http_requests;
26 double client_http_hits;
27 double client_http_errors;
28 double client_http_kbytes_in;
29 double client_http_kbytes_out;
30 double client_http_all_median_svc_time;
31 double client_http_miss_median_svc_time;
32 double client_http_nm_median_svc_time;
33 double client_http_nh_median_svc_time;
34 double client_http_hit_median_svc_time;
35 double server_all_requests;
36 double server_all_errors;
37 double server_all_kbytes_in;
38 double server_all_kbytes_out;
39 double server_http_requests;
40 double server_http_errors;
41 double server_http_kbytes_in;
42 double server_http_kbytes_out;
43 double server_ftp_requests;
44 double server_ftp_errors;
45 double server_ftp_kbytes_in;
46 double server_ftp_kbytes_out;
47 double server_other_requests;
48 double server_other_errors;
49 double server_other_kbytes_in;
50 double server_other_kbytes_out;
51 double icp_pkts_sent;
52 double icp_pkts_recv;
53 double icp_queries_sent;
54 double icp_replies_sent;
55 double icp_queries_recv;
56 double icp_replies_recv;
57 double icp_replies_queued;
58 double icp_query_timeouts;
59 double icp_kbytes_sent;
60 double icp_kbytes_recv;
61 double icp_q_kbytes_sent;
62 double icp_r_kbytes_sent;
63 double icp_q_kbytes_recv;
64 double icp_r_kbytes_recv;
65 double icp_query_median_svc_time;
66 double icp_reply_median_svc_time;
67 double dns_median_svc_time;
68 double unlink_requests;
69 double page_faults;
70 double select_loops;
71 double select_fds;
72 double average_select_fd_period;
73 double median_select_fds;
74 double swap_outs;
75 double swap_ins;
76 double swap_files_cleaned;
77 double aborted_requests;
78 double syscalls_disk_opens;
79 double syscalls_disk_closes;
80 double syscalls_disk_reads;
81 double syscalls_disk_writes;
82 double syscalls_disk_seeks;
83 double syscalls_disk_unlinks;
84 double syscalls_sock_accepts;
85 double syscalls_sock_sockets;
86 double syscalls_sock_connects;
87 double syscalls_sock_binds;
88 double syscalls_sock_closes;
89 double syscalls_sock_reads;
90 double syscalls_sock_writes;
91 double syscalls_sock_recvfroms;
92 double syscalls_sock_sendtos;
93 double syscalls_selects;
94 double cpu_time;
95 double wall_time;
96 unsigned int count;
97 };
98
99 /// implement aggregated interval actions
100 class IntervalAction: public Action
101 {
102 protected:
103 IntervalAction(const CommandPointer &cmd, int aMinutes, int aHours);
104
105 public:
106 static Pointer Create5min(const CommandPointer &cmd);
107 static Pointer Create60min(const CommandPointer &cmd);
108 /* Action API */
109 virtual void add(const Action& action);
110 virtual void pack(Ipc::TypedMsgHdr& msg) const;
111 virtual void unpack(const Ipc::TypedMsgHdr& msg);
112
113 protected:
114 /* Action API */
115 virtual void collect();
116 virtual void dump(StoreEntry* entry);
117
118 private:
119 int minutes;
120 int hours;
121 IntervalActionData data;
122 };
123
124 } // namespace Mgr
125
126 #endif /* SQUID_MGR_INTERVAL_ACTION_H */