in ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/service/impl/AlarmStrategyServiceImpl.java [101:183]
public AlarmStrategy create(AlarmRuleRequest param, AppMonitor app) {
if (StringUtils.isBlank(param.getStrategyName()) || param.getStrategyType() == null) {
throw new IllegalArgumentException("strategy name or type is null");
}
AlarmStrategy strategy = new AlarmStrategy();
strategy.setCreater(param.getUser());
strategy.setStrategyName(param.getStrategyName());
strategy.setStrategyType(param.getStrategyType());
strategy.setAppId(app.getProjectId());
strategy.setIamId(app.getIamTreeId());
strategy.setAppName(param.getStrategyType().equals(AlarmStrategyType.TESLA.getCode()) ? param.getAppAlias()
: app.getProjectName());
strategy.setDesc(param.getStrategyDesc());
strategy.setStatus(0);
if (StringUtils.isNotBlank(param.getAlertTeam())) {
strategy.setAlertTeam(param.getAlertTeam());
} else if (!CollectionUtils.isEmpty(param.getAlarmRules())) {
strategy.setAlertTeam(param.getAlarmRules().get(0).getAlertTeam());
}
Map<Integer, UseDetailInfo.DeptDescr> deptMap = LocalUser.getDepts();
if (deptMap.containsKey(3)) {
strategy.setGroup3(deptMap.get(3).getDeptName());
}
if (deptMap.containsKey(4)) {
strategy.setGroup4(deptMap.get(4).getDeptName());
}
if (deptMap.containsKey(5)) {
strategy.setGroup5(deptMap.get(5).getDeptName());
}
JsonObject envs = new JsonObject();
if (!CollectionUtils.isEmpty(param.getIncludeEnvs())) {
envs.addProperty("includeEnvs", String.join(",", param.getIncludeEnvs()));
}
if (!CollectionUtils.isEmpty(param.getExceptEnvs())) {
envs.addProperty("exceptEnvs", String.join(",", param.getExceptEnvs()));
}
if (!CollectionUtils.isEmpty(param.getIncludeZones())) {
envs.addProperty("includeZones", String.join(",", param.getIncludeZones()));
}
if (!CollectionUtils.isEmpty(param.getExceptZones())) {
envs.addProperty("exceptZones", String.join(",", param.getExceptZones()));
}
if (!CollectionUtils.isEmpty(param.getIncludeContainerName())) {
envs.addProperty("includeContainerName", String.join(",", param.getIncludeContainerName()));
}
if (!CollectionUtils.isEmpty(param.getExceptContainerName())) {
envs.addProperty("exceptContainerName", String.join(",", param.getExceptContainerName()));
}
if (!CollectionUtils.isEmpty(param.getIncludeModules())) {
envs.addProperty("includeModules", String.join(",", param.getIncludeModules()));
}
if (!CollectionUtils.isEmpty(param.getExceptModules())) {
envs.addProperty("exceptModules", String.join(",", param.getExceptModules()));
}
if (!CollectionUtils.isEmpty(param.getIncludeFunctions())) {
envs.addProperty("includeFunctions", String.join(",", param.getIncludeFunctions()));
}
if (!CollectionUtils.isEmpty(param.getExceptFunctions())) {
envs.addProperty("exceptFunctions", String.join(",", param.getExceptFunctions()));
}
strategy.setEnvs(envs.toString());
if (!CollectionUtils.isEmpty(param.getAlertMembers())) {
strategy.setAlertMembers(String.join(",", param.getAlertMembers()));
}
if (!CollectionUtils.isEmpty(param.getAtMembers())) {
strategy.setAtMembers(String.join(",", param.getAtMembers()));
}
if (!appAlarmStrategyDao.insert(strategy)) {
return null;
}
log.info("插入规则策略成功:strategy={}", strategy);
return strategy;
}