Spring 如何公开Guava缓存的缓存统计信息
我使用的是spring boot 1.5,无法在Spring 如何公开Guava缓存的缓存统计信息,spring,spring-boot,caching,prometheus,micrometer,Spring,Spring Boot,Caching,Prometheus,Micrometer,我使用的是spring boot 1.5,无法在/prometheus端点中公开guava缓存统计信息。最终我可以将它公开为JMX,但我不知道如何连接这些东西。有没有更简单的方法 我使用缓存生成器创建缓存,如下所示: @Bean @Primary public CacheManager cacheManager() { final GuavaCacheManager cacheManager = new GuavaCacheManager();
/prometheus
端点中公开guava缓存统计信息。最终我可以将它公开为JMX,但我不知道如何连接这些东西。有没有更简单的方法
我使用缓存生成器创建缓存,如下所示:
@Bean
@Primary
public CacheManager cacheManager() {
final GuavaCacheManager cacheManager = new GuavaCacheManager();
final CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder()
.maximumSize(5000)
.recordStats()
.expireAfterWrite(1, TimeUnit.HOURS);
cacheManager.setCacheBuilder(cacheBuilder);
cacheManager.setCacheNames(Lists.newArrayList("TEST_CACHE"));
return cacheManager;
}
@Bean
@初级的
公共缓存管理器缓存管理器(){
最终GuavacheManager cacheManager=新的GuavacheManager();
final CacheBuilder CacheBuilder=CacheBuilder.newBuilder()
.最大尺寸(5000)
.recordStats()
.写入后过期(1,时间单位为小时);
setCacheBuilder(cacheBuilder);
setCacheNames(list.newArrayList(“TEST_CACHE”);
返回缓存管理器;
}
我也在使用
.recordStats()
方法。您可以使用
请注意,由于您将缓存生成器与CacheManager
一起使用,因此需要对每个缓存进行monitor
调用
还有其他方法可以实现这一点,
CacheManager
是在Springbot2.x中自动安装的。因此,升级将为您提供更简单的集成。事实是,它确实需要一个从com.google.common.cache.cache扩展而来的缓存,但从CacheManager获得的缓存类是org.springframework包中的Guavache。因此,我无法使用此方法。谢谢,我只想指出,它与CacheBuilder
中的recordStats()
方法配合使用,否则所有指标都将报告为零。
GuavaCacheBuilder.monitor(meterRegistry, aCache, "myCacheName")