]> git.ipfire.org Git - thirdparty/squid.git/blame - src/mgr/InfoAction.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / mgr / InfoAction.h
CommitLineData
8822ebee
AR
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"
93bc1434 12#include "StoreStats.h"
8822ebee 13#include <sys/time.h>
8822ebee
AR
14
15namespace Mgr
16{
17
18/// store general runtime information
19/// and memory usage
20class InfoActionData
21{
22public:
23 InfoActionData();
24 InfoActionData& operator += (const InfoActionData& stats);
25
26public:
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;
93bc1434
AR
51
52 StoreInfoStats store; ///< disk and memory cache statistics
53
8822ebee
AR
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;
8822ebee
AR
113 unsigned int count;
114};
115
116/// implement aggregated 'info' action
117class InfoAction: public Action
118{
119protected:
120 InfoAction(const CommandPointer &cmd);
121
122public:
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
130protected:
131 /* Action API */
132 virtual void collect();
133 virtual void dump(StoreEntry* entry);
134
135private:
136 InfoActionData data;
137};
138
139} // namespace Mgr
140
141#endif /* SQUID_MGR_INFO_ACTION_H */