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;
}