1 /* 2 * Copyright (C) 1996-2021 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 #ifndef SQUID_STORE_STATS_H 10 #define SQUID_STORE_STATS_H 11 12 /// High-level store statistics used by mgr:info action. Used inside PODs! 13 class StoreInfoStats 14 { 15 public: 16 /// Info common to memory and disk parts of the storage. Used inside PODs! 17 class Part 18 { 19 public: 20 double size = 0.0; ///< bytes currently in use 21 double count = 0.0; ///< number of cached objects 22 double capacity = 0.0; ///< the size limit 23 24 /// mean size of a cached object meanObjectSize()25 double meanObjectSize() const { return count > 0 ? size/count : 0.0; } 26 27 /// number of unused bytes available()28 double available() const { return capacity - size; } 29 }; 30 31 /// disk cache (all cache_dirs) storage stats 32 class Swap: public Part 33 { 34 public: 35 double open_disk_fd = 0.0; ///< number of opened disk files 36 }; 37 38 /// memory cache (cache_mem) storage stats 39 class Mem: public Part 40 { 41 public: 42 bool shared = false; ///< whether memory cache is shared among workers 43 }; 44 45 StoreInfoStats &operator +=(const StoreInfoStats &stats); 46 47 Swap swap; ///< cache_mem stats 48 Mem mem; ///< all cache_dirs stats 49 50 /* stats that could be shared by memory and disk storage */ 51 double store_entry_count = 0.0; ///< number of StoreEntry objects in existence 52 double mem_object_count = 0.0; ///< number of MemObject objects in existence 53 }; 54 55 // TODO: this should be adjusted for use in StoreIoActionData, DiskdActionData 56 /// Store statistics related to low-level I/O. 57 class StoreIoStats 58 { 59 public: 60 StoreIoStats(); 61 62 struct { 63 int calls; 64 int select_fail; 65 int create_fail; 66 int success; 67 } create; ///< cache_dir selection and disk entry creation stats 68 }; 69 70 #endif /* SQUID_STORE_STATS_H */ 71 72