2 * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
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.
9 /* DEBUG: section 16 Cache Manager API */
11 #ifndef SQUID_MGR_INTERVAL_ACTION_H
12 #define SQUID_MGR_INTERVAL_ACTION_H
14 #include "mgr/Action.h"
19 /// auxiliary class which store stats computed
20 /// from StatCounters for specified interval
21 class IntervalActionData
25 IntervalActionData
& operator += (const IntervalActionData
& stats
);
28 struct timeval sample_start_time
;
29 struct timeval sample_end_time
;
30 double client_http_requests
;
31 double client_http_hits
;
32 double client_http_errors
;
33 double client_http_kbytes_in
;
34 double client_http_kbytes_out
;
35 double client_http_all_median_svc_time
;
36 double client_http_miss_median_svc_time
;
37 double client_http_nm_median_svc_time
;
38 double client_http_nh_median_svc_time
;
39 double client_http_hit_median_svc_time
;
40 double server_all_requests
;
41 double server_all_errors
;
42 double server_all_kbytes_in
;
43 double server_all_kbytes_out
;
44 double server_http_requests
;
45 double server_http_errors
;
46 double server_http_kbytes_in
;
47 double server_http_kbytes_out
;
48 double server_ftp_requests
;
49 double server_ftp_errors
;
50 double server_ftp_kbytes_in
;
51 double server_ftp_kbytes_out
;
52 double server_other_requests
;
53 double server_other_errors
;
54 double server_other_kbytes_in
;
55 double server_other_kbytes_out
;
58 double icp_queries_sent
;
59 double icp_replies_sent
;
60 double icp_queries_recv
;
61 double icp_replies_recv
;
62 double icp_replies_queued
;
63 double icp_query_timeouts
;
64 double icp_kbytes_sent
;
65 double icp_kbytes_recv
;
66 double icp_q_kbytes_sent
;
67 double icp_r_kbytes_sent
;
68 double icp_q_kbytes_recv
;
69 double icp_r_kbytes_recv
;
70 double icp_query_median_svc_time
;
71 double icp_reply_median_svc_time
;
72 double dns_median_svc_time
;
73 double unlink_requests
;
77 double average_select_fd_period
;
78 double median_select_fds
;
81 double swap_files_cleaned
;
82 double aborted_requests
;
83 double syscalls_disk_opens
;
84 double syscalls_disk_closes
;
85 double syscalls_disk_reads
;
86 double syscalls_disk_writes
;
87 double syscalls_disk_seeks
;
88 double syscalls_disk_unlinks
;
89 double syscalls_sock_accepts
;
90 double syscalls_sock_sockets
;
91 double syscalls_sock_connects
;
92 double syscalls_sock_binds
;
93 double syscalls_sock_closes
;
94 double syscalls_sock_reads
;
95 double syscalls_sock_writes
;
96 double syscalls_sock_recvfroms
;
97 double syscalls_sock_sendtos
;
98 double syscalls_selects
;
104 /// implement aggregated interval actions
105 class IntervalAction
: public Action
108 IntervalAction(const CommandPointer
&cmd
, int aMinutes
, int aHours
);
111 static Pointer
Create5min(const CommandPointer
&cmd
);
112 static Pointer
Create60min(const CommandPointer
&cmd
);
114 virtual void add(const Action
& action
);
115 virtual void pack(Ipc::TypedMsgHdr
& msg
) const;
116 virtual void unpack(const Ipc::TypedMsgHdr
& msg
);
120 virtual void collect();
121 virtual void dump(StoreEntry
* entry
);
126 IntervalActionData data
;
131 #endif /* SQUID_MGR_INTERVAL_ACTION_H */