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