diff --git a/src/main/java/cn/mesalab/config/ApplicationConfig.java b/src/main/java/cn/mesalab/config/ApplicationConfig.java index 8dea34d..3a78215 100644 --- a/src/main/java/cn/mesalab/config/ApplicationConfig.java +++ b/src/main/java/cn/mesalab/config/ApplicationConfig.java @@ -50,6 +50,9 @@ public class ApplicationConfig { public static final Float BASELINE_TIMES_PERCENT_TIMES = ConfigUtils.getFloatProperty("baseline.times.percent.times"); + public static final Float BASELINE_TYPE2_PERCENTILE = ConfigUtils.getFloatProperty("baseline.type2.percentile"); + public static final Float BASELINE_TYPE3_PERCENTILE = ConfigUtils.getFloatProperty("baseline.type3.percentile"); + public static final String HBASE_TABLE = ConfigUtils.getStringProperty("hbase.table"); public static final String HBASE_ZOOKEEPER_QUORUM= ConfigUtils.getStringProperty("hbase.zookeeper.quorum"); diff --git a/src/main/java/cn/mesalab/service/BaselineSingleThread.java b/src/main/java/cn/mesalab/service/BaselineSingleThread.java index 4af75c7..b3fa542 100644 --- a/src/main/java/cn/mesalab/service/BaselineSingleThread.java +++ b/src/main/java/cn/mesalab/service/BaselineSingleThread.java @@ -7,6 +7,7 @@ import cn.mesalab.utils.DruidUtils; import cn.mesalab.utils.HbaseUtils; import cn.mesalab.utils.RetryUtils; import cn.mesalab.utils.SeriesUtils; +import com.google.common.collect.Lists; import io.vavr.Tuple3; import org.apache.calcite.avatica.AvaticaConnection; import org.apache.calcite.avatica.AvaticaStatement; @@ -39,7 +40,7 @@ public class BaselineSingleThread extends Thread { private final CountDownLatch countDownLatch; private final ArrayList frequencyBinCounter = new ArrayList<>(Collections.nCopies(ApplicationConfig.MONITOR_FREQUENCY_BIN_NUM, 0)); - private final ArrayList generateTypeCounter = new ArrayList<>(Collections.nCopies(2, 0)); + private final ArrayList generateTypeCounter = new ArrayList<>(Collections.nCopies(3, 0)); private int discardBaselineCounter = 0; private ArrayList discardIpList = new ArrayList<>(); @@ -204,12 +205,13 @@ public class BaselineSingleThread extends Thread { // 无周期性 float ipFrequency = ipDruidData.size() / (float) completSeries.size(); updateLogFrequencyCounter(ipFrequency); - // p99/p50 > 10 - if(ipFrequency >ApplicationConfig.BASELINE_HISTORICAL_FREQUENCY_THREAD && p99/p50 > ApplicationConfig.BASELINE_TIMES_PERCENT_TIMES){ + // 频率判断 + if(ipFrequency >ApplicationConfig.BASELINE_HISTORICAL_FREQUENCY_THREAD ){ baselineGenerationType = 2; - Arrays.fill(baselineArr, ipPercentile); + Arrays.fill(baselineArr, SeriesUtils.percentile(series, ApplicationConfig.BASELINE_TYPE2_PERCENTILE)); } else { - return null; + baselineGenerationType = 3; + Arrays.fill(baselineArr, SeriesUtils.percentile(series, ApplicationConfig.BASELINE_TYPE3_PERCENTILE)); } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 87ecfa3..a62f68a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -57,6 +57,9 @@ baseline.exception.percentile=0.99 baseline.exception.fill.percentile=0.99 baseline.rational.percentile=0.99 +baseline.type2.percentile=1 +baseline.type3.percentile=1 + # p99/p50 倍数阈值 baseline.times.percent.times=10