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

时间:2019-05-14 14:04:13

标签: spring spring-boot caching prometheus micrometer

我正在使用Spring Boot 1.5,并且无法在/prometheus端点中公开番石榴缓存统计信息。最终,我可以将其公开为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;
    }

我也在使用.recordStats()方法。

1 个答案:

答案 0 :(得分:0)

您可以使用GuavaCacheMetrics binder

来监控番石榴茶饼的度量标准
GuavaCacheBuilder.monitor(meterRegistry, aCache, "myCacheName")

请注意,由于您将缓存生成器与CacheManager一起使用,因此需要为每个单独的缓存进行monitor调用。

还有其他方法可以解决此问题,我相信CacheManager会自动安装在SpringBot 2.x中。因此,升级将为您提供更简单的集成。