1

我有一个 Spring Boot 2 应用程序,它Caffeine已经实现了缓存管理器的缓存。缓存以标准方式实现,带有@Cacheable, @CacheEvict,@CachePut注释。

我迁移了应用程序以Redis在 pod 之间分配缓存。

现在的问题在于指标。在迁移之前Caffeine暴露了缓存指标,如cache_puts_total,cache_gets_total等,现在什么都没有了。是否为度量标准实施了一些措施RedisCacheManager?我什么也找不到。

4

1 回答 1

2

不幸的是,正如您在 Spring Boot 文档中看到的那样:52. Metrics,默认情况下,Spring Boot 不提供 Redis 的缓存统计信息:

默认情况下,Spring Boot 提供 EhCache、Hazelcast、Infinispan、JCache 和 Guava 的缓存统计信息。如果您最喜欢的缓存库不支持开箱即用,您可以添加其他 CacheStatisticsProvider bean。

作为自己实现的另一种选择,您可以使用Redisson。这个 Redis 客户端带有与 Spring 的集成,它公开了 Prometheus 指标。您的指标看起来就像您暗示的那样:

# HELP cache_gets_total the number of times cache lookup methods have returned an uncached (newly loaded) value, or null
# TYPE cache_gets_total counter
cache_gets_total{cache="...",cacheManager="...",name="...",result="miss",} 0.0
cache_gets_total{cache="...",cacheManager="...",name="...",result="hit",} 0.0

# HELP cache_puts_total The number of entries added to the cache
# TYPE cache_puts_total counter
cache_puts_total{cache="...",cacheManager="...",name="...",} 0.0
于 2020-12-23T18:06:19.963 回答