You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/10/26 17:29:17 UTC

svn commit: r1766709 - in /uima/uima-ducc/trunk: uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/ uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/ uima-ducc-web/src/main/java/o...

Author: degenaro
Date: Wed Oct 26 17:29:17 2016
New Revision: 1766709

URL: http://svn.apache.org/viewvc?rev=1766709&view=rev
Log:
UIMA-5047 support for CGroups CPU Reporting status on WS Machines page

Modified:
    uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/MachineFacts.java
    uima/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/MachineFactsTest.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java

Modified: uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/MachineFacts.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/MachineFacts.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/MachineFacts.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/json/MachineFacts.java Wed Oct 26 17:29:17 2016
@@ -37,7 +37,8 @@ public class MachineFacts implements Ser
 	public String swapDelta;
 	public String swapFree;
 	public double cpu;
-	public boolean cgroups = false;
+	public boolean cgroupsEnabled = false;
+	public boolean cgroupsCpuReportingEnabled = false;
 	public List<String> aliens;
 	public String heartbeat;
 	
@@ -51,7 +52,8 @@ public class MachineFacts implements Ser
 				   String swapDelta,
 				   String swapFree,
 				   double cpu,
-				   boolean cgroups,
+				   boolean cgroupsEnabled,
+				   boolean cgroupsCpuReportingEnabled,
 				   List<String> aliens,
 				   String heartbeat
 				   ) 
@@ -68,7 +70,8 @@ public class MachineFacts implements Ser
 		this.swapDelta = swapDelta;
 		this.swapFree = swapFree;
 		this.cpu = cpu;
-		this.cgroups = cgroups;
+		this.cgroupsEnabled = cgroupsEnabled;
+		this.cgroupsCpuReportingEnabled = cgroupsCpuReportingEnabled;
 		this.aliens = aliens;
 		this.heartbeat = heartbeat;
 	}

Modified: uima/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/MachineFactsTest.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/MachineFactsTest.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/MachineFactsTest.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/MachineFactsTest.java Wed Oct 26 17:29:17 2016
@@ -92,7 +92,11 @@ public class MachineFactsTest {
 		return random.nextDouble();
 	}
 	
-	private boolean createCgroups() {
+	private boolean createCgroupsEnabled() {
+		return random.nextBoolean();
+	}
+	
+	private boolean createCgroupsCpuReportingEnabled() {
 		return random.nextBoolean();
 	}
 	
@@ -130,10 +134,11 @@ public class MachineFactsTest {
 		String delta = createSwap();
 		String free = createFree();
 		double cpu = createCPU();
-		boolean cgroups = createCgroups();
+		boolean cgroupsEnabled = createCgroupsEnabled();
+		boolean cgroupsCpuReportingEnabled = createCgroupsCpuReportingEnabled();
 		List<String> aliens = createAliens();
 		String heartbeat = createHeartbeat();
-		MachineFacts machineFacts = new MachineFacts(status,"",ip,name, memTotal, memFree, swap, delta, free, cpu, cgroups, aliens, heartbeat);
+		MachineFacts machineFacts = new MachineFacts(status,"",ip,name, memTotal, memFree, swap, delta, free, cpu, cgroupsEnabled, cgroupsCpuReportingEnabled, aliens, heartbeat);
 		return machineFacts;
 	}
 	

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java Wed Oct 26 17:29:17 2016
@@ -248,7 +248,7 @@ public class DuccMachinesData {
 				String swapInuse = "";
 				String swapFree = "";
 				double cpu = 0;
-				MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memFree, swapInuse, swapFree, cpu, false, null, -1, 0);
+				MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memFree, swapInuse, swapFree, cpu, false, false, null, -1, 0);
 				putMachine(machineInfo);
 			}
 			updateSortedMachines();
