public void createTmpByAppBaseInfo()

in ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/service/impl/AppGrafanaMappingServiceImpl.java [164:241]


    public void createTmpByAppBaseInfo(HeraAppBaseInfoModel baseInfo) {
        GrafanaTemplate template = new GrafanaTemplate();
        Integer appType = baseInfo.getAppType();
        /**
         * 默认使用业务类型;
         * mesh类型应用与业务类型公用模版
         */
        if (appType == null || AppType.mesh.getCode().equals(appType)) {
            appType = AppType.businessType.getCode();
        }
        template.setAppType(appType);
        template.setPlatform(baseInfo.getPlatformType());
        
        try {
            Integer langUageCode = AppLanguage.getCodeByMessage(baseInfo.getAppLanguage());
            //无语言配置,默认使用java语言模版
            if (langUageCode == null) {
                langUageCode = AppLanguage.java.getCode();
                log.error("the app base info no language set! set default language java. baseInfo:{}",
                        new Gson().toJson(baseInfo));
            }
            template.setLanguage(langUageCode);
            
            appGrafanaMappingServiceExtension.setPlatFormByLanguage(template, baseInfo.getAppLanguage());
            
            List<GrafanaTemplate> search = grafanaTemplateDao.search(template);
            if (CollectionUtils.isEmpty(search)) {
                log.error("createTmpByAppBaseInfo,no template config found! baseInfo:{}", new Gson().toJson(baseInfo));
                return;
            }
            
            Optional<Integer> platformType = Optional.ofNullable(baseInfo.getPlatformType());
            //找不到平台类型,默认放在open下
            String grafanaDirByCode =
                    platformType.isPresent() ? platFormTypeExtensionService.getGrafanaDirByTypeCode(platformType.get())
                            : PlatFormType.open.getGrafanaDir();
            
            List<String> funcList = new ArrayList<>();
            
            if (AppType.serverless.getCode().equals(baseInfo.getAppType())) {
                funcList = serverLessService.getFaasFunctionList(Integer.valueOf(baseInfo.getBindId()));
            }
            
            MutiGrafanaResponse mutiGrafanaResponse = grafanaService.requestGrafanaTemplate(serverType,
                    baseInfo.getBindId() + "_" + baseInfo.getAppName(), grafanaDirByCode, search.get(0), funcList);
            
            log.info("createTmpByAppBaseInfo response info : {}", mutiGrafanaResponse);
            
            appGrafanaMappingServiceExtension.dealRequestGrafanaTemplateCode(mutiGrafanaResponse.getCode(),
                    baseInfo.getBindId(), baseInfo.getAppName());
            
            if (mutiGrafanaResponse.getCode() != 0 || mutiGrafanaResponse.getData() == null) {
                log.info("create grafana fail! baseInfo:{},response:{}", baseInfo.toString(),
                        new Gson().toJson(mutiGrafanaResponse));
                return;
            }
            log.info(
                    "grafanaMappingService.createTmpByAppBaseInfo success appName : {}, version:{},area : {}, returnUrl :{}",
                    baseInfo.getAppName(), mutiGrafanaResponse.getData().get(0).getMimonitor_version(),
                    grafanaDirByCode, mutiGrafanaResponse);
            
            String url = new StringBuffer().append(grafanaDomain).append(mutiGrafanaResponse.getUrl()).toString();
            
            AppGrafanaMapping grafanaMapping = new AppGrafanaMapping();
            grafanaMapping.setGrafanaUrl(url);
            grafanaMapping.setAppName(baseInfo.getBindId() + "_" + baseInfo.getAppName());
            grafanaMapping.setMioneEnv(grafanaDirByCode);
            int i = this.saveOrUpdate(grafanaMapping);
            if (i > 0) {
                log.info("createTmpByAppBaseInfo success!grafanaMapping:{}", grafanaMapping.toString());
            } else {
                log.info("createTmpByAppBaseInfo fail!grafanaMapping:{}", grafanaMapping.toString());
            }
        } catch (JsonSyntaxException e) {
            log.error("createTmpByAppBaseInfo error!{}", e.getMessage(), e);
        }
        
    }