|
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