Browse Source

Add alertPluginInstanceId in AlertInfo (#11231)

Wenjun Ruan 2 years ago
parent
commit
caa6287d7f

+ 3 - 1
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;
 
+import lombok.NonNull;
+
 /**
  * alert channel for sending alerts
  */
@@ -31,7 +33,7 @@ public interface AlertChannel {
      */
     AlertResult process(AlertInfo info);
 
-    default AlertResult closeAlert(AlertInfo info) {
+    default @NonNull AlertResult closeAlert(AlertInfo info) {
         return new AlertResult("true", "no need to close alert");
     }
 }

+ 2 - 0
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 int alertPluginInstanceId;
+
 }

+ 11 - 24
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()
-                .alertData(alertData)
-                .alertParams(paramsMap)
-                .build();
+            .alertData(alertData)
+            .alertParams(paramsMap)
+            .alertPluginInstanceId(instance.getId())
+            .build();
         int waitTimeout = alertConfig.getWaitTimeout();
-        AlertResult alertResult;
         try {
+            AlertResult alertResult;
             if (waitTimeout <= 0) {
                 if (alertData.getAlertType() == AlertType.CLOSE_ALERT.getCode()) {
                     alertResult = alertChannel.closeAlert(alertInfo);
@@ -254,31 +255,17 @@ public final class AlertSenderService extends Thread {
                 }
                 alertResult = future.get(waitTimeout, TimeUnit.MILLISECONDS);
             }
+            if (alertResult == null) {
+                throw new RuntimeException("Alert result cannot be null");
+            }
+            return alertResult;
         } catch (InterruptedException e) {
-            alertResult = new AlertResult("false", e.getMessage());
             logger.error("send alert error alert data id :{},", alertData.getId(), e);
             Thread.currentThread().interrupt();
+            return new AlertResult("false", e.getMessage());
         } catch (Exception e) {
-            alertResult = new AlertResult("false", e.getMessage());
             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;
     }
 }