无法在 Spring Boot 中查看缓存指标(命中/未命中/大小)?

Pun*_*lal 5 java spring spring-boot

我已经实现了两个缓存管理器。一种使用咖啡因,一种使用 redis。我已将它们作为豆子公开,并且它们正在按预期工作。/actuator/metrics 路径中的列表中也没有任何可用的缓存端点。
我只能加载/actuator/caches/actuator/caches/{cacheName}端点。这些端点仅显示正在使用的缓存的名称和类别。我看不到与它们相关的任何指标。我正在使用 springboot 2.1.3 和 spring-boot-actuator。

 @Bean
    public CacheManager caffeine() {
        CaffeineCacheManager caffeineCacheManager = new CaffeineCacheManager();
        caffeineCacheManager.setCaffeine(caffeineCacheBuilder());
        return caffeineCacheManager;
    }

    private Caffeine<Object, Object> caffeineCacheBuilder() {
        return Caffeine.newBuilder().
                initialCapacity(initialCapacity).
                maximumSize(maxCapacity).
                expireAfterAccess(Duration.parse(ttl)).
                recordStats();
    }
Run Code Online (Sandbox Code Playgroud)

Pun*_*lal 2

结果是@Cacheable在运行时动态地创建缓存,因此如果我们希望带注释的缓存具有指标,我们必须在cacheManagerBean中显式设置缓存名称,这反过来又使cacheManager静态。
或者创建一个自定义的registryBinder,如升级到Spring Boot 2后,如何向prometheus公开缓存指标中所述。 并且只有在缓存创建之后才调用register方法。