From ba52aa367476c6cdeabdee4474c1cbd15d7d0da0 Mon Sep 17 00:00:00 2001 From: Jon Schneider Date: Mon, 5 Feb 2018 21:09:10 -0600 Subject: [PATCH] Align with Micrometer's standardized cache metrics See gh-11918 --- .../cache/EhCache2CacheMeterBinderProvider.java | 2 +- .../cache/HazelcastCacheMeterBinderProvider.java | 2 +- .../cache/JCacheCacheMeterBinderProvider.java | 2 +- .../metrics/cache/CacheMetricsRegistrarTests.java | 4 ++-- .../HazelcastCacheMeterBinderProviderTests.java | 15 ++++++++++----- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/EhCache2CacheMeterBinderProvider.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/EhCache2CacheMeterBinderProvider.java index 53a775da9c9..0bf3ce1d391 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/EhCache2CacheMeterBinderProvider.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/EhCache2CacheMeterBinderProvider.java @@ -34,7 +34,7 @@ public class EhCache2CacheMeterBinderProvider @Override public MeterBinder getMeterBinder(EhCacheCache cache, String name, Iterable tags) { - return new EhCache2Metrics(cache.getNativeCache(), name, tags); + return new EhCache2Metrics(cache.getNativeCache(), tags); } } diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProvider.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProvider.java index 660bcee0b43..1503ea0a0b3 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProvider.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProvider.java @@ -36,7 +36,7 @@ public class HazelcastCacheMeterBinderProvider public MeterBinder getMeterBinder(HazelcastCache cache, String name, Iterable tags) { return new HazelcastCacheMetrics((IMap) cache.getNativeCache(), - name, tags); + tags); } } diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/JCacheCacheMeterBinderProvider.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/JCacheCacheMeterBinderProvider.java index 65188c5a920..95dddd0e240 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/JCacheCacheMeterBinderProvider.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/cache/JCacheCacheMeterBinderProvider.java @@ -34,7 +34,7 @@ public class JCacheCacheMeterBinderProvider @Override public MeterBinder getMeterBinder(JCacheCache cache, String name, Iterable tags) { - return new JCacheMetrics(cache.getNativeCache(), name, tags); + return new JCacheMetrics(cache.getNativeCache(), tags); } } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/CacheMetricsRegistrarTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/CacheMetricsRegistrarTests.java index 41ebac1e17c..c9278c57cb3 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/CacheMetricsRegistrarTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/CacheMetricsRegistrarTests.java @@ -42,7 +42,7 @@ public class CacheMetricsRegistrarTests { "root", Collections.singleton(new CaffeineCacheMeterBinderProvider())); assertThat(registrar.bindCacheToRegistry( new CaffeineCache("test", Caffeine.newBuilder().build()))).isTrue(); - assertThat(this.meterRegistry.get("root.requests").tags("name", "test").meter()) + assertThat(this.meterRegistry.get("cache.gets").tags("name", "test").meter()) .isNotNull(); } @@ -52,7 +52,7 @@ public class CacheMetricsRegistrarTests { "root", Collections.emptyList()); assertThat(registrar.bindCacheToRegistry( new CaffeineCache("test", Caffeine.newBuilder().build()))).isFalse(); - assertThat(this.meterRegistry.find("root.requests").tags("name", "test").meter()) + assertThat(this.meterRegistry.find("cache.gets").tags("name", "test").meter()) .isNull(); } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProviderTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProviderTests.java index 99f0c4a3dcc..65ad47461ee 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProviderTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/cache/HazelcastCacheMeterBinderProviderTests.java @@ -24,7 +24,7 @@ import io.micrometer.core.instrument.binder.MeterBinder; import io.micrometer.core.instrument.binder.cache.HazelcastCacheMetrics; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -37,12 +37,17 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(MockitoJUnitRunner.class) public class HazelcastCacheMeterBinderProviderTests { - @Mock - private IMap nativeCache; - + @SuppressWarnings("unchecked") @Test public void hazelcastCacheProvider() { - HazelcastCache cache = new HazelcastCache(this.nativeCache); + IMap nativeCache = Mockito.mock(IMap.class); + + // It is not possible to create a real Hazelcast cache with a null name, + // so Micrometer's Hazelcast binder uses the name from the cache for its tag value. + Mockito.when(nativeCache.getName()).thenReturn("test"); + + HazelcastCache cache = new HazelcastCache(nativeCache); + MeterBinder meterBinder = new HazelcastCacheMeterBinderProvider() .getMeterBinder(cache, "test", Collections.emptyList()); assertThat(meterBinder).isInstanceOf(HazelcastCacheMetrics.class);