110#if XMALLOC_STATISTICS
111static void info_get_mallstat(
int,
int,
int,
void *);
218 i ? (1 << (i - 1)) + 1 : 1,
220 stats.http_read_hist[i],
231 i ? (1 << (i - 1)) + 1 : 1,
233 stats.ftp_read_hist[i],
244 snprintf(buf, 256,
"%-13s %-13s %-12s %-12s",
261 strcat(buf,
"SPECIAL,");
264 strcat(buf,
"REVALIDATE_ALWAYS,");
267 strcat(buf,
"DELAY_SENDING,");
270 strcat(buf,
"RELEASE_REQUEST,");
273 strcat(buf,
"REFRESH_REQUEST,");
276 strcat(buf,
"REVALIDATE_STALE,");
279 strcat(buf,
"DISPATCHED,");
282 strcat(buf,
"PRIVATE,");
285 strcat(buf,
"FWD_HDR_WAIT,");
288 strcat(buf,
"NEGCACHED,");
291 strcat(buf,
"VALIDATED,");
294 strcat(buf,
"BAD_LENGTH,");
297 strcat(buf,
"ABORTED,");
299 if ((t = strrchr(buf,
',')))
347 size_t statCount = 0;
375 sentry->
lock(
"statObjects");
417#if XMALLOC_STATISTICS
419info_get_mallstat(
int size,
int number,
int oldnum,
void *data)
437#if HAVE_MSTATS && HAVE_GNUMALLOC_H
517 stats.up_time = runtime;
518 stats.cpu_time = cputime;
527#if HAVE_MSTATS && HAVE_GNUMALLOC_H
531 stats.ms_bytes_total = ms.bytes_total;
533 stats.ms_bytes_free = ms.bytes_free;
562 if (WIN32_run_mode == _WIN_SQUID_RUN_MODE_SERVICE) {
565 storeAppendPrintf(sentry,
"Service command line is: %s\n", WIN32_Service_Command_Line);
583 sentry->
append(
"\tNumber of clients accessing cache:\t(client_db off)\n", 52);
586 stats.client_http_requests);
589 stats.icp_pkts_recv);
592 stats.icp_pkts_sent);
595 stats.icp_replies_queued);
600 stats.htcp_pkts_recv);
603 stats.htcp_pkts_sent);
607 double fct =
stats.count > 1 ?
stats.count : 1.0;
609 stats.request_failure_ratio / fct);
611 storeAppendPrintf(sentry,
"\tAverage HTTP requests per minute since start:\t%.1f\n",
612 stats.avg_client_http_requests);
614 storeAppendPrintf(sentry,
"\tAverage ICP messages per minute since start:\t%.1f\n",
615 stats.avg_icp_messages);
618 stats.select_loops,
stats.avg_loop_time / fct);
622 storeAppendPrintf(sentry,
"\tHits as %% of all requests:\t5min: %3.1f%%, 60min: %3.1f%%\n",
623 stats.request_hit_ratio5 / fct,
624 stats.request_hit_ratio60 / fct);
626 storeAppendPrintf(sentry,
"\tHits as %% of bytes sent:\t5min: %3.1f%%, 60min: %3.1f%%\n",
627 stats.byte_hit_ratio5 / fct,
628 stats.byte_hit_ratio60 / fct);
630 storeAppendPrintf(sentry,
"\tMemory hits as %% of hit requests:\t5min: %3.1f%%, 60min: %3.1f%%\n",
631 stats.request_hit_mem_ratio5 / fct,
632 stats.request_hit_mem_ratio60 / fct);
634 storeAppendPrintf(sentry,
"\tDisk hits as %% of hit requests:\t5min: %3.1f%%, 60min: %3.1f%%\n",
635 stats.request_hit_disk_ratio5 / fct,
636 stats.request_hit_disk_ratio60 / fct);
639 stats.store.swap.size / 1024);
641 storeAppendPrintf(sentry,
"\tStorage Swap capacity:\t%4.1f%% used, %4.1f%% free\n",
646 stats.store.mem.size / 1024);
648 storeAppendPrintf(sentry,
"\tStorage Mem capacity:\t%4.1f%% used, %4.1f%% free\n",
653 stats.store.swap.meanObjectSize() / 1024);
656 stats.unlink_requests);
660 fct =
stats.count > 1 ?
stats.count * 1000.0 : 1000.0;
662 stats.http_requests5 / fct,
663 stats.http_requests60 / fct);
666 stats.cache_misses5 / fct,
667 stats.cache_misses60 / fct);
670 stats.cache_hits5 / fct,
671 stats.cache_hits60 / fct);
674 stats.near_hits5 / fct,
675 stats.near_hits60 / fct);
678 stats.not_modified_replies5 / fct,
679 stats.not_modified_replies60 / fct);
682 stats.dns_lookups5 / fct,
683 stats.dns_lookups60 / fct);
685 fct =
stats.count > 1 ?
stats.count * 1000000.0 : 1000000.0;
687 stats.icp_queries5 / fct,
688 stats.icp_queries60 / fct);
711#if HAVE_MSTATS && HAVE_GNUMALLOC_H
716 stats.ms_bytes_total / 1024);
719 stats.ms_bytes_free / 1024,
726 stats.total_accounted / 1024);
731 stats.gb_saved_count);
733 stats.gb_freed_count);
750 stats.store.swap.open_disk_fd);
754 stats.store.store_entry_count);
756 stats.store.mem_object_count);
758 stats.store.mem.count);
760 stats.store.swap.count);
766#if XMALLOC_STATISTICS
770 storeAppendPrintf(sentry,
"%12s %15s %6s %12s\n",
"Alloc Size",
"Count",
"Delta",
"Alloc/sec");
771 malloc_statistics(info_get_mallstat, sentry);
781 double p = (i + 1) * 5 / 100.0;
809 double fct =
stats.count > 1 ?
stats.count * 1000.0 : 1000.0;
813 stats.http_requests5[i] / fct,
814 stats.http_requests60[i] / fct);
819 stats.cache_misses5[i] / fct,
820 stats.cache_misses60[i] / fct);
825 stats.cache_hits5[i] / fct,
826 stats.cache_hits60[i] / fct);
831 stats.near_hits5[i] / fct,
832 stats.near_hits60[i] / fct);
837 stats.not_modified_replies5[i] / fct,
838 stats.not_modified_replies60[i] / fct);
843 stats.dns_lookups5[i] / fct,
844 stats.dns_lookups60[i] / fct);
846 fct =
stats.count > 1 ?
stats.count * 1000000.0 : 1000000.0;
850 stats.icp_queries5[i] / fct,
851 stats.icp_queries60[i] / fct);
863#define XAVG(X) (dt ? (double) (f->X - l->X) / dt : 0.0)
872 assert(minutes > 0 || hours > 0);
876 if (minutes > 0 && hours == 0) {
883 }
else if (minutes == 0 && hours > 0) {
891 debugs(18,
DBG_IMPORTANT,
"ERROR: statAvgDump: Invalid args, minutes=" << minutes <<
", hours=" << hours);
901 stats.client_http_requests =
XAVG(client_http.requests);
902 stats.client_http_hits =
XAVG(client_http.hits);
903 stats.client_http_errors =
XAVG(client_http.errors);
904 stats.client_http_kbytes_in =
XAVG(client_http.kbytes_in.kb);
905 stats.client_http_kbytes_out =
XAVG(client_http.kbytes_out.kb);
938 stats.icp_pkts_sent =
XAVG(icp.pkts_sent);
939 stats.icp_pkts_recv =
XAVG(icp.pkts_recv);
940 stats.icp_queries_sent =
XAVG(icp.queries_sent);
941 stats.icp_replies_sent =
XAVG(icp.replies_sent);
942 stats.icp_queries_recv =
XAVG(icp.queries_recv);
943 stats.icp_replies_recv =
XAVG(icp.replies_recv);
944 stats.icp_replies_queued =
XAVG(icp.replies_queued);
945 stats.icp_query_timeouts =
XAVG(icp.query_timeouts);
946 stats.icp_kbytes_sent =
XAVG(icp.kbytes_sent.kb);
947 stats.icp_kbytes_recv =
XAVG(icp.kbytes_recv.kb);
948 stats.icp_q_kbytes_sent =
XAVG(icp.q_kbytes_sent.kb);
949 stats.icp_r_kbytes_sent =
XAVG(icp.r_kbytes_sent.kb);
950 stats.icp_q_kbytes_recv =
XAVG(icp.q_kbytes_recv.kb);
951 stats.icp_r_kbytes_recv =
XAVG(icp.r_kbytes_recv.kb);
960 stats.unlink_requests =
XAVG(unlink.requests);
970 stats.swap_files_cleaned =
XAVG(swap.files_cleaned);
971 stats.aborted_requests =
XAVG(aborted_requests);
973 stats.hitValidationAttempts =
XAVG(hitValidation.attempts);
974 stats.hitValidationRefusalsDueToLocking =
XAVG(hitValidation.refusalsDueToLocking);
975 stats.hitValidationRefusalsDueToZeroSize =
XAVG(hitValidation.refusalsDueToZeroSize);
976 stats.hitValidationRefusalsDueToTimeLimit =
XAVG(hitValidation.refusalsDueToTimeLimit);
977 stats.hitValidationFailures =
XAVG(hitValidation.failures);
979 stats.syscalls_disk_opens =
XAVG(syscalls.disk.opens);
980 stats.syscalls_disk_closes =
XAVG(syscalls.disk.closes);
981 stats.syscalls_disk_reads =
XAVG(syscalls.disk.reads);
982 stats.syscalls_disk_writes =
XAVG(syscalls.disk.writes);
983 stats.syscalls_disk_seeks =
XAVG(syscalls.disk.seeks);
984 stats.syscalls_disk_unlinks =
XAVG(syscalls.disk.unlinks);
985 stats.syscalls_sock_accepts =
XAVG(syscalls.sock.accepts);
986 stats.syscalls_sock_sockets =
XAVG(syscalls.sock.sockets);
987 stats.syscalls_sock_connects =
XAVG(syscalls.sock.connects);
988 stats.syscalls_sock_binds =
XAVG(syscalls.sock.binds);
989 stats.syscalls_sock_closes =
XAVG(syscalls.sock.closes);
990 stats.syscalls_sock_reads =
XAVG(syscalls.sock.reads);
991 stats.syscalls_sock_writes =
XAVG(syscalls.sock.writes);
992 stats.syscalls_sock_recvfroms =
XAVG(syscalls.sock.recvfroms);
993 stats.syscalls_sock_sendtos =
XAVG(syscalls.sock.sendtos);
994 stats.syscalls_selects =
XAVG(syscalls.selects);
997 stats.wall_time = dt;
1004 (
int)
stats.sample_start_time.tv_sec,
1005 (
int)
stats.sample_start_time.tv_usec,
1008 (
int)
stats.sample_end_time.tv_sec,
1009 (
int)
stats.sample_end_time.tv_usec,
1013 stats.client_http_requests);
1015 stats.client_http_hits);
1017 stats.client_http_errors);
1019 stats.client_http_kbytes_in);
1021 stats.client_http_kbytes_out);
1023 double fct =
stats.count > 1 ?
stats.count : 1.0;
1025 stats.client_http_all_median_svc_time / fct);
1027 stats.client_http_miss_median_svc_time / fct);
1029 stats.client_http_nm_median_svc_time / fct);
1031 stats.client_http_nh_median_svc_time / fct);
1033 stats.client_http_hit_median_svc_time / fct);
1036 stats.server_all_requests);
1038 stats.server_all_errors);
1040 stats.server_all_kbytes_in);
1042 stats.server_all_kbytes_out);
1045 stats.server_http_requests);
1047 stats.server_http_errors);
1049 stats.server_http_kbytes_in);
1051 stats.server_http_kbytes_out);
1054 stats.server_ftp_requests);
1056 stats.server_ftp_errors);
1058 stats.server_ftp_kbytes_in);
1060 stats.server_ftp_kbytes_out);
1063 stats.server_other_requests);
1065 stats.server_other_errors);
1067 stats.server_other_kbytes_in);
1069 stats.server_other_kbytes_out);
1072 stats.icp_pkts_sent);
1074 stats.icp_pkts_recv);
1076 stats.icp_queries_sent);
1078 stats.icp_replies_sent);
1080 stats.icp_queries_recv);
1082 stats.icp_replies_recv);
1084 stats.icp_replies_queued);
1086 stats.icp_query_timeouts);
1088 stats.icp_kbytes_sent);
1090 stats.icp_kbytes_recv);
1092 stats.icp_q_kbytes_sent);
1094 stats.icp_r_kbytes_sent);
1096 stats.icp_q_kbytes_recv);
1098 stats.icp_r_kbytes_recv);
1100 stats.icp_query_median_svc_time / fct);
1102 stats.icp_reply_median_svc_time / fct);
1104 stats.dns_median_svc_time / fct);
1106 stats.unlink_requests);
1110 stats.select_loops);
1114 stats.average_select_fd_period / fct);
1116 stats.median_select_fds / fct);
1122 stats.swap_files_cleaned);
1124 stats.aborted_requests);
1127 stats.hitValidationAttempts);
1129 stats.hitValidationRefusalsDueToLocking);
1131 stats.hitValidationRefusalsDueToZeroSize);
1132 storeAppendPrintf(sentry,
"hit_validation.refusals.due_to_timeLimit = %f/sec\n",
1133 stats.hitValidationRefusalsDueToTimeLimit);
1135 stats.hitValidationFailures);
1193 "Client-side Active Requests",
1197 "Active Cached Usernames",
1204 statGraphDump, 0, 1);
1215 C->client_http.allSvcTime.logInit(300, 0.0, 3600000.0 * 3.0);
1216 C->client_http.missSvcTime.logInit(300, 0.0, 3600000.0 * 3.0);
1217 C->client_http.nearMissSvcTime.logInit(300, 0.0, 3600000.0 * 3.0);
1218 C->client_http.nearHitSvcTime.logInit(300, 0.0, 3600000.0 * 3.0);
1219 C->client_http.hitSvcTime.logInit(300, 0.0, 3600000.0 * 3.0);
1223 C->icp.querySvcTime.logInit(300, 0.0, 1000000.0 * 60.0);
1224 C->icp.replySvcTime.logInit(300, 0.0, 1000000.0 * 60.0);
1228 C->dns.svcTime.logInit(300, 0.0, 60000.0 * 10.0);
1236 C->select_fds_hist.enumInit(256);
1251 debugs(18, 5,
"statInit: Initializing...");
1298 debugs(18,
DBG_CRITICAL,
"WARNING: Median response time is " << i <<
" milliseconds");
1305 if (i > 0 && dt > 0.0) {
1315#if HAVE_MSTATS && HAVE_GNUMALLOC_H
1316 struct mstats ms = mstats();
1320 debugs(18,
DBG_CRITICAL,
"WARNING: Memory usage at " << ((
unsigned long int)(i >> 20)) <<
" MB");
1408#if USE_CACHE_DIGESTS
1441 (
int)
stats.sample_time.tv_sec,
1442 (
int)
stats.sample_time.tv_usec,
1445 stats.client_http_requests);
1447 stats.client_http_hits);
1449 stats.client_http_errors);
1451 stats.client_http_kbytes_in);
1453 stats.client_http_kbytes_out);
1455 stats.client_http_hit_kbytes_out);
1458 stats.server_all_requests);
1460 stats.server_all_errors);
1462 stats.server_all_kbytes_in);
1464 stats.server_all_kbytes_out);
1467 stats.server_http_requests);
1469 stats.server_http_errors);
1471 stats.server_http_kbytes_in);
1473 stats.server_http_kbytes_out);
1476 stats.server_ftp_requests);
1478 stats.server_ftp_errors);
1480 stats.server_ftp_kbytes_in);
1482 stats.server_ftp_kbytes_out);
1485 stats.server_other_requests);
1487 stats.server_other_errors);
1489 stats.server_other_kbytes_in);
1491 stats.server_other_kbytes_out);
1494 stats.icp_pkts_sent);
1496 stats.icp_pkts_recv);
1498 stats.icp_queries_sent);
1500 stats.icp_replies_sent);
1502 stats.icp_queries_recv);
1504 stats.icp_replies_recv);
1506 stats.icp_query_timeouts);
1508 stats.icp_replies_queued);
1510 stats.icp_kbytes_sent);
1512 stats.icp_kbytes_recv);
1514 stats.icp_q_kbytes_sent);
1516 stats.icp_r_kbytes_sent);
1518 stats.icp_q_kbytes_recv);
1520 stats.icp_r_kbytes_recv);
1522#if USE_CACHE_DIGESTS
1525 stats.icp_times_used);
1527 stats.cd_times_used);
1529 stats.cd_msgs_sent);
1531 stats.cd_msgs_recv);
1535 stats.cd_local_memory);
1537 stats.cd_kbytes_sent);
1539 stats.cd_kbytes_recv);
1543 stats.unlink_requests);
1547 stats.select_loops);
1557 stats.swap_files_cleaned);
1559 stats.aborted_requests);
1562 stats.hitValidationAttempts);
1564 stats.hitValidationRefusalsDueToLocking);
1566 stats.hitValidationRefusalsDueToZeroSize);
1568 stats.hitValidationRefusalsDueToTimeLimit);
1570 stats.hitValidationFailures);
1576#if USE_CACHE_DIGESTS
1581 static const SBuf label(
"all peers");
1604 storeAppendPrintf(sentry,
"peer digests are disabled; no stats is available.\n");
1673 debugs(49, 5,
"statPctileSvc: unknown type.");
1736#if USE_CACHE_DIGESTS
1744#if USE_CACHE_DIGESTS
1776 const char *p =
nullptr;
1782 if (
conn !=
nullptr) {
1783 const int fd =
conn->clientConnection->fd;
1788 conn->inBuf.rawContent(), (
long int)
conn->inBuf.length(), (
long int)
conn->inBuf.spaceSize());
1816 if (!p &&
conn !=
nullptr &&
conn->clientConnection->rfc931[0])
1817 p =
conn->clientConnection->rfc931;
1842#define GRAPH_PER_MIN(Y) \
1843 for (i=0;i<(N_COUNT_HIST-2);++i) { \
1844 dt = tvSubDsec(CountHist[i+1].timestamp, CountHist[i].timestamp); \
1847 storeAppendPrintf(e, "%lu,%0.2f:", \
1848 CountHist[i].timestamp.tv_sec, \
1849 ((CountHist[i].Y - CountHist[i+1].Y) / dt)); \
1852#define GRAPH_PER_HOUR(Y) \
1853 for (i=0;i<(N_COUNT_HOUR_HIST-2);++i) { \
1854 dt = tvSubDsec(CountHourHist[i+1].timestamp, CountHourHist[i].timestamp); \
1857 storeAppendPrintf(e, "%lu,%0.2f:", \
1858 CountHourHist[i].timestamp.tv_sec, \
1859 ((CountHourHist[i].Y - CountHourHist[i+1].Y) / dt)); \
1862#define GRAPH_TITLE(X,Y) storeAppendPrintf(e,"%s\t%s\t",X,Y);
1863#define GRAPH_END storeAppendPrintf(e,"\n");
1865#define GENGRAPH(X,Y,Z) \
1877 GENGRAPH(client_http.requests,
"client_http.requests",
"Client HTTP requests/sec");
1878 GENGRAPH(client_http.hits,
"client_http.hits",
"Client HTTP hits/sec");
1879 GENGRAPH(client_http.errors,
"client_http.errors",
"Client HTTP errors/sec");
1880 GENGRAPH(client_http.kbytes_in.kb,
"client_http.kbytes_in",
"Client HTTP kbytes_in/sec");
1881 GENGRAPH(client_http.kbytes_out.kb,
"client_http.kbytes_out",
"Client HTTP kbytes_out/sec");
1885 GENGRAPH(
server.all.requests,
"server.all.requests",
"Server requests/sec");
1886 GENGRAPH(
server.all.errors,
"server.all.errors",
"Server errors/sec");
1887 GENGRAPH(
server.all.kbytes_in.kb,
"server.all.kbytes_in",
"Server total kbytes_in/sec");
1888 GENGRAPH(
server.all.kbytes_out.kb,
"server.all.kbytes_out",
"Server total kbytes_out/sec");
1890 GENGRAPH(
server.http.requests,
"server.http.requests",
"Server HTTP requests/sec");
1891 GENGRAPH(
server.http.errors,
"server.http.errors",
"Server HTTP errors/sec");
1892 GENGRAPH(
server.http.kbytes_in.kb,
"server.http.kbytes_in",
"Server HTTP kbytes_in/sec");
1893 GENGRAPH(
server.http.kbytes_out.kb,
"server.http.kbytes_out",
"Server HTTP kbytes_out/sec");
1895 GENGRAPH(
server.ftp.requests,
"server.ftp.requests",
"Server FTP requests/sec");
1896 GENGRAPH(
server.ftp.errors,
"server.ftp.errors",
"Server FTP errors/sec");
1897 GENGRAPH(
server.ftp.kbytes_in.kb,
"server.ftp.kbytes_in",
"Server FTP kbytes_in/sec");
1898 GENGRAPH(
server.ftp.kbytes_out.kb,
"server.ftp.kbytes_out",
"Server FTP kbytes_out/sec");
1900 GENGRAPH(
server.other.requests,
"server.other.requests",
"Server other requests/sec");
1901 GENGRAPH(
server.other.errors,
"server.other.errors",
"Server other errors/sec");
1902 GENGRAPH(
server.other.kbytes_in.kb,
"server.other.kbytes_in",
"Server other kbytes_in/sec");
1903 GENGRAPH(
server.other.kbytes_out.kb,
"server.other.kbytes_out",
"Server other kbytes_out/sec");
1905 GENGRAPH(icp.pkts_sent,
"icp.pkts_sent",
"ICP packets sent/sec");
1906 GENGRAPH(icp.pkts_recv,
"icp.pkts_recv",
"ICP packets received/sec");
1907 GENGRAPH(icp.kbytes_sent.kb,
"icp.kbytes_sent",
"ICP kbytes_sent/sec");
1908 GENGRAPH(icp.kbytes_recv.kb,
"icp.kbytes_recv",
"ICP kbytes_received/sec");
1913 GENGRAPH(unlink.requests,
"unlink.requests",
"Cache File unlink requests/sec");
1914 GENGRAPH(page_faults,
"page_faults",
"System Page Faults/sec");
1915 GENGRAPH(select_loops,
"select_loops",
"System Select Loop calls/sec");
1916 GENGRAPH(cputime,
"cputime",
"CPU utilisation");
void cacheDigestGuessStatsReport(const CacheDigestGuessStats *stats, StoreEntry *sentry, const SBuf &label)
const CachePeers & CurrentCachePeers()
#define SQUIDSBUFPRINT(s)
double statHistDeltaMedian(const StatHist &A, const StatHist &B)
double statHistDeltaPctile(const StatHist &A, const StatHist &B, double pctile)
int conn
the current server connection FD
static char server[MAXLINE]
#define CBDATA_CLASS_INIT(type)
#define CBDATA_CLASS(type)
struct timeval start_time
The time the master transaction started.
class AccessLogEntry::CacheDetails cache
char const * username() const
static void CredentialsCacheStats(StoreEntry *output)
struct ClientHttpRequest::Out out
HttpRequest *const request
ConnStateData * getConn() const
size_t req_sz
raw request size on input, not current request size
StoreEntry * storeEntry() const
const LogTags & loggingTags() const
the processing tags associated with this request transaction.
const AccessLogEntry::Pointer al
access.log entry
static DelayId DelayClient(ClientHttpRequest *, HttpReply *reply=nullptr)
Auth::UserRequest::Pointer auth_user_request
static const int histSize
void append(const char *c, int sz) override
void init(mb_size_t szInit, mb_size_t szMax)
StoreIOState::Pointer sio
void stat(MemBuf *mb) const
ssize_t currentLevel() const
store traffic and resource counters
static Pointer Create(const CommandPointer &cmd)
static Pointer Create(const CommandPointer &cmd)
static Pointer Create60min(const CommandPointer &cmd)
static Pointer Create5min(const CommandPointer &cmd)
store size histograms of network read() from peer server
static Pointer Create(const CommandPointer &cmd)
store service times for 5 and 60 min
static Pointer Create(const CommandPointer &cmd)
void appendf(const char *fmt,...) PRINTF_FORMAT_ARG2
Append operation with printf-style arguments.
struct SquidConfig::@106 onoff
struct SquidConfig::@104 Store
struct SquidConfig::@115 warnings
struct StatCounters::@128 cd
struct StatCounters::@122 client_http
struct StatCounters::@123::@133 all
CacheDigestGuessStats guess
ByteCounter r_kbytes_sent
struct StatCounters::@131 swap
struct StatCounters::@123::@133 other
unsigned long int select_loops
struct StatCounters::@127 dns
uint64_t refusalsDueToZeroSize
uint64_t refusalsDueToTimeLimit
ByteCounter q_kbytes_sent
ByteCounter q_kbytes_recv
struct StatCounters::@124 icp
struct StatCounters::@125 htcp
struct StatCounters::@123::@133 http
struct StatCounters::@126 unlink
ByteCounter r_kbytes_recv
ByteCounter hit_kbytes_out
struct StatCounters::@132 hitValidation
struct StatCounters::@123 server
struct StatCounters::@123::@133 ftp
uint64_t refusalsDueToLocking
void dump(StoreEntry *sentry, StatHistBinDumper *bd) const
StoreSearchPointer theSearch
int locks() const
returns a local concurrent use counter, for debugging
int unlock(const char *context)
swap_status_t swap_status
void lock(const char *context)
bool checkDeferRead(int fd) const
const char * describeTimestamps() const
const char * getMD5Text() const
sfileno swap_filen
unique ID inside a cache_dir for swapped out entries; -1 for others
ping_status_t ping_status
void append(char const *, int) override
Appends a c-string to existing packed data.
store_status_t store_status
virtual StoreEntry * currentItem()=0
virtual bool isDone() const =0
void getStats(StoreInfoStats &stats) const override
collect statistics
char const * termedBuf() const
static void DumpStats(StoreEntry *)
#define debugs(SECTION, LEVEL, CONTENT)
#define N_COUNT_HOUR_HIST
#define EBIT_TEST(flag, bit)
dlink_list ClientActiveRequests
@ RELEASE_REQUEST
prohibits making the key public
@ ENTRY_REVALIDATE_ALWAYS
void eventAdd(const char *name, EVH *func, void *arg, double when, int weight, bool cbdata)
const char * swapStatusStr[]
struct timeval squid_start
const char * pingStatusStr[]
int CacheDigestHashFuncCount
const char * memStatusStr[]
const char * version_string
CacheDigest * store_digest
const char * storeStatusStr[]
double request_failure_ratio
const char * sslGetUserEmail(SSL *ssl)
#define MAX_IPSTRLEN
Length of buffer that needs to be allocated to old a null-terminated IP-string.
bool IsConnOpen(const Comm::ConnectionPointer &conn)
double doublePercent(const double, const double)
size_t GlobalStats(PoolStats &)
void RegisterAction(char const *action, char const *desc, OBJH *handler, int pw_req_flag, int atomic)
class Ping::pingStats_ stats
Controller & Root()
safely access controller singleton
const char * FormatRfc1123(time_t)
void peerDigestStatsReport(const PeerDigest *pd, StoreEntry *e)
#define LOCAL_ARRAY(type, name, size)
static int statObjectsOpenfdFilter(const StoreEntry *e)
static double statPctileSvc(double, int, int)
unsigned int mem_pool_alloc_calls
static OBJH statClientRequests
int stat5minClientRequests(void)
void DumpInfo(Mgr::InfoActionData &stats, StoreEntry *sentry)
void GetInfo(Mgr::InfoActionData &stats)
static OBJH stat_objects_get
static void statAvgDump(StoreEntry *, int minutes, int hours)
void GetServiceTimesStats(Mgr::ServiceTimesActionData &stats)
StatCounters * snmpStatGet(int minutes)
double statRequestHitMemoryRatio(int minutes)
static OBJH stat_vmobjects_get
static void statRegisterWithCacheManager(void)
static OBJH statDigestBlob
static OBJH statUtilization
void DumpServiceTimesStats(Mgr::ServiceTimesActionData &stats, StoreEntry *sentry)
static void statObjectsStart(StoreEntry *sentry, STOBJFLT *filter)
double statRequestHitRatio(int minutes)
static void statCountersInit(StatCounters *C)
void GetAvgStat(Mgr::IntervalActionData &stats, int minutes, int hours)
static StatCounters CountHourHist[N_COUNT_HOUR_HIST]
static OBJH statCountersHistograms
void GetIoStats(Mgr::IoActionData &stats)
double statByteHitRatio(int minutes)
StatCounters CountHist[N_COUNT_HIST]
static OBJH statPeerSelect
void DumpIoStats(Mgr::IoActionData &stats, StoreEntry *sentry)
int STOBJFLT(const StoreEntry *)
static void statStoreEntry(MemBuf *mb, StoreEntry *e)
static int statObjectsVmFilter(const StoreEntry *e)
double statRequestHitDiskRatio(int minutes)
void GetCountersStats(Mgr::CountersActionData &stats)
void DumpMallocStatistics(StoreEntry *sentry)
static void statCountersInitSpecial(StatCounters *C)
static int NCountHourHist
const char * storeEntryFlags(const StoreEntry *entry)
void DumpAvgStat(Mgr::IntervalActionData &stats, StoreEntry *sentry)
void DumpCountersStats(Mgr::CountersActionData &stats, StoreEntry *sentry)
static OBJH statOpenfdObj
static const char * describeStatuses(const StoreEntry *)
static void statAvgTick(void *notused)
static double statCPUUsage(int minutes)
static OBJH statCountersDump
unsigned int mem_pool_free_calls
void storeAppendPrintf(StoreEntry *e, const char *fmt,...)
int storePendingNClients(const StoreEntry *e)
void storeDigestReport(StoreEntry *e)
uint64_t size
Response header and body bytes written to the client connection.
double current_dtime
the current UNIX time in seconds (with microsecond precision)
double tvSubDsec(struct timeval t1, struct timeval t2)
struct timeval current_time
the current UNIX time in timeval {seconds, microseconds} format
SQUIDCEXTERN int xpercentInt(double part, double whole)
SQUIDCEXTERN double xdiv(double nom, double denom)