package org.spotter.ext.detection.continuousViolation.strategies; import org.lpe.common.util.NumericPairList; import org.spotter.ext.detection.continuousViolation.IViolationAnalysisStrategy; import org.spotter.ext.detection.continuousViolation.util.AnalysisConfig; import org.spotter.ext.detection.utils.Utils; /** * Analyzes continuous violation of performance requirements by percentile value * analysis. * * @author Alexander Wert * */ public class MovingPercentileStrategy implements IViolationAnalysisStrategy { @Override public boolean analyze(NumericPairList<Long, Double> responsetimeSeries, AnalysisConfig analysisConfig, double perfReqThreshold, double perfReqConfidence) { double percentileValue = 0.0; for (int i = 0; i < responsetimeSeries.size(); i++) { percentileValue = Utils.calculateWindowPercentile(responsetimeSeries, perfReqConfidence, i, analysisConfig.getMvaWindowSize()); if (percentileValue < perfReqThreshold) { return false; } } return true; } }