You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ki...@apache.org on 2021/12/10 10:22:36 UTC
[dolphinscheduler] branch 2.0.1-release updated: [2.0.1][Fix-7284] [api] Fix the missing project information in the process instance timeout alarm (#7309)
This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch 2.0.1-release
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/2.0.1-release by this push:
new b17fa26 [2.0.1][Fix-7284] [api] Fix the missing project information in the process instance timeout alarm (#7309)
b17fa26 is described below
commit b17fa26d6159b82227872a66f0a94808167accb6
Author: Kerwin <37...@users.noreply.github.com>
AuthorDate: Fri Dec 10 18:22:30 2021 +0800
[2.0.1][Fix-7284] [api] Fix the missing project information in the process instance timeout alarm (#7309)
* cherry pick
* Fix the missing project information in the process instance timeout alarm
---
.../org/apache/dolphinscheduler/dao/AlertDao.java | 43 ++++++++++++------
.../dao/entity/ProcessAlertContent.java | 53 ++++++++++++++--------
.../service/alert/ProcessAlertManager.java | 10 ++--
3 files changed, 72 insertions(+), 34 deletions(-)
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
index 92e3162..c352b4f 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
@@ -23,7 +23,14 @@ import org.apache.dolphinscheduler.common.enums.AlertEvent;
import org.apache.dolphinscheduler.common.enums.AlertStatus;
import org.apache.dolphinscheduler.common.enums.AlertWarnLevel;
import org.apache.dolphinscheduler.common.utils.JSONUtils;
-import org.apache.dolphinscheduler.dao.entity.*;
+import org.apache.dolphinscheduler.dao.entity.Alert;
+import org.apache.dolphinscheduler.dao.entity.AlertPluginInstance;
+import org.apache.dolphinscheduler.dao.entity.ProcessAlertContent;
+import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
+import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
+import org.apache.dolphinscheduler.dao.entity.ServerAlertContent;
+import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
+import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
import org.apache.dolphinscheduler.dao.mapper.AlertMapper;
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
@@ -111,8 +118,14 @@ public class AlertDao {
Alert alert = new Alert();
List<ProcessAlertContent> processAlertContentList = new ArrayList<>(1);
ProcessAlertContent processAlertContent = ProcessAlertContent.newBuilder()
+ .projectCode(processDefinition.getProjectCode())
+ .projectName(processDefinition.getProjectName())
+ .owner(processDefinition.getUserName())
.processId(processInstance.getId())
+ .processDefinitionCode(processInstance.getProcessDefinitionCode())
.processName(processInstance.getName())
+ .processStartTime(processInstance.getStartTime())
+ .processHost(processInstance.getHost())
.event(AlertEvent.TIME_OUT)
.warningLevel(AlertWarnLevel.MIDDLE)
.build();
@@ -133,28 +146,32 @@ public class AlertDao {
/**
* task timeout warn
*
- * @param alertGroupId alertGroupId
- * @param processInstanceId processInstanceId
- * @param processInstanceName processInstanceName
- * @param taskId taskId
- * @param taskName taskName
+ * @param processInstance processInstanceId
+ * @param taskInstance taskInstance
+ * @param taskDefinition taskDefinition
*/
- public void sendTaskTimeoutAlert(int alertGroupId, int processInstanceId,
- String processInstanceName, int taskId, String taskName) {
+ public void sendTaskTimeoutAlert(ProcessInstance processInstance, TaskInstance taskInstance, TaskDefinition taskDefinition) {
Alert alert = new Alert();
List<ProcessAlertContent> processAlertContentList = new ArrayList<>(1);
ProcessAlertContent processAlertContent = ProcessAlertContent.newBuilder()
- .processId(processInstanceId)
- .processName(processInstanceName)
- .taskId(taskId)
- .taskName(taskName)
+ .projectCode(taskDefinition.getProjectCode())
+ .projectName(taskDefinition.getProjectName())
+ .owner(taskDefinition.getUserName())
+ .processId(processInstance.getId())
+ .processDefinitionCode(processInstance.getProcessDefinitionCode())
+ .processName(processInstance.getName())
+ .taskCode(taskInstance.getTaskCode())
+ .taskName(taskInstance.getName())
+ .taskType(taskInstance.getTaskType())
+ .taskStartTime(taskInstance.getStartTime())
+ .taskHost(taskInstance.getHost())
.event(AlertEvent.TIME_OUT)
.warningLevel(AlertWarnLevel.MIDDLE)
.build();
processAlertContentList.add(processAlertContent);
String content = JSONUtils.toJsonString(processAlertContentList);
alert.setTitle("Task Timeout Warn");
- saveTaskTimeoutAlert(alert, content, alertGroupId);
+ saveTaskTimeoutAlert(alert, content, processInstance.getWarningGroupId());
}
/**
diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessAlertContent.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessAlertContent.java
index 4f46140..e39d3f7 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessAlertContent.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProcessAlertContent.java
@@ -33,14 +33,19 @@ import com.fasterxml.jackson.annotation.JsonProperty;
@JsonInclude(Include.NON_NULL)
public class ProcessAlertContent implements Serializable {
+
@JsonProperty("projectId")
- private int projectId;
+ private Integer projectId;
+ @JsonProperty("projectCode")
+ private Long projectCode;
@JsonProperty("projectName")
private String projectName;
@JsonProperty("owner")
private String owner;
@JsonProperty("processId")
- private int processId;
+ private Integer processId;
+ @JsonProperty("processDefinitionCode")
+ private Long processDefinitionCode;
@JsonProperty("processName")
private String processName;
@JsonProperty("processType")
@@ -50,7 +55,7 @@ public class ProcessAlertContent implements Serializable {
@JsonProperty("recovery")
private Flag recovery;
@JsonProperty("runTimes")
- private int runTimes;
+ private Integer runTimes;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonProperty("processStartTime")
private Date processStartTime;
@@ -59,8 +64,8 @@ public class ProcessAlertContent implements Serializable {
private Date processEndTime;
@JsonProperty("processHost")
private String processHost;
- @JsonProperty("taskId")
- private int taskId;
+ @JsonProperty("taskCode")
+ private Long taskCode;
@JsonProperty("taskName")
private String taskName;
@JsonProperty("event")
@@ -70,7 +75,7 @@ public class ProcessAlertContent implements Serializable {
@JsonProperty("taskType")
private String taskType;
@JsonProperty("retryTimes")
- private int retryTimes;
+ private Integer retryTimes;
@JsonProperty("taskState")
private ExecutionStatus taskState;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -86,9 +91,11 @@ public class ProcessAlertContent implements Serializable {
private ProcessAlertContent(Builder builder) {
this.projectId = builder.projectId;
+ this.projectCode = builder.projectCode;
this.projectName = builder.projectName;
this.owner = builder.owner;
this.processId = builder.processId;
+ this.processDefinitionCode = builder.processDefinitionCode;
this.processName = builder.processName;
this.processType = builder.processType;
this.recovery = builder.recovery;
@@ -97,7 +104,7 @@ public class ProcessAlertContent implements Serializable {
this.processStartTime = builder.processStartTime;
this.processEndTime = builder.processEndTime;
this.processHost = builder.processHost;
- this.taskId = builder.taskId;
+ this.taskCode = builder.taskCode;
this.taskName = builder.taskName;
this.event = builder.event;
this.warnLevel = builder.warnLevel;
@@ -116,34 +123,40 @@ public class ProcessAlertContent implements Serializable {
}
public static class Builder {
- private int projectId;
+ private Integer projectId;
+ private Long projectCode;
private String projectName;
private String owner;
- private int processId;
+ private Integer processId;
+ private Long processDefinitionCode;
private String processName;
private CommandType processType;
private Flag recovery;
private ExecutionStatus processState;
- private int runTimes;
+ private Integer runTimes;
private Date processStartTime;
private Date processEndTime;
private String processHost;
- private int taskId;
+ private Long taskCode;
private String taskName;
private AlertEvent event;
private AlertWarnLevel warnLevel;
private String taskType;
- private int retryTimes;
+ private Integer retryTimes;
private ExecutionStatus taskState;
private Date taskStartTime;
private Date taskEndTime;
private String taskHost;
private String logPath;
- public Builder projectId(int projectId) {
+ public Builder projectId(Integer projectId) {
this.projectId = projectId;
return this;
}
+ public Builder projectCode(Long projectCode) {
+ this.projectCode = projectCode;
+ return this;
+ }
public Builder projectName(String projectName) {
this.projectName = projectName;
@@ -155,10 +168,14 @@ public class ProcessAlertContent implements Serializable {
return this;
}
- public Builder processId(int processId) {
+ public Builder processId(Integer processId) {
this.processId = processId;
return this;
}
+ public Builder processDefinitionCode(Long processDefinitionCode) {
+ this.processDefinitionCode = processDefinitionCode;
+ return this;
+ }
public Builder processName(String processName) {
this.processName = processName;
@@ -180,7 +197,7 @@ public class ProcessAlertContent implements Serializable {
return this;
}
- public Builder runTimes(int runTimes) {
+ public Builder runTimes(Integer runTimes) {
this.runTimes = runTimes;
return this;
}
@@ -200,8 +217,8 @@ public class ProcessAlertContent implements Serializable {
return this;
}
- public Builder taskId(int taskId) {
- this.taskId = taskId;
+ public Builder taskCode(Long taskCode) {
+ this.taskCode = taskCode;
return this;
}
@@ -225,7 +242,7 @@ public class ProcessAlertContent implements Serializable {
return this;
}
- public Builder retryTimes(int retryTimes) {
+ public Builder retryTimes(Integer retryTimes) {
this.retryTimes = retryTimes;
return this;
}
diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java
index c2db565..1ee7c5a 100644
--- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java
+++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java
@@ -108,6 +108,7 @@ public class ProcessAlertManager {
.projectName(projectUser.getProjectName())
.owner(projectUser.getUserName())
.processId(processInstance.getId())
+ .processDefinitionCode(processInstance.getProcessDefinitionCode())
.processName(processInstance.getName())
.processType(processInstance.getCommandType())
.processState(processInstance.getState())
@@ -131,8 +132,9 @@ public class ProcessAlertManager {
.projectName(projectUser.getProjectName())
.owner(projectUser.getUserName())
.processId(processInstance.getId())
+ .processDefinitionCode(processInstance.getProcessDefinitionCode())
.processName(processInstance.getName())
- .taskId(task.getId())
+ .taskCode(task.getTaskCode())
.taskName(task.getName())
.taskType(task.getTaskType())
.taskState(task.getState())
@@ -162,7 +164,10 @@ public class ProcessAlertManager {
for (TaskInstance taskInstance : toleranceTaskList) {
ProcessAlertContent processAlertContent = ProcessAlertContent.newBuilder()
+ .processId(processInstance.getId())
+ .processDefinitionCode(processInstance.getProcessDefinitionCode())
.processName(processInstance.getName())
+ .taskCode(taskInstance.getTaskCode())
.taskName(taskInstance.getName())
.taskHost(taskInstance.getHost())
.retryTimes(taskInstance.getRetryTimes())
@@ -255,7 +260,6 @@ public class ProcessAlertManager {
}
public void sendTaskTimeoutAlert(ProcessInstance processInstance, TaskInstance taskInstance, TaskDefinition taskDefinition) {
- alertDao.sendTaskTimeoutAlert(processInstance.getWarningGroupId(), processInstance.getId(),processInstance.getName(),
- taskInstance.getId(), taskInstance.getName());
+ alertDao.sendTaskTimeoutAlert(processInstance, taskInstance, taskDefinition);
}
}