diff --git a/platform-metrics/src/main/java/org/hypertrace/core/serviceframework/metrics/PlatformMetricsRegistry.java b/platform-metrics/src/main/java/org/hypertrace/core/serviceframework/metrics/PlatformMetricsRegistry.java index e6bc24e..a2c4030 100644 --- a/platform-metrics/src/main/java/org/hypertrace/core/serviceframework/metrics/PlatformMetricsRegistry.java +++ b/platform-metrics/src/main/java/org/hypertrace/core/serviceframework/metrics/PlatformMetricsRegistry.java @@ -464,7 +464,7 @@ public static Cache registerAndGetCache( CacheBuilder guavaCacheBuilder, CacheLoader loader, Map tags) { - reportCacheMaxSize(cacheName, guavaCacheBuilder); + reportCacheMaxSize(cacheName, guavaCacheBuilder, tags); Cache guavaCache = guavaCacheBuilder.build(loader); GuavaCacheMetrics.monitor(meterRegistry, guavaCache, cacheName, toIterable(tags)); return guavaCache; @@ -476,19 +476,21 @@ public static Cache registerAndGetCache( */ public static Cache registerAndGetCache( String cacheName, CacheBuilder guavaCacheBuilder, Map tags) { - reportCacheMaxSize(cacheName, guavaCacheBuilder); + reportCacheMaxSize(cacheName, guavaCacheBuilder, tags); Cache guavaCache = guavaCacheBuilder.build(); GuavaCacheMetrics.monitor(meterRegistry, guavaCache, cacheName, toIterable(tags)); return guavaCache; } private static void reportCacheMaxSize( - String cacheName, CacheBuilder guavaCacheBuilder) { + String cacheName, CacheBuilder guavaCacheBuilder, Map tags) { try { Field maximumSizeField = guavaCacheBuilder.getClass().getDeclaredField("maximumSize"); maximumSizeField.setAccessible(true); long maximumSize = maximumSizeField.getLong(guavaCacheBuilder); - registerGauge(CACHE_MAX_SIZE_GAUGE, Map.of("cache", cacheName), maximumSize); + Map tagsCopy = new HashMap<>(tags); + tagsCopy.put("cache", cacheName); + registerGauge(CACHE_MAX_SIZE_GAUGE, tagsCopy, maximumSize); } catch (NoSuchFieldException | IllegalAccessException e) { // ignore }