AMBARI-19066. Add more logging around status command report processing on server side (magyari_sandor)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/99afb8bf Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/99afb8bf Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/99afb8bf Branch: refs/heads/branch-feature-AMBARI-18456 Commit: 99afb8bf67c8278d78f960ab2017a6e451cb58ae Parents: 9fc7f0a Author: Sandor Magyari <[email protected]> Authored: Wed Dec 7 14:57:16 2016 +0100 Committer: Sandor Magyari <[email protected]> Committed: Wed Dec 7 18:19:43 2016 +0100 ---------------------------------------------------------------------- .../apache/ambari/server/agent/AgentRequests.java | 2 +- .../ambari/server/agent/HeartbeatProcessor.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/99afb8bf/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentRequests.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentRequests.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentRequests.java index 2980f38..01195bf 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/AgentRequests.java +++ b/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) { if (StringUtils.isNotBlank(requestExecutionCmd)) { - LOG.debug("Setting need for exec command to " + requestExecutionCmd + " for " + component); Map<String, Boolean> perHostRequiresExecCmdDetails = getPerHostRequiresExecCmdDetails(host); if (Boolean.TRUE.toString().toUpperCase().equals(requestExecutionCmd.toUpperCase())) { + LOG.info("Setting need for exec command to " + requestExecutionCmd + " for " + component); perHostRequiresExecCmdDetails.put(component, Boolean.TRUE); } else { perHostRequiresExecCmdDetails.put(component, Boolean.FALSE); http://git-wip-us.apache.org/repos/asf/ambari/blob/99afb8bf/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java index 8f4782e..404419c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java +++ b/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.Collection; -import java.util.Iterator; import java.util.List; import java.util.Map; 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 private long delay = 5000; private long period = 1000; + private long logIntervalSeconds = 30; + private long lastStatusMessage = 0; private int poolSize = 1; @@ -179,12 +179,19 @@ public class HeartbeatProcessor extends AbstractService{ @Override public void run() { + while (shouldRun) { try { + long now = System.currentTimeMillis(); + if ((now - lastStatusMessage) > (logIntervalSeconds * 1000)) { + LOG.info("Queue size: {}", heartBeatsQueue.size()); + lastStatusMessage = now; + } HeartBeat heartbeat = pollHeartbeat(); if (heartbeat == null) { break; } + processHeartbeat(heartbeat); } catch (Exception 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 * @param heartbeat Agent heartbeat object + * @param now * @throws AmbariException */ public void processHeartbeat(HeartBeat heartbeat) throws AmbariException { long now = System.currentTimeMillis(); processAlerts(heartbeat); - //process status reports before command reports to prevent status override immediately after task finish processStatusReports(heartbeat); processCommandReports(heartbeat, now); @@ -215,8 +222,6 @@ public class HeartbeatProcessor extends AbstractService{ processHostStatus(heartbeat); } - - /** * 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
