提交 fd663736 编写于 作者: 如梦技术's avatar 如梦技术 🐛

mica-jetcache 完成 metrics #37 #I3PX2K

上级 816ed30b
......@@ -22,6 +22,8 @@ import com.alicp.jetcache.MultiLevelCache;
import com.alicp.jetcache.anno.support.CacheMonitorManager;
import com.alicp.jetcache.support.DefaultCacheMonitor;
import com.alicp.jetcache.support.DefaultMetricsManager;
import io.micrometer.core.instrument.FunctionCounter;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
......@@ -34,6 +36,22 @@ import org.springframework.lang.Nullable;
*/
@SuppressWarnings("unchecked")
public class JetCacheMonitorManager implements CacheMonitorManager, InitializingBean, DisposableBean {
/**
* Prefix used for all jetcache metric names.
*/
public static final String JETCACHE_METRIC_NAME_PREFIX = "jetcache";
/**
* metrics
*/
private static final String METRIC_NAME_JET_CACHE_CACHE_QPS = JETCACHE_METRIC_NAME_PREFIX + ".qps";
private static final String METRIC_NAME_JET_CACHE_CACHE_RATE = JETCACHE_METRIC_NAME_PREFIX + ".rate";
private static final String METRIC_NAME_JET_CACHE_CACHE_GET = JETCACHE_METRIC_NAME_PREFIX + ".get";
private static final String METRIC_NAME_JET_CACHE_CACHE_HIT = JETCACHE_METRIC_NAME_PREFIX + ".hit";
private static final String METRIC_NAME_JET_CACHE_CACHE_FAIL = JETCACHE_METRIC_NAME_PREFIX + ".fail";
private static final String METRIC_NAME_JET_CACHE_CACHE_EXPIRE = JETCACHE_METRIC_NAME_PREFIX + ".expire";
private static final String METRIC_NAME_JET_CACHE_CACHE_AVG_LOAD_TIME = JETCACHE_METRIC_NAME_PREFIX + ".avg.load.time";
private static final String METRIC_NAME_JET_CACHE_CACHE_MAX_LOAD_TIME = JETCACHE_METRIC_NAME_PREFIX + ".max.load.time";
@Nullable
private final DefaultMetricsManager defaultMetricsManager;
private final MeterRegistry meterRegistry;
......@@ -91,8 +109,41 @@ public class JetCacheMonitorManager implements CacheMonitorManager, Initializing
private static void registerMeters(MeterRegistry meterRegistry,
String cacheName,
DefaultCacheMonitor remoteMonitor) {
DefaultCacheMonitor cacheMonitor) {
// "qps", "rate", "get", "hit", "fail", "expire"
Gauge.builder(METRIC_NAME_JET_CACHE_CACHE_QPS, cacheMonitor, (monitor) -> monitor.getCacheStat().qps())
.description("JetCache qps")
.tag("name", cacheName)
.register(meterRegistry);
Gauge.builder(METRIC_NAME_JET_CACHE_CACHE_RATE, cacheMonitor, (monitor) -> monitor.getCacheStat().hitRate())
.description("JetCache rate")
.tag("name", cacheName)
.register(meterRegistry);
FunctionCounter.builder(METRIC_NAME_JET_CACHE_CACHE_GET, cacheMonitor, (monitor) -> monitor.getCacheStat().getGetCount())
.description("JetCache get")
.tag("name", cacheName)
.register(meterRegistry);
FunctionCounter.builder(METRIC_NAME_JET_CACHE_CACHE_HIT, cacheMonitor, (monitor) -> monitor.getCacheStat().getGetHitCount())
.description("JetCache hit")
.tag("name", cacheName)
.register(meterRegistry);
FunctionCounter.builder(METRIC_NAME_JET_CACHE_CACHE_FAIL, cacheMonitor, (monitor) -> monitor.getCacheStat().getGetFailCount())
.description("JetCache fail")
.tag("name", cacheName)
.register(meterRegistry);
FunctionCounter.builder(METRIC_NAME_JET_CACHE_CACHE_EXPIRE, cacheMonitor, (monitor) -> monitor.getCacheStat().getGetExpireCount())
.description("JetCache expire")
.tag("name", cacheName)
.register(meterRegistry);
// "avgLoadTime", "maxLoadTime"
Gauge.builder(METRIC_NAME_JET_CACHE_CACHE_AVG_LOAD_TIME, cacheMonitor, (monitor) -> monitor.getCacheStat().avgLoadTime())
.description("JetCache avg load time")
.tag("name", cacheName)
.register(meterRegistry);
Gauge.builder(METRIC_NAME_JET_CACHE_CACHE_MAX_LOAD_TIME, cacheMonitor, (monitor) -> monitor.getCacheStat().getMaxLoadTime())
.description("JetCache max load time")
.tag("name", cacheName)
.register(meterRegistry);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册