diff --git a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/entity/YarnApplicationVO.java b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/entity/YarnApplicationVO.java index dcfbc89..a73d7af 100644 --- a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/entity/YarnApplicationVO.java +++ b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/entity/YarnApplicationVO.java @@ -1,6 +1,7 @@ package com.lanyuanxiaoyao.service.web.entity; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReUtil; import com.eshore.odcp.hudi.connector.utils.NameHelper; import com.fasterxml.jackson.annotation.JsonIgnore; import com.lanyuanxiaoyao.service.configuration.entity.yarn.YarnApplication; @@ -18,13 +19,21 @@ public class YarnApplicationVO { private final YarnApplication yarnApplication; private final Boolean isHudiApplication; + private final Boolean isSyncApplication; + private final Boolean isCompactionApplication; private String startTimeFromNow; private String finishTimeFromNow; + private String flinkJobId; + private String flinkJobName; + private String alias; + public YarnApplicationVO(YarnApplication yarnApplication) { this.yarnApplication = yarnApplication; - isHudiApplication = NameHelper.isSyncJob(yarnApplication.getName()) || NameHelper.isCompactionJob(yarnApplication.getName()); + isSyncApplication = NameHelper.isSyncJob(yarnApplication.getName()); + isCompactionApplication = NameHelper.isCompactionJob(yarnApplication.getName()); + isHudiApplication = isSyncApplication || isCompactionApplication; long now = Instant.now().toEpochMilli(); if (ObjectUtil.isNotNull(yarnApplication.getStartedTime()) && yarnApplication.getStartedTime() != 0) { @@ -33,6 +42,15 @@ public class YarnApplicationVO { if (ObjectUtil.isNotNull(yarnApplication.getFinishedTime()) && yarnApplication.getFinishedTime() != 0) { finishTimeFromNow = DatetimeUtil.fromNow(now, yarnApplication.getFinishedTime()); } + + if (isSyncApplication) { + flinkJobId = ReUtil.get(NameHelper.SYNC_JOB_NAME_REGEX, yarnApplication.getName(), 1); + flinkJobName = ReUtil.get(NameHelper.SYNC_JOB_NAME_REGEX, yarnApplication.getName(), 2); + } + if (isCompactionApplication) { + flinkJobId = ReUtil.get(NameHelper.COMPACTION_JOB_NAME_REGEX, yarnApplication.getName(), 1); + alias = ReUtil.get(NameHelper.COMPACTION_JOB_NAME_REGEX, yarnApplication.getName(), 2); + } } public String getCluster() { @@ -115,6 +133,14 @@ public class YarnApplicationVO { return yarnApplication.getClusterUsagePercentage(); } + public Boolean getSyncApplication() { + return isSyncApplication; + } + + public Boolean getCompactionApplication() { + return isCompactionApplication; + } + public Boolean getHudiApplication() { return isHudiApplication; } @@ -126,4 +152,16 @@ public class YarnApplicationVO { public String getFinishTimeFromNow() { return finishTimeFromNow; } + + public String getFlinkJobId() { + return flinkJobId; + } + + public String getFlinkJobName() { + return flinkJobName; + } + + public String getAlias() { + return alias; + } }