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/03/04 21:19:22 UTC
svn commit: r1733648 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main:
java/org/apache/uima/ducc/ws/ java/org/apache/uima/ducc/ws/server/
webapp/root/
Author: degenaro
Date: Fri Mar 4 20:19:21 2016
New Revision: 1733648
URL: http://svn.apache.org/viewvc?rev=1733648&view=rev
Log:
UIMA-4815 DUCC Web Server (WS) System Machines page re-imagined
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/system.machines.jsp
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java?rev=1733648&r1=1733647&r2=1733648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java Fri Mar 4 20:19:21 2016
@@ -30,7 +30,9 @@ import java.util.concurrent.atomic.Atomi
import org.apache.uima.ducc.cli.ws.json.MachineFacts;
import org.apache.uima.ducc.cli.ws.json.MachineFactsList;
import org.apache.uima.ducc.cli.ws.json.NodePidList;
+import org.apache.uima.ducc.common.ConvertSafely;
import org.apache.uima.ducc.common.IDuccEnv;
+import org.apache.uima.ducc.common.Node;
import org.apache.uima.ducc.common.node.metrics.NodeUsersInfo;
import org.apache.uima.ducc.common.node.metrics.NodeUsersInfo.NodeProcess;
import org.apache.uima.ducc.common.utils.DuccLogger;
@@ -123,7 +125,8 @@ public class DuccMachinesData {
String memFree = "";
String swapInuse = "";
String swapFree = "";
- MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memFree, swapInuse, swapFree, false, null, -1, 0);
+ double cpu = 0;
+ MachineInfo machineInfo = new MachineInfo(IDuccEnv.DUCC_NODES_FILE_PATH, "", nodeName, memTotal, memFree, swapInuse, swapFree, cpu, false, null, -1, 0);
Ip machineIP = new Ip(machineInfo.getIp());
unsortedMachines.put(machineIP,machineInfo);
}
@@ -168,7 +171,22 @@ public class DuccMachinesData {
swapFree.addAndGet(newInfo.swapFree);
}
}
-
+
+ private double getCpu(Node node) {
+ String location = "getCpu";
+ double cpu = 0;
+ try {
+ if(node != null) {
+ String load = node.getNodeMetrics().getNodeCpu().getCurrentLoad();
+ cpu = ConvertSafely.String2Double(load);
+ }
+ }
+ catch(Exception e) {
+ logger.debug(location, jobid, e);
+ }
+ return cpu;
+ }
+
public void put(DatedNodeMetricsUpdateDuccEvent duccEvent) {
String location = "put";
MachineSummaryInfo msi = new MachineSummaryInfo();
@@ -214,8 +232,10 @@ public class DuccMachinesData {
msi.swapFree = lvalSwapFree;
String swapFree = ""+lvalSwapFree/*+memUnits*/;
List<ProcessInfo> alienPids = nodeMetrics.getRogueProcessInfoList();
+ Node node = nodeMetrics.getNode();
+ double cpu = getCpu(node);
boolean cGroups = nodeMetrics.getCgroups();
- MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memFree, ""+swapInuse, ""+swapFree, cGroups, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
+ MachineInfo current = new MachineInfo("", ip.toString(), machineName, memTotal, memFree, ""+swapInuse, ""+swapFree, cpu, cGroups, alienPids, duccEvent.getMillis(), duccEvent.getEventSize());
Ip key = ip;
MachineInfo previous = unsortedMachines.get(key);
@@ -372,10 +392,11 @@ public class DuccMachinesData {
String swapInuse = machineInfo.getSwapInuse();
String swapDelta = ""+machineInfo.getSwapDelta();
String swapFree = machineInfo.getSwapFree();
+ double cpu = machineInfo.getCpu();
boolean cGroups = machineInfo.getCgroups();
List<String> aliens = machineInfo.getAliens();
String heartbeat = ""+machineInfo.getElapsed();
- MachineFacts facts = new MachineFacts(status,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cGroups,aliens,heartbeat);
+ MachineFacts facts = new MachineFacts(status,ip,name,memTotal,memFree,swapInuse,swapDelta,swapFree,cpu,cGroups,aliens,heartbeat);
enhance(facts,dbMachineMap);
factsList.add(facts);
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java?rev=1733648&r1=1733647&r2=1733648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java Fri Mar 4 20:19:21 2016
@@ -46,6 +46,7 @@ public class MachineInfo implements Comp
private String memFree;
private String swapInuse;
private String swapFree;
+ private double cpu;
private boolean cGroups;
private List<ProcessInfo> alienPids;
private long swapDelta;
@@ -55,7 +56,7 @@ public class MachineInfo implements Comp
private long pubSize;
private long pubSizeMax;
- public MachineInfo(String fileDef, String ip, String name, String memTotal, String memFree, String swapInuse, String swapFree, boolean cGroups, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
+ 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) {
this.fileDef = fileDef;
this.ip = ip;
this.name = name;
@@ -63,6 +64,7 @@ public class MachineInfo implements Comp
this.memFree = memFree;
this.swapInuse = swapInuse;
this.swapFree = swapFree;
+ this.cpu = cpu;
this.cGroups = cGroups;
this.alienPids = alienPids;
if(this.alienPids == null) {
@@ -143,6 +145,10 @@ public class MachineInfo implements Comp
return this.swapFree;
}
+ public double getCpu() {
+ return cpu;
+ }
+
public boolean getCgroups() {
return this.cGroups;
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1733648&r1=1733647&r2=1733648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Fri Mar 4 20:19:21 2016
@@ -1596,6 +1596,8 @@ public class DuccHandlerClassic extends
long sumMemTotal = 0;
long sumMemFree = 0;
long sumMemReserve = 0;
+ double sumCPU = 0;
+ long sumMachines = 0;
long sumSwapInuse = 0;
long sumSwapFree = 0;
long sumAliens = 0;
@@ -1610,15 +1612,21 @@ public class DuccHandlerClassic extends
listIterator = factsList.listIterator();
while(listIterator.hasNext()) {
MachineFacts facts = listIterator.next();
- try {
- sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
- sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
- sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
- sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
- sumAliens += facts.aliens.size();
- }
- catch(Exception e) {
- duccLogger.trace(methodName, jobid, e);
+ if(facts.status != null) {
+ if(facts.status.equals("up")) {
+ try {
+ sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
+ sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
+ sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
+ sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
+ sumCPU += facts.cpu;
+ sumMachines += 1;
+ sumAliens += facts.aliens.size();
+ }
+ catch(Exception e) {
+ duccLogger.trace(methodName, jobid, e);
+ }
+ }
}
}
//
@@ -1657,6 +1665,11 @@ public class DuccHandlerClassic extends
row.append("<td align=\"right\">");
row.append(""+sumMemFree);
row.append("</td>");
+ // CPU: load average
+ row.append("<td align=\"right\">");
+ String cpuTotal = formatter3.format(sumCPU/sumMachines);
+ row.append(cpuTotal);
+ row.append("</td>");
// Swap: inuse
row.append("<td align=\"right\">");
row.append(""+sumSwapInuse);
@@ -1753,6 +1766,15 @@ public class DuccHandlerClassic extends
row.append("<td align=\"right\">");
row.append("</td>");
}
+ // CPU: load average
+ row.append("<td>");
+ if(facts.status != null) {
+ if(facts.status.equals("up")) {
+ String cpu = formatter3.format(facts.cpu);
+ row.append(cpu);
+ }
+ }
+ row.append("</td>");
// Swap: inuse
sb = new StringBuffer();
String swapping = facts.swapInuse;
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1733648&r1=1733647&r2=1733648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Fri Mar 4 20:19:21 2016
@@ -1408,6 +1408,8 @@ public class DuccHandlerJsonFormat exten
long sumMemTotal = 0;
long sumMemFree = 0;
long sumMemReserve = 0;
+ double sumCPU = 0;
+ long sumMachines = 0;
long sumSwapInuse = 0;
long sumSwapFree = 0;
long sumAliens = 0;
@@ -1421,16 +1423,22 @@ public class DuccHandlerJsonFormat exten
listIterator = factsList.listIterator();
while(listIterator.hasNext()) {
MachineFacts facts = listIterator.next();
- try {
- sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
- sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
- sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
- sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
- sumAliens += facts.aliens.size();
- }
- catch(Exception e) {
- duccLogger.trace(methodName, jobid, e);
- }
+ if(facts.status != null) {
+ if(facts.status.equals("up")) {
+ try {
+ sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
+ sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
+ sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
+ sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
+ sumCPU += facts.cpu;
+ sumMachines += 1;
+ sumAliens += facts.aliens.size();
+ }
+ catch(Exception e) {
+ duccLogger.trace(methodName, jobid, e);
+ }
+ }
+ }
}
//
Map<String, Long> allocatedMap = Distiller.getMap();
@@ -1456,6 +1464,9 @@ public class DuccHandlerJsonFormat exten
row.add(new JsonPrimitive(sumMemReserveWithHover));
// Memory: free
row.add(new JsonPrimitive(sumMemFree));
+ // CPU: load average
+ String cpuTotal = formatter3.format(sumCPU/sumMachines);
+ row.add(new JsonPrimitive(cpuTotal));
// Swap: inuse
row.add(new JsonPrimitive(sumSwapInuse));
// Swap: free
@@ -1526,6 +1537,14 @@ public class DuccHandlerJsonFormat exten
}
else {
row.add(new JsonPrimitive(""));
+ }
+ // CPU: load average
+ if(!status.equals("defined")) {
+ String cpu = formatter3.format(facts.cpu);
+ row.add(new JsonPrimitive(cpu));
+ }
+ else {
+ row.add(new JsonPrimitive(""));
}
// Swap: inuse
sb = new StringBuffer();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/system.machines.jsp
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/system.machines.jsp?rev=1733648&r1=1733647&r2=1733648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/system.machines.jsp (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/system.machines.jsp Fri Mar 4 20:19:21 2016
@@ -46,6 +46,7 @@ under the License.
$('td:eq(8)' , nRow).css( "text-align", "right" );
$('td:eq(9)' , nRow).css( "text-align", "right" );
$('td:eq(10)' , nRow).css( "text-align", "right" );
+ $('td:eq(11)' , nRow).css( "text-align", "right" );
return nRow;
},
} );
@@ -107,6 +108,7 @@ if (table_style.equals("scroll")) {
<th align="left" title="The host node pool">Nodepool</th>
<th align="left" title="The host usable memory size, in GB" >Memory(GB):usable</th>
<th align="left" title="The host free memory size, in GB" >Memory(GB):free</th>
+ <th align="left" title="The host CPU load average" >%CPU</th>
<th align="left" title="The host inuse swap size, in GB" >Swap(GB):inuse</th>
<th align="left" title="The host free swap size, in GB" >Swap(GB):free</th>
<th align="left" title="The host C-Groups status" >C-Groups</th>
@@ -136,6 +138,7 @@ if (table_style.equals("classic")) {
<th align="left" title="The host node pool">Nodepool</th>
<th class="sorttable_numeric" align="left" title="The host usable memory size, in GB" >Memory(GB):usable</th>
<th class="sorttable_numeric" align="left" title="The host free memory size, in GB" >Memory(GB):free</th>
+ <th class="sorttable_numeric" align="left" title="The host CPU load average" >%CPU</th>
<th class="sorttable_numeric" align="left" title="The host inuse swap size, in GB" >Swap(GB):inuse</th>
<th class="sorttable_numeric" align="left" title="The host free swap size, in GB" >Swap(GB):free</th>
<th align="left" title="The host C-Groups status" >C-Groups</th>