未验证 提交 caa6287d 编写于 作者: W Wenjun Ruan 提交者: GitHub

Add alertPluginInstanceId in AlertInfo (#11231)

上级 9a53c6ac
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
package org.apache.dolphinscheduler.alert.api; package org.apache.dolphinscheduler.alert.api;
import lombok.NonNull;
/** /**
* alert channel for sending alerts * alert channel for sending alerts
*/ */
...@@ -31,7 +33,7 @@ public interface AlertChannel { ...@@ -31,7 +33,7 @@ public interface AlertChannel {
*/ */
AlertResult process(AlertInfo info); AlertResult process(AlertInfo info);
default AlertResult closeAlert(AlertInfo info) { default @NonNull AlertResult closeAlert(AlertInfo info) {
return new AlertResult("true", "no need to close alert"); return new AlertResult("true", "no need to close alert");
} }
} }
...@@ -39,4 +39,6 @@ public class AlertInfo { ...@@ -39,4 +39,6 @@ public class AlertInfo {
private AlertData alertData; private AlertData alertData;
private int alertPluginInstanceId;
} }
...@@ -233,12 +233,13 @@ public final class AlertSenderService extends Thread { ...@@ -233,12 +233,13 @@ public final class AlertSenderService extends Thread {
} }
AlertInfo alertInfo = AlertInfo.builder() AlertInfo alertInfo = AlertInfo.builder()
.alertData(alertData) .alertData(alertData)
.alertParams(paramsMap) .alertParams(paramsMap)
.build(); .alertPluginInstanceId(instance.getId())
.build();
int waitTimeout = alertConfig.getWaitTimeout(); int waitTimeout = alertConfig.getWaitTimeout();
AlertResult alertResult;
try { try {
AlertResult alertResult;
if (waitTimeout <= 0) { if (waitTimeout <= 0) {
if (alertData.getAlertType() == AlertType.CLOSE_ALERT.getCode()) { if (alertData.getAlertType() == AlertType.CLOSE_ALERT.getCode()) {
alertResult = alertChannel.closeAlert(alertInfo); alertResult = alertChannel.closeAlert(alertInfo);
...@@ -254,31 +255,17 @@ public final class AlertSenderService extends Thread { ...@@ -254,31 +255,17 @@ public final class AlertSenderService extends Thread {
} }
alertResult = future.get(waitTimeout, TimeUnit.MILLISECONDS); alertResult = future.get(waitTimeout, TimeUnit.MILLISECONDS);
} }
if (alertResult == null) {
throw new RuntimeException("Alert result cannot be null");
}
return alertResult;
} catch (InterruptedException e) { } catch (InterruptedException e) {
alertResult = new AlertResult("false", e.getMessage());
logger.error("send alert error alert data id :{},", alertData.getId(), e); logger.error("send alert error alert data id :{},", alertData.getId(), e);
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
return new AlertResult("false", e.getMessage());
} catch (Exception e) { } catch (Exception e) {
alertResult = new AlertResult("false", e.getMessage());
logger.error("send alert error alert data id :{},", alertData.getId(), e); logger.error("send alert error alert data id :{},", alertData.getId(), e);
return new AlertResult("false", e.getMessage());
} }
AlertResult alertResultExtend = new AlertResult();
if (alertResult == null) {
String message = String.format("Alert Plugin %s send error : return alertResult value is null", pluginInstanceName);
alertResultExtend.setStatus("false");
alertResultExtend.setMessage(message);
logger.info("Alert Plugin {} send error : return alertResult value is null", pluginInstanceName);
} else if (!Boolean.parseBoolean(String.valueOf(alertResult.getStatus()))) {
alertResultExtend.setStatus("false");
alertResultExtend.setMessage(alertResult.getMessage());
logger.info("Alert Plugin {} send error : {}", pluginInstanceName, alertResult.getMessage());
} else {
String message = String.format("Alert Plugin %s send success", pluginInstanceName);
alertResultExtend.setStatus("true");
alertResultExtend.setMessage(message);
logger.info("Alert Plugin {} send success", pluginInstanceName);
}
return alertResultExtend;
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册