public AlarmStrategy create()

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;
    }