Bläddra i källkod

AMBARI-19066. Add more logging around status command report processing on server side (magyari_sandor)

Sandor Magyari 8 år sedan
förälder
incheckning
ebe954bb10

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/agent/AgentRequests.java

@@ -45,9 +45,9 @@ public class AgentRequests {
 
 
   public void setExecutionDetailsRequest(String host, String component, String requestExecutionCmd) {
   public void setExecutionDetailsRequest(String host, String component, String requestExecutionCmd) {
     if (StringUtils.isNotBlank(requestExecutionCmd)) {
     if (StringUtils.isNotBlank(requestExecutionCmd)) {
-      LOG.debug("Setting need for exec command to " + requestExecutionCmd + " for " + component);
       Map<String, Boolean> perHostRequiresExecCmdDetails = getPerHostRequiresExecCmdDetails(host);
       Map<String, Boolean> perHostRequiresExecCmdDetails = getPerHostRequiresExecCmdDetails(host);
       if (Boolean.TRUE.toString().toUpperCase().equals(requestExecutionCmd.toUpperCase())) {
       if (Boolean.TRUE.toString().toUpperCase().equals(requestExecutionCmd.toUpperCase())) {
+        LOG.info("Setting need for exec command to " + requestExecutionCmd + " for " + component);
         perHostRequiresExecCmdDetails.put(component, Boolean.TRUE);
         perHostRequiresExecCmdDetails.put(component, Boolean.TRUE);
       } else {
       } else {
         perHostRequiresExecCmdDetails.put(component, Boolean.FALSE);
         perHostRequiresExecCmdDetails.put(component, Boolean.FALSE);

+ 10 - 5
ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java

@@ -19,8 +19,6 @@ package org.apache.ambari.server.agent;
 
 
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
@@ -101,6 +99,8 @@ public class HeartbeatProcessor extends AbstractService{
   //TODO rewrite to correlate with heartbeat frequency, hardcoded in agent as of now
   //TODO rewrite to correlate with heartbeat frequency, hardcoded in agent as of now
   private long delay = 5000;
   private long delay = 5000;
   private long period = 1000;
   private long period = 1000;
+  private long logIntervalSeconds = 30;
+  private long lastStatusMessage = 0;
 
 
   private int poolSize = 1;
   private int poolSize = 1;
 
 
@@ -179,12 +179,19 @@ public class HeartbeatProcessor extends AbstractService{
 
 
     @Override
     @Override
     public void run() {
     public void run() {
+
       while (shouldRun) {
       while (shouldRun) {
         try {
         try {
+          long now = System.currentTimeMillis();
+          if ((now - lastStatusMessage) > (logIntervalSeconds * 1000)) {
+            LOG.info("Queue size: {}", heartBeatsQueue.size());
+            lastStatusMessage = now;
+          }
           HeartBeat heartbeat = pollHeartbeat();
           HeartBeat heartbeat = pollHeartbeat();
           if (heartbeat == null) {
           if (heartbeat == null) {
             break;
             break;
           }
           }
+
           processHeartbeat(heartbeat);
           processHeartbeat(heartbeat);
         } catch (Exception e) {
         } catch (Exception e) {
           LOG.error("Exception received while processing heartbeat", e);
           LOG.error("Exception received while processing heartbeat", e);
@@ -201,13 +208,13 @@ public class HeartbeatProcessor extends AbstractService{
   /**
   /**
    * Incapsulates logic for processing data from agent heartbeat
    * Incapsulates logic for processing data from agent heartbeat
    * @param heartbeat Agent heartbeat object
    * @param heartbeat Agent heartbeat object
+   * @param now
    * @throws AmbariException
    * @throws AmbariException
    */
    */
   public void processHeartbeat(HeartBeat heartbeat) throws AmbariException {
   public void processHeartbeat(HeartBeat heartbeat) throws AmbariException {
     long now = System.currentTimeMillis();
     long now = System.currentTimeMillis();
 
 
     processAlerts(heartbeat);
     processAlerts(heartbeat);
-
     //process status reports before command reports to prevent status override immediately after task finish
     //process status reports before command reports to prevent status override immediately after task finish
     processStatusReports(heartbeat);
     processStatusReports(heartbeat);
     processCommandReports(heartbeat, now);
     processCommandReports(heartbeat, now);
@@ -215,8 +222,6 @@ public class HeartbeatProcessor extends AbstractService{
     processHostStatus(heartbeat);
     processHostStatus(heartbeat);
   }
   }
 
 
-
-
   /**
   /**
    * Extracts all of the {@link Alert}s from the heartbeat and fires
    * Extracts all of the {@link Alert}s from the heartbeat and fires
    * {@link AlertEvent}s for each one. If there is a problem looking up the
    * {@link AlertEvent}s for each one. If there is a problem looking up the