版本号:jetcache-core 2.6.5
设置了statIntervalMinutes只能统计该时间区间内的信息,但是我想既统计statIntervalMinutes这个周期内的缓存情况,又想统计整个周期(从jetcache启动到现在)的缓存情况,我该如何配置呢。
查阅了官方手册好像没有看到这种配置方法,使用自定义统计又感觉没有官方的全面和友好。
期待您的回复,谢谢。
k2arahey1#
没有这个支持。不过metrics相关的需求很容易定制。
你提供的ConfigProvider覆盖一下,覆盖metricsMonitorInstaller方法,看一下代码,然后按自己的需求定制,扩展点很多的。
按你的要求,要给cache安装两个monitor,一个定期重置,一个不重置。
bpsygsoo2#
好的,我现在试试,谢谢
wlp8pajw3#
@areyouok 您好,请问如何实现自己的CacheMonitor呢,我看网上的资料说可以实现CacheMonitor接口,如何将其指定给缓存这样就可以自定义统计各类信息了,但是我发现该接口目前就一个方法了。
7tofc5zh4#
@areyouok 你好,我在我的代码里面,定义了一个StatInfoLogger的子类,类似下面这样
`@Servicepublic class MyStatInfoLogger extends StatInfoLogger {public MyStatInfoLogger() {super(true);}
@Override public void accept(StatInfo statInfo) { System.out.println(1); System.out.println(2); }
}`
我想让jetcache打印统计信息时,进入到我自己的accept方法中,我在jetcache-config.yml中进行了如下的配置
jetcache: statIntervalMinutes: 1 stat: logger: com.xxx.MyStatInfoLogger
可实际效果却不尽人意,他并没有进入到我的MyStatInfoLogger 中,因此我也无法自定义统计信息,请问有什么办法可以达到我的目的吗,还是说我的配置不对。
sqougxex5#
你应该提供自己的SpringConfigProvider bean,覆盖metricsMonitorInstaller。
如果是2.6可能是需要提供一个自己的CacheMonitorManager bean。
你需求特殊就需要看下代码,找到扩展点在哪,而不是去网上查找现成的答案。主要的点都在ConfigProvider类里面,这个类是预留了很多扩展的点的。
vof42yt16#
请问如何扩展自己的SpringConfigProvider 呢,每次启动都报错找不到 'com.alicp.jetcache.anno.support.GlobalCacheConfig' : (,我还需要把JetCacheAutoConfiguration也扩展吗
dw1jzc5e7#
对了。 https://github.com/alibaba/jetcache/blob/master/docs/CN/Stat.md 这个上面说的“如果需要定制输出,可以这样做:” 给出的示例应该是有问题的。
zbsbpyhn8#
2.6的JetCacheAutoConfiguration里面定义的SpringConfigProvider有ConditionalOnMissingBean注解,你自己定义一个bean就把它覆盖了。
8条答案
按热度按时间k2arahey1#
没有这个支持。不过metrics相关的需求很容易定制。
你提供的ConfigProvider覆盖一下,覆盖metricsMonitorInstaller方法,看一下代码,然后按自己的需求定制,扩展点很多的。
按你的要求,要给cache安装两个monitor,一个定期重置,一个不重置。
bpsygsoo2#
好的,我现在试试,谢谢
wlp8pajw3#
@areyouok 您好,请问如何实现自己的CacheMonitor呢,我看网上的资料说可以实现CacheMonitor接口,如何将其指定给缓存这样就可以自定义统计各类信息了,但是我发现该接口目前就一个方法了。
7tofc5zh4#
@areyouok 你好,我在我的代码里面,定义了一个StatInfoLogger的子类,类似下面这样
`@Service
public class MyStatInfoLogger extends StatInfoLogger {
public MyStatInfoLogger() {
super(true);
}
}`
我想让jetcache打印统计信息时,进入到我自己的accept方法中,我在jetcache-config.yml中进行了如下的配置
jetcache: statIntervalMinutes: 1 stat: logger: com.xxx.MyStatInfoLogger
可实际效果却不尽人意,他并没有进入到我的MyStatInfoLogger 中,因此我也无法自定义统计信息,请问有什么办法可以达到我的目的吗,还是说我的配置不对。
期待您的回复,谢谢。
sqougxex5#
你应该提供自己的SpringConfigProvider bean,覆盖metricsMonitorInstaller。
如果是2.6可能是需要提供一个自己的CacheMonitorManager bean。
你需求特殊就需要看下代码,找到扩展点在哪,而不是去网上查找现成的答案。主要的点都在ConfigProvider类里面,这个类是预留了很多扩展的点的。
vof42yt16#
请问如何扩展自己的SpringConfigProvider 呢,每次启动都报错找不到 'com.alicp.jetcache.anno.support.GlobalCacheConfig' : (,我还需要把JetCacheAutoConfiguration也扩展吗
dw1jzc5e7#
对了。 https://github.com/alibaba/jetcache/blob/master/docs/CN/Stat.md 这个上面说的“如果需要定制输出,可以这样做:” 给出的示例应该是有问题的。
zbsbpyhn8#
2.6的JetCacheAutoConfiguration里面定义的SpringConfigProvider有ConditionalOnMissingBean注解,你自己定义一个bean就把它覆盖了。