diff --git a/src/main/java/cn/langpy/kotime/config/DefaultConfig.java b/src/main/java/cn/langpy/kotime/config/DefaultConfig.java index 2ce8286..7fb6519 100644 --- a/src/main/java/cn/langpy/kotime/config/DefaultConfig.java +++ b/src/main/java/cn/langpy/kotime/config/DefaultConfig.java @@ -16,6 +16,7 @@ public class DefaultConfig { private String logLanguage; private Boolean logEnable; private Double threshold; + private Double discardRate; private String pointcut; private Boolean exceptionEnable; private Boolean paramAnalyse; @@ -30,6 +31,14 @@ public class DefaultConfig { private String userName; private String password; + public Double getDiscardRate() { + return discardRate; + } + + public void setDiscardRate(Double discardRate) { + this.discardRate = discardRate; + } + public Boolean getDataReset() { return dataReset; } diff --git a/src/main/java/cn/langpy/kotime/config/LoadConfig.java b/src/main/java/cn/langpy/kotime/config/LoadConfig.java index efa1116..219d686 100644 --- a/src/main/java/cn/langpy/kotime/config/LoadConfig.java +++ b/src/main/java/cn/langpy/kotime/config/LoadConfig.java @@ -74,6 +74,7 @@ public class LoadConfig { config.setContextPath(defaultConfig.getContextPath()); config.setLanguage(defaultConfig.getLanguage() == null ? "chinese" : defaultConfig.getLanguage()); config.setThreadNum(defaultConfig.getThreadNum() == null ? 2 : defaultConfig.getThreadNum()); + config.setDiscardRate(defaultConfig.getDiscardRate() == null ? 0.3 : defaultConfig.getDiscardRate()); config.setAuthEnable(defaultConfig.getAuthEnable() == null ? false : defaultConfig.getAuthEnable()); config.setParamAnalyse(defaultConfig.getParamAnalyse() == null ? true : defaultConfig.getParamAnalyse()); config.setDataReset(defaultConfig.getDataReset() == null ? false : defaultConfig.getDataReset()); diff --git a/src/main/java/cn/langpy/kotime/data/DataBase.java b/src/main/java/cn/langpy/kotime/data/DataBase.java index 509a14e..070e116 100644 --- a/src/main/java/cn/langpy/kotime/data/DataBase.java +++ b/src/main/java/cn/langpy/kotime/data/DataBase.java @@ -150,6 +150,9 @@ public class DataBase implements GraphService { try { List> query = DataBaseUtil.query(getWriteConnection(), KoSqlConstant.queryMethodRe, new Object[]{sourceMethodNode.getId() + targetMethodNode.getId()}); if (query.size() > 0) { + if (Math.random() old = query.get(0); double oldAvg = (double)old.get("avg_run_time"); double oldMax = (double)old.get("max_run_time"); @@ -215,6 +218,9 @@ public class DataBase implements GraphService { }; DataBaseUtil.insert(getWriteConnection(), KoSqlConstant.addParamsAna, params); } else { + if (Math.random() old = query.get(0); double oldAvg = (double)old.get("avg_run_time"); double oldMax = (double)old.get("max_run_time"); diff --git a/src/main/java/cn/langpy/kotime/data/MemoryBase.java b/src/main/java/cn/langpy/kotime/data/MemoryBase.java index 01d9779..9c1c698 100644 --- a/src/main/java/cn/langpy/kotime/data/MemoryBase.java +++ b/src/main/java/cn/langpy/kotime/data/MemoryBase.java @@ -64,6 +64,9 @@ public class MemoryBase implements GraphService { if (paramValueMetricMap.containsKey(methodId)) { Map paramMetricMap = paramValueMetricMap.get(methodId); if (paramMetricMap.containsKey(paramsKey)) { + if (Math.random() paramMetricMap = query(key, Map.class); if (paramMetricMap.containsKey(paramsKey)) { + if (Math.random()threshold", "sourceType": "cn.langpy.kotime.config.DefaultConfig" }, + { + "name": "ko-time.discardRate", + "type": "java.lang.Double", + "defaultValue": 0.3, + "description": "data will be discard if Math.random()