我在项目中使用Scaffeine(https://github.com/blemale/scaffeine),咖啡因的Scala包装(https://github.com/ben-manes/caffeine)。我的度量API中还嵌入了一个prometheus JMX收集器(https://github.com/Segence/kamon-jmx-collector)。
然而,当我启动我的应用程序时,我在VisualVM中看不到咖啡因的任何MBeans
。
此外,在查看Caffeine项目时,我发现在caffeine/jcache/src/main/resources/reference.conf
中有一个用于JMX监控的配置:
monitoring {
# If cache statistics should be recorded and externalized
statistics = false
# If the configuration should be externalized
management = false
}
两者都设置为false。有没有一种方法可以配置Caffeine,使其向JMX公开MBean?
感谢的Ben Manes
根据普罗米修斯的说法,这就是答案:
import io.prometheus.client.cache.caffeine.CacheMetricsCollector
CacheMetricsCollector cacheMetrics = new CacheMetricsCollector().register();
Cache<String, String> cache = Caffeine.newBuilder().recordStats().build();
cacheMetrics.addCache("myCacheLabel", cache);