public static Alert getOpenAlert() { List<Set<ConditionEval>> satisfyingEvals = new ArrayList<>(); Data rtBadData1 = Data.forNumeric(firingCondition.getDataId(), System.currentTimeMillis(), 1900d); ThresholdConditionEval eval1 = new ThresholdConditionEval(firingCondition, rtBadData1); Set<ConditionEval> evalSet1 = new HashSet<>(); evalSet1.add(eval1); satisfyingEvals.add(evalSet1); // 5 seconds later Data rtBadData2 = Data.forNumeric(firingCondition.getDataId(), System.currentTimeMillis() + 5000, 1800d); ThresholdConditionEval eval2 = new ThresholdConditionEval(firingCondition, rtBadData2); Set<ConditionEval> evalSet2 = new HashSet<>(); evalSet2.add(eval2); satisfyingEvals.add(evalSet2); Alert openAlert = new Alert(trigger.getTenantId(), trigger, firingDampening, satisfyingEvals); return openAlert; }
public RateConditionEval(RateCondition condition, Data data, Data previousData) { super( Type.RATE, condition.match( data.getTimestamp(), Double.valueOf(data.getValue()), previousData.getTimestamp(), Double.valueOf(previousData.getValue())), data.getTimestamp(), data.getContext()); this.condition = condition; this.time = data.getTimestamp(); this.value = Double.valueOf(data.getValue()); this.previousTime = previousData.getTimestamp(); this.previousValue = Double.valueOf(previousData.getValue()); this.rate = condition.getRate(this.time, this.value, this.previousTime, this.previousValue); }
public static Alert resolveAlert(Alert unresolvedAlert) { List<Set<ConditionEval>> resolvedEvals = new ArrayList<>(); Data rtGoodData = Data.forNumeric(autoResolveCondition.getDataId(), System.currentTimeMillis() + 20000, 900d); ThresholdConditionEval eval1 = new ThresholdConditionEval(autoResolveCondition, rtGoodData); Set<ConditionEval> evalSet1 = new HashSet<>(); evalSet1.add(eval1); resolvedEvals.add(evalSet1); unresolvedAlert.setResolvedEvalSets(resolvedEvals); unresolvedAlert.setStatus(Alert.Status.RESOLVED); unresolvedAlert.setResolvedBy(RESOLVED_BY); unresolvedAlert.addNote(RESOLVED_BY, RESOLVED_NOTES); unresolvedAlert.setResolvedTime(System.currentTimeMillis()); return unresolvedAlert; }