Jelajahi Sumber

AMBARI-11841. Alerts received in single heartbeat should be processed in batch. Javadoc fix. (mpapirkovskyy)

Myroslav Papirkovskyy 10 tahun lalu
induk
melakukan
65b6a89314

+ 5 - 0
ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java

@@ -310,6 +310,11 @@ public class HeartBeatHandler {
 
     if (null != heartbeat.getAlerts()) {
       AlertEvent event = new AlertReceivedEvent(heartbeat.getAlerts());
+      for (Alert alert : event.getAlerts()) {
+        if (alert.getHostName() == null) {
+          alert.setHostName(hostname);
+        }
+      }
       alertEventPublisher.publish(event);
 
     }

+ 10 - 4
ambari-server/src/main/java/org/apache/ambari/server/events/listeners/alerts/AlertReceivedListener.java

@@ -250,6 +250,12 @@ public class AlertReceivedListener {
     }
   }
 
+  /**
+   * Saves alert and alert history entities in single transaction
+   * @param toCreate - new alerts, create alert and history
+   * @param toMerge - merge alert only
+   * @param toCreateHistoryAndMerge - create new history, merge alert
+   */
   @Transactional
   void saveEntities(Map<Alert, AlertCurrentEntity> toCreate, Map<Alert, AlertCurrentEntity> toMerge,
                     Map<Alert, AlertCurrentEntity> toCreateHistoryAndMerge) {
@@ -269,10 +275,10 @@ public class AlertReceivedListener {
 
       if (LOG.isDebugEnabled()) {
         LOG.debug(
-          "Alert State Merged: CurrentId {}, CurrentTimestamp {}, HistoryId {}, HistoryState {}",
-          entity.getAlertId(), entity.getLatestTimestamp(),
-          entity.getAlertHistory().getAlertId(),
-          entity.getAlertHistory().getAlertState());
+            "Alert State Merged: CurrentId {}, CurrentTimestamp {}, HistoryId {}, HistoryState {}",
+            entity.getAlertId(), entity.getLatestTimestamp(),
+            entity.getAlertHistory().getAlertId(),
+            entity.getAlertHistory().getAlertState());
       }
     }
   }