[alerter] 告警处理指标数据,告警表达式计算,内容模版关键字替换
This commit is contained in:
@@ -5,6 +5,7 @@ import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -74,4 +75,13 @@ public interface AlertDefineService {
|
||||
* @param monitorMap 监控ID-名称 MAP
|
||||
*/
|
||||
void applyBindAlertDefineMonitors(Long alertId, Map<Long, String> monitorMap);
|
||||
|
||||
/**
|
||||
* 查询与此监控ID关联的指定指标组匹配的告警定义
|
||||
* @param monitorId 监控ID
|
||||
* @param app 监控类型
|
||||
* @param metrics 指标组
|
||||
* @return field - define[]
|
||||
*/
|
||||
Map<String, List<AlertDefine>> getAlertDefines(long monitorId, String app, String metrics);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@@ -84,4 +85,15 @@ public class AlertDefineServiceImpl implements AlertDefineService {
|
||||
.collect(Collectors.toList());
|
||||
alertDefineBindDao.saveAll(alertDefineBinds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, List<AlertDefine>> getAlertDefines(long monitorId, String app, String metrics) {
|
||||
List<AlertDefine> defines = alertDefineDao.queryAlertDefinesByMonitor(monitorId, metrics);
|
||||
if (defines == null || defines.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
// 将告警阈值定义从告警级别0-3数字升序排序,数字越小告警基本越高,即从最高的告警阈值开始匹配计算
|
||||
return defines.stream().sorted(Comparator.comparing(AlertDefine::getPriority))
|
||||
.collect(Collectors.groupingBy(AlertDefine::getField));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user