@@ -393,8 +393,9 @@ public class DuccMachinesData {
 		List<ProcessInfo> alienPids = nodeMetrics.getRogueProcessInfoList();
 		Node node = nodeMetrics.getNode();
 		double cpu = getCpuLoadAvg(node);
-		boolean cGroups = nodeMetrics.getCgroups();
-		MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memFree, ""+swapInuse, ""+swapFree, cpu, cGroups, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
+		boolean cGroupsEnabled = nodeMetrics.getCgroups();
+		boolean cGroupsCpuReportingEnabled = nodeMetrics.getCgroupsCpuReportingEnabled();
+		MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memFree, ""+swapInuse, ""+swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
 		
 		NodeId key = nodeId;
 		MachineInfo previous = unsortedMachines.get(key);
@@ -610,10 +611,11 @@ public class DuccMachinesData {
 			String swapDelta = ""+machineInfo.getSwapDelta();
 			String swapFree = machineInfo.getSwapFree();
 			double cpu = machineInfo.getCpu();
-			boolean cGroups = machineInfo.getCgroups();
+			boolean cGroupsEnabled = machineInfo.getCgroupsEnabled();
+			boolean cGroupspuReportingEnabled = machineInfo.getCgroupsCpuReportingEnabled();
 			List<String> aliens = machineInfo.getAliens();
 			String heartbeat = ""+machineInfo.getElapsed();
-			MachineFacts facts = new MachineFacts(status,statusReason,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroups,aliens,heartbeat);
+			MachineFacts facts = new MachineFacts(status,statusReason,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroupsEnabled,cGroupspuReportingEnabled,aliens,heartbeat);
 			// when not using DB, memResrve == memTotal
 			facts.memReserve = memTotal;
 			factsList.add(facts);
@@ -683,10 +685,11 @@ public class DuccMachinesData {
 			String swapDelta = "";
 			String swapFree = "";
 			double cpu = 0;
-			boolean cGroups = false;
+			boolean cGroupsEnabled = false;
+			boolean cGroupsCpuReportingEnabled = false;
 			List<String> aliens = new ArrayList<String>();
 			String heartbeat = "";
-			MachineFacts facts = new MachineFacts(status,statusReason,ip,longName,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroups,aliens,heartbeat);
+			MachineFacts facts = new MachineFacts(status,statusReason,ip,longName,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroupsEnabled,cGroupsCpuReportingEnabled,aliens,heartbeat);
 			mfl.add(facts);
 		}
 		// Augment returnable with data from Agents & RM (from DB)
@@ -703,10 +706,11 @@ public class DuccMachinesData {
 			String swapDelta = ""+machineInfo.getSwapDelta();
 			String swapFree = machineInfo.getSwapFree();
 			double cpu = machineInfo.getCpu();
-			boolean cGroups = machineInfo.getCgroups();
+			boolean cGroupsEnabled = machineInfo.getCgroupsEnabled();
+			boolean cGroupsCpuReportingEnabled = machineInfo.getCgroupsCpuReportingEnabled();
 			List<String> aliens = machineInfo.getAliens();
 			String heartbeat = ""+machineInfo.getElapsed();
-			MachineFacts facts = new MachineFacts(status,statusReason,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroups,aliens,heartbeat);
+			MachineFacts facts = new MachineFacts(status,statusReason,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroupsEnabled,cGroupsCpuReportingEnabled,aliens,heartbeat);
 			facts.memReserve = machineInfo.getMemTotal();
 			facts.quantum = ""+machineInfo.getQuantum();
 			logger.trace(location, jobid, facts.status+" "+facts.statusReason);

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java Wed Oct 26 17:29:17 2016
@@ -52,7 +52,8 @@ public class MachineInfo implements Comp
 	private String swapInuse;
 	private String swapFree;
 	private double cpu;
-	private boolean cGroups;
+	private boolean cGroupsEnabled;
+	private boolean cGroupsCpuReportingEnabled;
 	private List<ProcessInfo> alienPids;
 	private long swapDelta;
 	private long heartbeat;
@@ -70,15 +71,15 @@ public class MachineInfo implements Comp
 	
 	private NodeId nodeid;
 	
-	public MachineInfo(String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroups, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
-		init(MachineStatus.Defined, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroups, alienPids, heartbeat, pubSize);
+	public MachineInfo(String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+		init(MachineStatus.Defined, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
 	}
 	
-	public MachineInfo(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroups, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
-		init(machineStatus, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroups, alienPids, heartbeat, pubSize);
+	public MachineInfo(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+		init(machineStatus, fileDef, ip, name, memTotal, memFree, swapInuse, swapFree, cpu, cGroupsEnabled, cGroupsCpuReportingEnabled, alienPids, heartbeat, pubSize);
 	}
 	
-	private void init(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroups, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+	private void init(MachineStatus machineStatus, String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, double cpu, boolean cGroupsEnabled, boolean cGroupsCpuReportingEnabled, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
 		this.machineStatus = machineStatus;
 		this.fileDef = fileDef;
 		this.ip = ip;
@@ -88,7 +89,8 @@ public class MachineInfo implements Comp
 		this.swapInuse = swapInuse;
 		this.swapFree = swapFree;
 		this.cpu = cpu;
-		this.cGroups = cGroups;
+		this.cGroupsEnabled = cGroupsEnabled;
+		this.cGroupsCpuReportingEnabled = cGroupsCpuReportingEnabled;
 		this.alienPids = alienPids;
 		if(this.alienPids == null) {
 			this.alienPids = new ArrayList<ProcessInfo>();
@@ -293,8 +295,12 @@ public class MachineInfo implements Comp
 		return cpu;
 	}
 	
-	public boolean getCgroups() {
-		return this.cGroups;
+	public boolean getCgroupsEnabled() {
+		return this.cGroupsEnabled;
+	}
+	
+	public boolean getCgroupsCpuReportingEnabled() {
+		return this.cGroupsCpuReportingEnabled;
 	}
 	
 	public List<String> getAliens() {

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Wed Oct 26 17:29:17 2016
@@ -1846,13 +1846,21 @@ public class DuccHandlerClassic extends
 				}
 				row.append("</td>");
 				// C-Groups
-				boolean isCgroups = facts.cgroups;
+				boolean isCgroupsEnabled = facts.cgroupsEnabled;
+				boolean isCgroupsCpuReportingEnabled = facts.cgroupsCpuReportingEnabled;
 				sb = new StringBuffer();
 				if(status.equals("up")) {
-					if(isCgroups) {
-						sb.append("<span title=\""+"control groups active"+"\" class=\"health_black\""+">");
-						sb.append("on");
-						sb.append("</span>");
+					if(isCgroupsEnabled) {
+						if(isCgroupsCpuReportingEnabled) {
+							sb.append("<span title=\""+"control groups active"+"\" class=\"health_black\""+">");
+							sb.append("on");
+							sb.append("</span>");
+						}
+						else {
+							sb.append("<span title=\""+"control groups CPU reporting not configured"+"\" class=\"health_red\""+">");
+							sb.append("noCPU%");
+							sb.append("</span>");
+						}
 					}
 					else {
 						sb.append("<span title=\""+"control groups inactive"+"\" class=\"health_red\""+">");

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1766709&r1=1766708&r2=1766709&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Wed Oct 26 17:29:17 2016
@@ -1592,13 +1592,21 @@ public class DuccHandlerJsonFormat exten
 					row.add(new JsonPrimitive(""));
 				}
 				// C-Groups
-				boolean isCgroups = facts.cgroups;
+				boolean isCgroupsEnabled = facts.cgroupsEnabled;
+				boolean isCgroupsCpuReportingEnabled = facts.cgroupsCpuReportingEnabled;
 				sb = new StringBuffer();
 				if(status.equals("up")) {
-					if(isCgroups) {
-						sb.append("<span title=\""+"control groups active"+"\" class=\"health_black\""+">");
-						sb.append("on");
-						sb.append("</span>");
+					if(isCgroupsEnabled) {
+						if(isCgroupsCpuReportingEnabled) {
+							sb.append("<span title=\""+"control groups active"+"\" class=\"health_black\""+">");
+							sb.append("on");
+							sb.append("</span>");
+						}
+						else {
+							sb.append("<span title=\""+"control groups CPU reporting not configured"+"\" class=\"health_red\""+">");
+							sb.append("noCPU%");
+							sb.append("</span>");
+						}
 					}
 					else {
 						sb.append("<span title=\""+"control groups inactive"+"\" class=\"health_red\""+">");