CountersAction.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
3  *
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.
7  */
8 
9 /* DEBUG: section 16 Cache Manager API */
10 
11 #include "squid.h"
12 #include "base/TextException.h"
13 #include "ipc/Messages.h"
14 #include "ipc/TypedMsgHdr.h"
15 #include "mgr/CountersAction.h"
16 #include "SquidTime.h"
17 #include "Store.h"
18 #include "tools.h"
19 
22 
24 {
25  memset(this, 0, sizeof(*this));
26 }
27 
30 {
31  if (timercmp(&sample_time, &stats.sample_time, <))
32  sample_time = stats.sample_time;
33  client_http_requests += stats.client_http_requests;
34  client_http_hits += stats.client_http_hits;
35  client_http_errors += stats.client_http_errors;
36  client_http_kbytes_in += stats.client_http_kbytes_in;
37  client_http_kbytes_out += stats.client_http_kbytes_out;
38  client_http_hit_kbytes_out += stats.client_http_hit_kbytes_out;
39  server_all_requests += stats.server_all_requests;
40  server_all_errors += stats.server_all_errors;
41  server_all_kbytes_in += stats.server_all_kbytes_in;
42  server_all_kbytes_out += stats.server_all_kbytes_out;
43  server_http_requests += stats.server_http_requests;
44  server_http_errors += stats.server_http_errors;
45  server_http_kbytes_in += stats.server_http_kbytes_in;
46  server_http_kbytes_out += stats.server_http_kbytes_out;
47  server_ftp_requests += stats.server_ftp_requests;
48  server_ftp_errors += stats.server_ftp_errors;
49  server_ftp_kbytes_in += stats.server_ftp_kbytes_in;
50  server_ftp_kbytes_out += stats.server_ftp_kbytes_out;
51  server_other_requests += stats.server_other_requests;
52  server_other_errors += stats.server_other_errors;
53  server_other_kbytes_in += stats.server_other_kbytes_in;
54  server_other_kbytes_out += stats.server_other_kbytes_out;
55  icp_pkts_sent += stats.icp_pkts_sent;
56  icp_pkts_recv += stats.icp_pkts_recv;
57  icp_queries_sent += stats.icp_queries_sent;
58  icp_replies_sent += stats.icp_replies_sent;
59  icp_queries_recv += stats.icp_queries_recv;
60  icp_replies_recv += stats.icp_replies_recv;
61  icp_replies_queued += stats.icp_replies_queued;
62  icp_query_timeouts += stats.icp_query_timeouts;
63  icp_kbytes_sent += stats.icp_kbytes_sent;
64  icp_kbytes_recv += stats.icp_kbytes_recv;
65  icp_q_kbytes_sent += stats.icp_q_kbytes_sent;
66  icp_r_kbytes_sent += stats.icp_r_kbytes_sent;
67  icp_q_kbytes_recv += stats.icp_q_kbytes_recv;
68  icp_r_kbytes_recv += stats.icp_r_kbytes_recv;
69 #if USE_CACHE_DIGESTS
70  icp_times_used += stats.icp_times_used;
71  cd_times_used += stats.cd_times_used;
72  cd_msgs_sent += stats.cd_msgs_sent;
73  cd_msgs_recv += stats.cd_msgs_recv;
74  cd_memory += stats.cd_memory;
75  cd_local_memory += stats.cd_local_memory;
76  cd_kbytes_sent += stats.cd_kbytes_sent;
77  cd_kbytes_recv += stats.cd_kbytes_recv;
78 #endif
79  unlink_requests += stats.unlink_requests;
80  page_faults += stats.page_faults;
81  select_loops += stats.select_loops;
82  cpu_time += stats.cpu_time;
83  wall_time += stats.wall_time;
84  swap_outs += stats.swap_outs;
85  swap_ins += stats.swap_ins;
86  swap_files_cleaned += stats.swap_files_cleaned;
87  aborted_requests += stats.aborted_requests;
88  hitValidationAttempts += stats.hitValidationAttempts;
89  hitValidationRefusalsDueToLocking += stats.hitValidationRefusalsDueToLocking;
90  hitValidationRefusalsDueToZeroSize += stats.hitValidationRefusalsDueToZeroSize;
91  hitValidationRefusalsDueToTimeLimit += stats.hitValidationRefusalsDueToTimeLimit;
92  hitValidationFailures += stats.hitValidationFailures;
93 
94  return *this;
95 }
96 
99 {
100  return new CountersAction(cmd);
101 }
102 
104  Action(aCmd), data()
105 {
106  debugs(16, 5, HERE);
107 }
108 
109 void
111 {
112  debugs(16, 5, HERE);
113  data += dynamic_cast<const CountersAction&>(action).data;
114 }
115 
116 void
118 {
119  debugs(16, 5, HERE);
121 }
122 
123 void
125 {
126  debugs(16, 5, HERE);
127  Must(entry != NULL);
128  DumpCountersStats(data, entry);
129 }
130 
131 void
133 {
135  msg.putPod(data);
136 }
137 
138 void
140 {
142  msg.getPod(data);
143 }
144 
class Ping::pingStats_ stats
static Pointer Create(const CommandPointer &cmd)
CountersActionData & operator+=(const CountersActionData &stats)
void setType(int aType)
sets message type; use MessageType enum
Definition: TypedMsgHdr.cc:107
void checkType(int aType) const
throws if stored type is not aType
Definition: TypedMsgHdr.cc:101
@ mtCacheMgrResponse
Definition: Messages.h:25
bool action(int fd, size_t metasize, const char *fn, const char *url, const SquidMetaList &meta)
Definition: purge.cc:311
#define timercmp(tvp, uvp, cmp)
Definition: snmp_api_util.h:76
void putPod(const Pod &pod)
store POD
Definition: TypedMsgHdr.h:52
#define NULL
Definition: types.h:166
CountersAction(const CommandPointer &cmd)
void DumpCountersStats(Mgr::CountersActionData &stats, StoreEntry *sentry)
Definition: stat.cc:1465
store traffic and resource counters
#define debugs(SECTION, LEVEL, CONTENT)
Definition: Debug.h:128
virtual void collect()
calculate and keep local action-specific information
std::ostream & HERE(std::ostream &s)
Definition: Debug.h:157
void const char HLPCB void * data
Definition: stub_helper.cc:16
virtual void pack(Ipc::TypedMsgHdr &msg) const
pack collected action info into a message to be sent to Coordinator
virtual void unpack(const Ipc::TypedMsgHdr &msg)
unpack action info from the message received by Coordinator
virtual void add(const Action &action)
incrementally merge in remote information (of the same action type)
#define Must(condition)
Like assert() but throws an exception instead of aborting the process.
Definition: TextException.h:72
struct msghdr with a known type, fixed-size I/O and control buffers
Definition: TypedMsgHdr.h:32
virtual void dump(StoreEntry *entry)
void getPod(Pod &pod) const
load POD
Definition: TypedMsgHdr.h:50
void GetCountersStats(Mgr::CountersActionData &stats)
Definition: stat.cc:1383
implement aggregated 'counters' action

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors