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