|
55 | 55 | public class CacheMetricsCollector implements MultiCollector { |
56 | 56 | private static final double NANOSECONDS_PER_SECOND = 1_000_000_000.0; |
57 | 57 |
|
| 58 | + private static final String METRIC_NAME_CACHE_HIT = "caffeine_cache_hit"; |
| 59 | + private static final String METRIC_NAME_CACHE_MISS = "caffeine_cache_miss"; |
| 60 | + private static final String METRIC_NAME_CACHE_REQUESTS = "caffeine_cache_requests"; |
| 61 | + private static final String METRIC_NAME_CACHE_EVICTION = "caffeine_cache_eviction"; |
| 62 | + private static final String METRIC_NAME_CACHE_EVICTION_WEIGHT = "caffeine_cache_eviction_weight"; |
| 63 | + private static final String METRIC_NAME_CACHE_LOAD_FAILURE = "caffeine_cache_load_failure"; |
| 64 | + private static final String METRIC_NAME_CACHE_LOADS = "caffeine_cache_loads"; |
| 65 | + private static final String METRIC_NAME_CACHE_ESTIMATED_SIZE = "caffeine_cache_estimated_size"; |
| 66 | + private static final String METRIC_NAME_CACHE_LOAD_DURATION_SECONDS = |
| 67 | + "caffeine_cache_load_duration_seconds"; |
| 68 | + |
| 69 | + private static final List<String> ALL_METRIC_NAMES = |
| 70 | + Collections.unmodifiableList( |
| 71 | + Arrays.asList( |
| 72 | + METRIC_NAME_CACHE_HIT, |
| 73 | + METRIC_NAME_CACHE_MISS, |
| 74 | + METRIC_NAME_CACHE_REQUESTS, |
| 75 | + METRIC_NAME_CACHE_EVICTION, |
| 76 | + METRIC_NAME_CACHE_EVICTION_WEIGHT, |
| 77 | + METRIC_NAME_CACHE_LOAD_FAILURE, |
| 78 | + METRIC_NAME_CACHE_LOADS, |
| 79 | + METRIC_NAME_CACHE_ESTIMATED_SIZE, |
| 80 | + METRIC_NAME_CACHE_LOAD_DURATION_SECONDS)); |
| 81 | + |
58 | 82 | protected final ConcurrentMap<String, Cache<?, ?>> children = new ConcurrentHashMap<>(); |
59 | 83 |
|
60 | 84 | /** |
@@ -107,40 +131,40 @@ public MetricSnapshots collect() { |
107 | 131 | final List<String> labelNames = Arrays.asList("cache"); |
108 | 132 |
|
109 | 133 | final CounterSnapshot.Builder cacheHitTotal = |
110 | | - CounterSnapshot.builder().name("caffeine_cache_hit").help("Cache hit totals"); |
| 134 | + CounterSnapshot.builder().name(METRIC_NAME_CACHE_HIT).help("Cache hit totals"); |
111 | 135 |
|
112 | 136 | final CounterSnapshot.Builder cacheMissTotal = |
113 | | - CounterSnapshot.builder().name("caffeine_cache_miss").help("Cache miss totals"); |
| 137 | + CounterSnapshot.builder().name(METRIC_NAME_CACHE_MISS).help("Cache miss totals"); |
114 | 138 |
|
115 | 139 | final CounterSnapshot.Builder cacheRequestsTotal = |
116 | 140 | CounterSnapshot.builder() |
117 | | - .name("caffeine_cache_requests") |
| 141 | + .name(METRIC_NAME_CACHE_REQUESTS) |
118 | 142 | .help("Cache request totals, hits + misses"); |
119 | 143 |
|
120 | 144 | final CounterSnapshot.Builder cacheEvictionTotal = |
121 | 145 | CounterSnapshot.builder() |
122 | | - .name("caffeine_cache_eviction") |
| 146 | + .name(METRIC_NAME_CACHE_EVICTION) |
123 | 147 | .help("Cache eviction totals, doesn't include manually removed entries"); |
124 | 148 |
|
125 | 149 | final GaugeSnapshot.Builder cacheEvictionWeight = |
126 | 150 | GaugeSnapshot.builder() |
127 | | - .name("caffeine_cache_eviction_weight") |
| 151 | + .name(METRIC_NAME_CACHE_EVICTION_WEIGHT) |
128 | 152 | .help("Cache eviction weight"); |
129 | 153 |
|
130 | 154 | final CounterSnapshot.Builder cacheLoadFailure = |
131 | | - CounterSnapshot.builder().name("caffeine_cache_load_failure").help("Cache load failures"); |
| 155 | + CounterSnapshot.builder().name(METRIC_NAME_CACHE_LOAD_FAILURE).help("Cache load failures"); |
132 | 156 |
|
133 | 157 | final CounterSnapshot.Builder cacheLoadTotal = |
134 | 158 | CounterSnapshot.builder() |
135 | | - .name("caffeine_cache_loads") |
| 159 | + .name(METRIC_NAME_CACHE_LOADS) |
136 | 160 | .help("Cache loads: both success and failures"); |
137 | 161 |
|
138 | 162 | final GaugeSnapshot.Builder cacheSize = |
139 | | - GaugeSnapshot.builder().name("caffeine_cache_estimated_size").help("Estimated cache size"); |
| 163 | + GaugeSnapshot.builder().name(METRIC_NAME_CACHE_ESTIMATED_SIZE).help("Estimated cache size"); |
140 | 164 |
|
141 | 165 | final SummarySnapshot.Builder cacheLoadSummary = |
142 | 166 | SummarySnapshot.builder() |
143 | | - .name("caffeine_cache_load_duration_seconds") |
| 167 | + .name(METRIC_NAME_CACHE_LOAD_DURATION_SECONDS) |
144 | 168 | .help("Cache load duration: both success and failures"); |
145 | 169 |
|
146 | 170 | for (final Map.Entry<String, Cache<?, ?>> c : children.entrySet()) { |
@@ -223,4 +247,9 @@ public MetricSnapshots collect() { |
223 | 247 | .metricSnapshot(cacheLoadSummary.build()) |
224 | 248 | .build(); |
225 | 249 | } |
| 250 | + |
| 251 | + @Override |
| 252 | + public List<String> getPrometheusNames() { |
| 253 | + return ALL_METRIC_NAMES; |
| 254 | + } |
226 | 255 | } |
0 commit comments