/*
- * DEBUG: section 16 Cache Manager API
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
*
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
*/
+/* DEBUG: section 16 Cache Manager API */
+
#ifndef SQUID_MGR_INFO_ACTION_H
#define SQUID_MGR_INFO_ACTION_H
#include "mgr/Action.h"
#include "StoreStats.h"
-#include <sys/time.h>
namespace Mgr
{
class InfoActionData
{
public:
- InfoActionData();
InfoActionData& operator += (const InfoActionData& stats);
public:
- struct timeval squid_start;
- struct timeval current_time;
- double client_http_clients;
- double client_http_requests;
- double icp_pkts_recv;
- double icp_pkts_sent;
- double icp_replies_queued;
+ struct timeval squid_start = {};
+ struct timeval current_time = {};
+ double client_http_clients = 0.0;
+ double client_http_requests = 0.0;
+ double icp_pkts_recv = 0.0;
+ double icp_pkts_sent = 0.0;
+ double icp_replies_queued = 0.0;
#if USE_HTCP
- double htcp_pkts_recv;
- double htcp_pkts_sent;
+ double htcp_pkts_recv = 0.0;
+ double htcp_pkts_sent = 0.0;
#endif
- double request_failure_ratio;
- double avg_client_http_requests;
- double avg_icp_messages;
- double select_loops;
- double avg_loop_time;
- double request_hit_ratio5;
- double request_hit_ratio60;
- double byte_hit_ratio5;
- double byte_hit_ratio60;
- double request_hit_mem_ratio5;
- double request_hit_mem_ratio60;
- double request_hit_disk_ratio5;
- double request_hit_disk_ratio60;
+ double request_failure_ratio = 0.0;
+ double avg_client_http_requests = 0.0;
+ double avg_icp_messages = 0.0;
+ double select_loops = 0.0;
+ double avg_loop_time = 0.0;
+ double request_hit_ratio5 = 0.0;
+ double request_hit_ratio60 = 0.0;
+ double byte_hit_ratio5 = 0.0;
+ double byte_hit_ratio60 = 0.0;
+ double request_hit_mem_ratio5 = 0.0;
+ double request_hit_mem_ratio60 = 0.0;
+ double request_hit_disk_ratio5 = 0.0;
+ double request_hit_disk_ratio60 = 0.0;
StoreInfoStats store; ///< disk and memory cache statistics
- double unlink_requests;
- double http_requests5;
- double http_requests60;
- double cache_misses5;
- double cache_misses60;
- double cache_hits5;
- double cache_hits60;
- double near_hits5;
- double near_hits60;
- double not_modified_replies5;
- double not_modified_replies60;
- double dns_lookups5;
- double dns_lookups60;
- double icp_queries5;
- double icp_queries60;
- double up_time;
- double cpu_time;
- double cpu_usage;
- double cpu_usage5;
- double cpu_usage60;
-#if HAVE_SBRK
- double proc_data_seg;
-#endif
- double maxrss;
- double page_faults;
+ double unlink_requests = 0.0;
+ double http_requests5 = 0.0;
+ double http_requests60 = 0.0;
+ double cache_misses5 = 0.0;
+ double cache_misses60 = 0.0;
+ double cache_hits5 = 0.0;
+ double cache_hits60 = 0.0;
+ double near_hits5 = 0.0;
+ double near_hits60 = 0.0;
+ double not_modified_replies5 = 0.0;
+ double not_modified_replies60 = 0.0;
+ double dns_lookups5 = 0.0;
+ double dns_lookups60 = 0.0;
+ double icp_queries5 = 0.0;
+ double icp_queries60 = 0.0;
+ double up_time = 0.0;
+ double cpu_time = 0.0;
+ double cpu_usage = 0.0;
+ double cpu_usage5 = 0.0;
+ double cpu_usage60 = 0.0;
+ double maxrss = 0.0;
+ double page_faults = 0.0;
#if HAVE_MSTATS && HAVE_GNUMALLOC_H
- double ms_bytes_total;
- double ms_bytes_free;
-#elif HAVE_MALLINFO && HAVE_STRUCT_MALLINFO
- double mp_arena;
- double mp_uordblks;
- double mp_ordblks;
- double mp_usmblks;
- double mp_smblks;
- double mp_hblkhd;
- double mp_hblks;
- double mp_fsmblks;
- double mp_fordblks;
-#if HAVE_STRUCT_MALLINFO_MXFAST
- double mp_mxfast;
- double mp_nlblks;
- double mp_grain;
- double mp_uordbytes;
- double mp_allocated;
- double mp_treeoverhead;
-#endif
+ double ms_bytes_total = 0.0;
+ double ms_bytes_free = 0.0;
#endif
- double total_accounted;
-#if !(HAVE_MSTATS && HAVE_GNUMALLOC_H) && HAVE_MALLINFO && HAVE_STRUCT_MALLINFO
- double mem_pool_allocated;
-#endif
- double gb_saved_count;
- double gb_freed_count;
- double max_fd;
- double biggest_fd;
- double number_fd;
- double opening_fd;
- double num_fd_free;
- double reserved_fd;
- unsigned int count;
+ double total_accounted = 0.0;
+ double gb_saved_count = 0.0;
+ double gb_freed_count = 0.0;
+ double max_fd = 0.0;
+ double biggest_fd = 0.0;
+ double number_fd = 0.0;
+ double opening_fd = 0.0;
+ double num_fd_free = 0.0;
+ double reserved_fd = 0.0;
+ unsigned int count = 0;
};
/// implement aggregated 'info' action
public:
static Pointer Create(const CommandPointer &cmd);
/* Action API */
- virtual void add(const Action& action);
- virtual void respond(const Request& request);
- virtual void pack(Ipc::TypedMsgHdr& msg) const;
- virtual void unpack(const Ipc::TypedMsgHdr& msg);
+ void add(const Action& action) override;
+ void respond(const Request& request) override;
+ void pack(Ipc::TypedMsgHdr& msg) const override;
+ void unpack(const Ipc::TypedMsgHdr& msg) override;
protected:
/* Action API */
- virtual void collect();
- virtual void dump(StoreEntry* entry);
+ void collect() override;
+ void dump(StoreEntry* entry) override;
private:
InfoActionData data;
} // namespace Mgr
#endif /* SQUID_MGR_INFO_ACTION_H */
+