I'm using Caffeine cache for Java Spring Boot com.github.ben-manes.caffeine:caffeine:3.1.1
. This is my cache configuration class:
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.CacheManager;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class CacheConfig {
@Bean
public Caffeine<Object, Object> caffeineConfig() {
return Caffeine.newBuilder()
.maximumSize(10000)
.recordStats()
.removalListener((key, value, removalCause) -> {
// TODO: log
});
}
@Bean
public CacheManager cacheManager(Caffeine<Object, Object> caffeine) {
CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
caffeineCacheManager.setCaffeine(caffeine);
List<String> list = new ArrayList<>();
list.add("AsyncTest.getStr");
list.add("AsyncTest.getStr2");
list.add("AsyncTest.getStr3");
list.add("AsyncTest.getStr4");
list.add("AsyncTest.getStr5");
caffeineCacheManager.setCacheNames(list);
return caffeineCacheManager;
}
}
I also have test methods with Cacheable
annotation like this:
@Cacheable("AsyncTest.getStr")
public String getStr(int i) {
return "abc";
}
and finally I have a test controller which populates cache:
for (int i = 0; i < 1000; i++) {
asyncTest.getStr(i);
}
However, when I check Spring actuator metrics I only see one cache-related metric: size
"myapp.cache.size": 250.0,
"myapp.cache.size.tags": "{name=AsyncTest.getStr, cache=AsyncTest.getStr, cacheManager=cacheManager}",
However, why don't I see other metrics like cache.gets
, cache.puts
etc. as should be provided by Micrometer?