Skip to content

Commit 27cefa7

Browse files
committed
Add Builder pattern for caffeine CacheMetricsCollector
Signed-off-by: Jean Hominal <[email protected]>
1 parent 3c2f60b commit 27cefa7

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* <pre>{@code
2828
* // Note that `recordStats()` is required to gather non-zero statistics
2929
* Cache<String, String> cache = Caffeine.newBuilder().recordStats().build();
30-
* CacheMetricsCollector cacheMetrics = new CacheMetricsCollector();
30+
* CacheMetricsCollector cacheMetrics = CacheMetricsCollector.builder().build();
3131
* PrometheusRegistry.defaultRegistry.register(cacheMetrics);
3232
* cacheMetrics.addCache("mycache", cache);
3333
*
@@ -271,4 +271,14 @@ public MetricSnapshots collect() {
271271
public List<String> getPrometheusNames() {
272272
return ALL_METRIC_NAMES;
273273
}
274+
275+
public static Builder builder() {
276+
return new Builder();
277+
}
278+
279+
public static class Builder {
280+
public CacheMetricsCollector build() {
281+
return new CacheMetricsCollector();
282+
}
283+
}
274284
}

prometheus-metrics-instrumentation-caffeine/src/test/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollectorTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void cacheExposesMetricsForHitMissAndEviction() {
3232
final Cache<String, String> cache =
3333
Caffeine.newBuilder().maximumSize(2).recordStats().executor(Runnable::run).build();
3434

35-
final CacheMetricsCollector collector = new CacheMetricsCollector();
35+
final CacheMetricsCollector collector = CacheMetricsCollector.builder().build();
3636
collector.addCache("users", cache);
3737

3838
final PrometheusRegistry registry = new PrometheusRegistry();
@@ -89,7 +89,7 @@ public void weightedCacheExposesMetricsForHitMissAndEvictionWeightedSize() {
8989
.executor(Runnable::run)
9090
.build();
9191

92-
final CacheMetricsCollector collector = new CacheMetricsCollector();
92+
final CacheMetricsCollector collector = CacheMetricsCollector.builder().build();
9393
collector.addCache("users", cache);
9494

9595
final PrometheusRegistry registry = new PrometheusRegistry();
@@ -148,7 +148,7 @@ public void loadingCacheExposesMetricsForLoadsAndExceptions() throws Exception {
148148
.thenReturn("Third User");
149149

150150
final LoadingCache<String, String> cache = Caffeine.newBuilder().recordStats().build(loader);
151-
final CacheMetricsCollector collector = new CacheMetricsCollector();
151+
final CacheMetricsCollector collector = CacheMetricsCollector.builder().build();
152152

153153
collector.addCache("loadingusers", cache);
154154

@@ -180,7 +180,7 @@ public void loadingCacheExposesMetricsForLoadsAndExceptions() throws Exception {
180180

181181
@Test
182182
public void getPrometheusNamesHasSameSizeAsMetricSizeWhenScraping() {
183-
final CacheMetricsCollector collector = new CacheMetricsCollector();
183+
final CacheMetricsCollector collector = CacheMetricsCollector.builder().build();
184184

185185
final PrometheusRegistry registry = new PrometheusRegistry();
186186
registry.register(collector);
@@ -193,7 +193,7 @@ public void getPrometheusNamesHasSameSizeAsMetricSizeWhenScraping() {
193193

194194
@Test
195195
public void collectedMetricNamesAreKnownPrometheusNames() {
196-
final CacheMetricsCollector collector = new CacheMetricsCollector();
196+
final CacheMetricsCollector collector = CacheMetricsCollector.builder().build();
197197

198198
final PrometheusRegistry registry = new PrometheusRegistry();
199199
registry.register(collector);

0 commit comments

Comments
 (0)