]> git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/InfoAction.h
Merged from trunk 13172.
[thirdparty/squid.git] / src / mgr / InfoAction.h
1 /*
2 * DEBUG: section 16 Cache Manager API
3 *
4 */
5
6 #ifndef SQUID_MGR_INFO_ACTION_H
7 #define SQUID_MGR_INFO_ACTION_H
8
9 #include "mgr/Action.h"
10 #include "StoreStats.h"
11
12 namespace Mgr
13 {
14
15 /// store general runtime information
16 /// and memory usage
17 class InfoActionData
18 {
19 public:
20 InfoActionData();
21 InfoActionData& operator += (const InfoActionData& stats);
22
23 public:
24 struct timeval squid_start;
25 struct timeval current_time;
26 double client_http_clients;
27 double client_http_requests;
28 double icp_pkts_recv;
29 double icp_pkts_sent;
30 double icp_replies_queued;
31 #if USE_HTCP
32 double htcp_pkts_recv;
33 double htcp_pkts_sent;
34 #endif
35 double request_failure_ratio;
36 double avg_client_http_requests;
37 double avg_icp_messages;
38 double select_loops;
39 double avg_loop_time;
40 double request_hit_ratio5;
41 double request_hit_ratio60;
42 double byte_hit_ratio5;
43 double byte_hit_ratio60;
44 double request_hit_mem_ratio5;
45 double request_hit_mem_ratio60;
46 double request_hit_disk_ratio5;
47 double request_hit_disk_ratio60;
48
49 StoreInfoStats store; ///< disk and memory cache statistics
50
51 double unlink_requests;
52 double http_requests5;
53 double http_requests60;
54 double cache_misses5;
55 double cache_misses60;
56 double cache_hits5;
57 double cache_hits60;
58 double near_hits5;
59 double near_hits60;
60 double not_modified_replies5;
61 double not_modified_replies60;
62 double dns_lookups5;
63 double dns_lookups60;
64 double icp_queries5;
65 double icp_queries60;
66 double up_time;
67 double cpu_time;
68 double cpu_usage;
69 double cpu_usage5;
70 double cpu_usage60;
71 #if HAVE_SBRK
72 double proc_data_seg;
73 #endif
74 double maxrss;
75 double page_faults;
76 #if HAVE_MSTATS && HAVE_GNUMALLOC_H
77 double ms_bytes_total;
78 double ms_bytes_free;
79 #elif HAVE_MALLINFO && HAVE_STRUCT_MALLINFO
80 double mp_arena;
81 double mp_uordblks;
82 double mp_ordblks;
83 double mp_usmblks;
84 double mp_smblks;
85 double mp_hblkhd;
86 double mp_hblks;
87 double mp_fsmblks;
88 double mp_fordblks;
89 #if HAVE_STRUCT_MALLINFO_MXFAST
90 double mp_mxfast;
91 double mp_nlblks;
92 double mp_grain;
93 double mp_uordbytes;
94 double mp_allocated;
95 double mp_treeoverhead;
96 #endif
97 #endif
98 double total_accounted;
99 #if !(HAVE_MSTATS && HAVE_GNUMALLOC_H) && HAVE_MALLINFO && HAVE_STRUCT_MALLINFO
100 double mem_pool_allocated;
101 #endif
102 double gb_saved_count;
103 double gb_freed_count;
104 double max_fd;
105 double biggest_fd;
106 double number_fd;
107 double opening_fd;
108 double num_fd_free;
109 double reserved_fd;
110 unsigned int count;
111 };
112
113 /// implement aggregated 'info' action
114 class InfoAction: public Action
115 {
116 protected:
117 InfoAction(const CommandPointer &cmd);
118
119 public:
120 static Pointer Create(const CommandPointer &cmd);
121 /* Action API */
122 virtual void add(const Action& action);
123 virtual void respond(const Request& request);
124 virtual void pack(Ipc::TypedMsgHdr& msg) const;
125 virtual void unpack(const Ipc::TypedMsgHdr& msg);
126
127 protected:
128 /* Action API */
129 virtual void collect();
130 virtual void dump(StoreEntry* entry);
131
132 private:
133 InfoActionData data;
134 };
135
136 } // namespace Mgr
137
138 #endif /* SQUID_MGR_INFO_ACTION_H */