Browse Source

Add alertPluginInstanceId in AlertInfo (#11231)

3.1.0-release
Wenjun Ruan 2 years ago committed by GitHub
parent
commit
caa6287d7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java
  2. 2
      dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java
  3. 35
      dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java

4
dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertChannel.java

@ -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 {
*/ */
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");
} }
} }

2
dolphinscheduler-alert/dolphinscheduler-alert-api/src/main/java/org/apache/dolphinscheduler/alert/api/AlertInfo.java

@ -39,4 +39,6 @@ public class AlertInfo {
private AlertData alertData; private AlertData alertData;
private int alertPluginInstanceId;
} }

35
dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertSenderService.java

@ -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 {
} }
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;
} }
} }

Loading…
Cancel
Save