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