You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2016/10/25 18:45:23 UTC

svn commit: r1766578 - in /uima/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/ uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/met...

Author: cwiklik
Date: Tue Oct 25 18:45:22 2016
New Revision: 1766578

URL: http://svn.apache.org/viewvc?rev=1766578&view=rev
Log:
UIMA-5047 modify node metrics to include availability of CPU reporting

Modified:
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java
    uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxNodeMetricsProcessor.java
    uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java?rev=1766578&r1=1766577&r2=1766578&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java Tue Oct 25 18:45:22 2016
@@ -490,6 +490,11 @@ public class CGroupsManager {
 		return false;
 	}
 
+	public boolean isCpuReportingEnabled() {
+		String file = getCGroupLocation("cpuacct")+System.getProperty("file.separator")+"cpuacct.usage";
+		File f = new File(file);
+		return f.exists();
+	}
 	public long getCpuUsage(String containerId ) throws Exception {
 		long usage = 0;
 		String file = getCGroupLocation("cpuacct")+containerId+System.getProperty("file.separator")+"cpuacct.usage";

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java?rev=1766578&r1=1766577&r2=1766578&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java Tue Oct 25 18:45:22 2016
@@ -75,10 +75,11 @@ public class DefaultNodeMetricsProcessor
 	    
 	    NodeUsersCollector nodeUsersCollector = new NodeUsersCollector(agent, logger);
 	    Future<TreeMap<String,NodeUsersInfo>> nuiFuture = pool.submit(nodeUsersCollector);
+		boolean cpuReportingEnabled = agent.cgroupsManager.isCpuReportingEnabled();
 
 	    NodeMetrics nodeMetrics = 
 	            new NodeMetrics(agent.getIdentity(), nmiFuture.get(), loadFuture.get(), 
-	                    cpuInfo, nuiFuture.get());
+	                    cpuInfo, nuiFuture.get(), cpuReportingEnabled);
 
 	    //Node node = new DuccNode(new NodeIdentity(), nodeMetrics);
 	    // jrc 2011-07-30 I think this needs to be agent.getIdentity(), not create a new identity.

Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxNodeMetricsProcessor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxNodeMetricsProcessor.java?rev=1766578&r1=1766577&r2=1766578&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxNodeMetricsProcessor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/LinuxNodeMetricsProcessor.java Tue Oct 25 18:45:22 2016
@@ -153,8 +153,9 @@ public class LinuxNodeMetricsProcessor e
 				users = new TreeMap<String, NodeUsersInfo>();
 			}
 			NodeLoadAverage lav = loadFuture.get();
+			boolean cpuReportingEnabled = agent.cgroupsManager.isCpuReportingEnabled();
             NodeMetrics nodeMetrics = new NodeMetrics(agent.getIdentity(), memInfo, lav,
-              cpuInfo, users);
+              cpuInfo, users, cpuReportingEnabled);
       
 			Node node = new DuccNode(agent.getIdentity(), nodeMetrics, agent.useCgroups);
 			// Make the agent aware how much memory is available on the node. Do this once.
@@ -175,7 +176,9 @@ public class LinuxNodeMetricsProcessor e
 					" Memory Free (KB):"+node.getNodeMetrics().getNodeMemory().getMemFree()+
 					" Swap Total (KB):"+node.getNodeMetrics().getNodeMemory().getSwapTotal()+
 					" Swap Free (KB):"+node.getNodeMetrics().getNodeMemory().getSwapFree()+
-					" Low Swap Threshold Defined in ducc.properties (KB):"+swapThreshold);
+					" Low Swap Threshold Defined in ducc.properties (KB):"+swapThreshold +
+					" CPU Reporting Enabled:"+cpuReportingEnabled) ;
+			
 			logger.trace(methodName, null, "... Agent "+node.getNodeIdentity().getName()+" Posting Users:"+
 					node.getNodeMetrics().getNodeUsersMap().size());
 			// Check if swap free is less than defined minimum threshold (check ducc.properties) 

Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java?rev=1766578&r1=1766577&r2=1766578&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java Tue Oct 25 18:45:22 2016
@@ -32,19 +32,23 @@ public class NodeMetrics implements Seri
   private NodeCpuInfo nodeCpu;
   private NodeIdentity nodeIdentity;
   TreeMap<String,NodeUsersInfo> nodeUsersMap;
+  private boolean cpuReportingEnabled = false;
   
-  public NodeMetrics(NodeIdentity nodeIdentity, NodeMemory nodeMemory, NodeLoadAverage nodeLoadAverage , NodeCpuInfo nodeCpu, TreeMap<String,NodeUsersInfo> userProcessMap) {
+  public NodeMetrics(NodeIdentity nodeIdentity, NodeMemory nodeMemory, NodeLoadAverage nodeLoadAverage , NodeCpuInfo nodeCpu, TreeMap<String,NodeUsersInfo> userProcessMap, boolean cpuReportingEnabled) {
     this.nodeIdentity = nodeIdentity;
 	  setNodeMemory(nodeMemory);
     setNodeLoadAverage(nodeLoadAverage);
     setNodeCpu(nodeCpu);
     //setNodeUsersInfo(nodeUsersInfo);
     this.nodeUsersMap = userProcessMap;
+    this.cpuReportingEnabled = cpuReportingEnabled;
   }
   public TreeMap<String, NodeUsersInfo> getNodeUsersMap() {
     return nodeUsersMap;
   }
-
+  public boolean isCpuReportingEnabled() {
+	  return cpuReportingEnabled;
+  }
    public NodeIdentity getNodeIdentity() {
 	  return nodeIdentity;
   }