|
|
@@ -447,6 +447,7 @@ public class ZoneDataWarnHandler {
|
|
|
final String doField = rules.get(0).getConditions().get(0).getFormat();
|
|
|
final String metricId = rules.get(0).getConditions().get(0).getKey();
|
|
|
final String fieldUnit = rules.get(0).getConditions().get(0).getUnit();
|
|
|
+ final String threshold = rules.get(0).getConditions().get(0).getThreshold();
|
|
|
String[] storeTagAndBackTag = doField.split("@");
|
|
|
if (storeTagAndBackTag == null || storeTagAndBackTag.length < 2){
|
|
|
step = String.format("Format param invalid in rules");
|
|
|
@@ -457,7 +458,7 @@ public class ZoneDataWarnHandler {
|
|
|
, planDetail.getFrequencyUnit()
|
|
|
, planDetail.getItemKey()
|
|
|
, zoneId, thisTempStep.getQueryBeginUTC(), thisTempStep.getQueryEndUTC()
|
|
|
- , metricId , planDetail.getDoDb(), doField, planDetail.getDoTime());
|
|
|
+ , metricId , threshold, planDetail.getDoDb(), doField, planDetail.getDoTime());
|
|
|
if (sampleRes != null && sampleRes.getCode() == ResponseCode.RESULT_NORMAL.toInt()){
|
|
|
zoneStatsData = sampleRes.getData();
|
|
|
}
|
|
|
@@ -478,6 +479,7 @@ public class ZoneDataWarnHandler {
|
|
|
if (sampleRecordTm <= 0L)
|
|
|
continue;
|
|
|
|
|
|
+ final String eventPrefix = sampleItem.getRemark();
|
|
|
boolean matched = false;
|
|
|
OrdWarnPlanRules findRule = null;
|
|
|
int sampleRecordTmUnit = TimeTool.getMonthIndex(sampleRecordTm);
|
|
|
@@ -545,7 +547,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -581,7 +583,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -614,7 +616,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -658,7 +660,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -681,7 +683,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -709,7 +711,7 @@ public class ZoneDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
- JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime());
|
|
|
+ JPOrdWarnEventInfo newEvent = new JPOrdWarnEventInfo(planDetail, rules, thisTempStep, thisTempStep.getLastEventTime(), eventPrefix);
|
|
|
newEvent2Gen.put(newEvent.getUid(), newEvent);
|
|
|
thisTempStep.setLastEventId(newEvent.getUid());
|
|
|
thisTempStep.setLastEventAction(newEvent.getAction());
|
|
|
@@ -799,7 +801,7 @@ public class ZoneDataWarnHandler {
|
|
|
return code;
|
|
|
}
|
|
|
|
|
|
- public static TRecordRes<DateKeyValue> getSampleDataFromDB(String fieldUnit, String frequencyUnit, String itemKey, String objId, long beginTm, long endTm, String metricId, String doDb, String doField, String doTime){
|
|
|
+ public static TRecordRes<DateKeyValue> getSampleDataFromDB(String fieldUnit, String frequencyUnit, String itemKey, String objId, long beginTm, long endTm, String metricId, String threshold, String doDb, String doField, String doTime){
|
|
|
TRecordRes<DateKeyValue> oRes = new TRecordRes<>(ResponseCode.RESULT_BAD.toInt());
|
|
|
String desTable = doDb.split("@")[1];
|
|
|
String storeField = doField.split("@")[0];
|
|
|
@@ -884,6 +886,13 @@ public class ZoneDataWarnHandler {
|
|
|
, filterExtend.toString());
|
|
|
}
|
|
|
break;
|
|
|
+ case WarnItemType.RBI:{
|
|
|
+ arrDbs = getMixDataDBService().batchQueryRbiRankData(desTable
|
|
|
+ , objId
|
|
|
+ , threshold
|
|
|
+ , filterExtend.toString());
|
|
|
+ }
|
|
|
+ break;
|
|
|
default:{
|
|
|
arrDbs = getMixDataDBService().batchQueryL2L3Data(desTable
|
|
|
, queryField
|
|
|
@@ -919,6 +928,23 @@ public class ZoneDataWarnHandler {
|
|
|
, TimeTool.convertUTC2DateStr(thisTm, TimeTool.TIMESTAMP_FORMAT)));
|
|
|
}
|
|
|
}
|
|
|
+ }else if (WarnItemType.RBI.equals(itemKey)){
|
|
|
+ arrRecordRes = new ArrayList<>();
|
|
|
+ Map<String, String> date2ZoneNames = new HashMap<>();
|
|
|
+ for (Map<String, Object> itemDb:arrDbs){
|
|
|
+ String date = (String)itemDb.get("date");
|
|
|
+ String zoneName = (String)itemDb.get("zone_name");
|
|
|
+ String oldZone = date2ZoneNames.getOrDefault(date,"");
|
|
|
+ if (!StringUtils.isEmpty(oldZone))
|
|
|
+ oldZone += "、";
|
|
|
+ date2ZoneNames.put(date, oldZone+String.format("【%s】",zoneName));
|
|
|
+ }
|
|
|
+ for (Map.Entry<String,String> entry:date2ZoneNames.entrySet()){
|
|
|
+ arrRecordRes.add(new DateKeyValue(backField
|
|
|
+ , threshold
|
|
|
+ , entry.getValue()
|
|
|
+ , entry.getKey()));
|
|
|
+ }
|
|
|
}else
|
|
|
arrRecordRes = FastJsonUtil.batchMap2Obj(arrDbs, DateKeyValue.class);
|
|
|
}while (false);
|