Spring 如何公开Guava缓存的缓存统计信息

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();

我使用的是spring boot 1.5,无法在
/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")