]> git.ipfire.org Git - thirdparty/squid.git/blame - src/StatCounters.h
Maintenance: Update astyle version to 3.1 (#841)
[thirdparty/squid.git] / src / StatCounters.h
CommitLineData
e1656dc4 1/*
f70aedc4 2 * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
e1656dc4 3 *
bbc27441
AJ
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.
e1656dc4 7 */
bbc27441 8
e1656dc4
FC
9#ifndef STATCOUNTERS_H_
10#define STATCOUNTERS_H_
11
a0864754 12#include "base/ByteCounter.h"
e1656dc4
FC
13#include "StatHist.h"
14
15#if USE_CACHE_DIGESTS
e8baef82 16/** statistics for cache digests and other hit "predictors" */
75fbab53
A
17class CacheDigestGuessStats
18{
e1656dc4 19public:
b56b37cf
AJ
20 int trueHits = 0;
21 int falseHits = 0;
22 int trueMisses = 0;
23 int falseMisses = 0;
9837567d 24 int closeHits = 0; // TODO: temporary. remove it later
e1656dc4
FC
25};
26#endif
27
e8baef82
FC
28/** General collection of process-wide statistics.
29 *
b56b37cf
AJ
30 * \note if you add a field to StatCounters which requires any non-trivial
31 * initialization or copy you MUST sync statCountersInitSpecial()
e1656dc4 32 */
75fbab53
A
33class StatCounters
34{
e1656dc4 35public:
b56b37cf
AJ
36 StatCounters() : timestamp(current_time) {}
37
e1656dc4 38 struct {
b56b37cf
AJ
39 int clients = 0;
40 int requests = 0;
41 int hits = 0;
42 int mem_hits = 0;
43 int disk_hits = 0;
44 int errors = 0;
a0864754
AJ
45 ByteCounter kbytes_in;
46 ByteCounter kbytes_out;
47 ByteCounter hit_kbytes_out;
e8baef82
FC
48 StatHist missSvcTime;
49 StatHist nearMissSvcTime;
50 StatHist nearHitSvcTime;
51 StatHist hitSvcTime;
52 StatHist allSvcTime;
e1656dc4
FC
53 } client_http;
54
55 struct {
56
57 struct {
b56b37cf
AJ
58 int requests = 0;
59 int errors = 0;
a0864754
AJ
60 ByteCounter kbytes_in;
61 ByteCounter kbytes_out;
9e167fa2 62 } all, http, ftp, other;
e1656dc4
FC
63 } server;
64
65 struct {
b56b37cf
AJ
66 int pkts_sent = 0;
67 int queries_sent = 0;
68 int replies_sent = 0;
69 int pkts_recv = 0;
70 int queries_recv = 0;
71 int replies_recv = 0;
72 int hits_sent = 0;
73 int hits_recv = 0;
74 int replies_queued = 0;
75 int replies_dropped = 0;
a0864754
AJ
76 ByteCounter kbytes_sent;
77 ByteCounter q_kbytes_sent;
78 ByteCounter r_kbytes_sent;
79 ByteCounter kbytes_recv;
80 ByteCounter q_kbytes_recv;
81 ByteCounter r_kbytes_recv;
e8baef82
FC
82 StatHist querySvcTime;
83 StatHist replySvcTime;
b56b37cf
AJ
84 int query_timeouts = 0;
85 int times_used = 0;
e1656dc4
FC
86 } icp;
87
88 struct {
b56b37cf
AJ
89 int pkts_sent = 0;
90 int pkts_recv = 0;
e1656dc4
FC
91 } htcp;
92
93 struct {
b56b37cf 94 int requests = 0;
e1656dc4
FC
95 } unlink;
96
97 struct {
e8baef82 98 StatHist svcTime;
e1656dc4
FC
99 } dns;
100
101 struct {
b56b37cf 102 int times_used = 0;
a0864754
AJ
103 ByteCounter kbytes_sent;
104 ByteCounter kbytes_recv;
105 ByteCounter memory;
b56b37cf
AJ
106 int msgs_sent = 0;
107 int msgs_recv = 0;
e1656dc4 108#if USE_CACHE_DIGESTS
e8baef82 109 CacheDigestGuessStats guess;
e1656dc4 110#endif
e1656dc4
FC
111 StatHist on_xition_count;
112 } cd;
113
114 struct {
b56b37cf 115 int times_used = 0;
e1656dc4 116 } netdb;
b56b37cf
AJ
117 int page_faults = 0;
118 unsigned long int select_loops = 0;
119 int select_fds = 0;
120 double select_time = 0.0;
121 double cputime = 0.0;
e1656dc4
FC
122
123 struct timeval timestamp;
65d448bc 124 StatHist comm_udp_incoming;
e1656dc4 125 StatHist comm_dns_incoming;
65d448bc 126 StatHist comm_tcp_incoming;
e1656dc4
FC
127 StatHist select_fds_hist;
128
129 struct {
130 struct {
b56b37cf
AJ
131 int opens = 0;
132 int closes = 0;
133 int reads = 0;
134 int writes = 0;
135 int seeks = 0;
136 int unlinks = 0;
e1656dc4
FC
137 } disk;
138
139 struct {
b56b37cf
AJ
140 int accepts = 0;
141 int sockets = 0;
142 int connects = 0;
143 int binds = 0;
144 int closes = 0;
145 int reads = 0;
146 int writes = 0;
147 int recvfroms = 0;
148 int sendtos = 0;
e1656dc4 149 } sock;
b56b37cf 150 int selects = 0;
e1656dc4 151 } syscalls;
b56b37cf 152 int aborted_requests = 0;
e1656dc4
FC
153
154 struct {
b56b37cf
AJ
155 int files_cleaned = 0;
156 int outs = 0;
157 int ins = 0;
e1656dc4 158 } swap;
b2aca62a
EB
159
160 struct {
161 uint64_t attempts = 0;
162 uint64_t refusalsDueToLocking = 0;
163 uint64_t refusalsDueToZeroSize = 0;
164 uint64_t refusalsDueToTimeLimit = 0;
165 uint64_t failures = 0;
166 } hitValidation;
167
e1656dc4
FC
168};
169
e4f1fdae 170extern StatCounters statCounter;
e1656dc4
FC
171
172#endif /* STATCOUNTERS_H_ */
f53969cc 173