Pritom Ahmed has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/355

Change subject: PLEASE EDIT to provide a meaningful commit message!
......................................................................

PLEASE EDIT to provide a meaningful commit message!

The following commits from your working branch will be included:

commit 9bc623c48d37b77cdc483405916cf3fb6f57d1d9
Author: Pritom Ahmed <pritom...@gmail.com>
Date:   Fri Aug 14 13:07:00 2015 -0700

    * Fixed the job details page in adminconsole. Previously it was broken. Now 
it shows the raw
    JSON data sent to it.
    * Optimized the node details information sent by the adminconsole API. 
Previously, the API
    was sending the full array everytime even though the whole array was not 
full. As a result,
    there were many instances with no data. Now its sending only the subarrays 
that actually
    contains data.

Change-Id: Idbbb326dfc9b0756184be50287a8d8c57aa493e3
---
M 
hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
M 
hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/job/JobRun.java
M 
hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/web/JobsRESTAPIFunction.java
M 
hyracks/hyracks-control/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/JobDetailsPage.html
4 files changed, 86 insertions(+), 42 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/55/355/1

diff --git 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
index 63fc26b..e843026 100644
--- 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
+++ 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
@@ -14,10 +14,7 @@
  */
 package edu.uci.ics.hyracks.control.cc;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -285,35 +282,48 @@
         o.put("boot-classpath", bootClasspath);
         o.put("input-arguments", new JSONArray(inputArguments));
         o.put("rrd-ptr", rrdPtr);
-        o.put("heartbeat-times", hbTime);
-        o.put("heap-init-sizes", heapInitSize);
-        o.put("heap-used-sizes", heapUsedSize);
-        o.put("heap-committed-sizes", heapCommittedSize);
-        o.put("heap-max-sizes", heapMaxSize);
-        o.put("nonheap-init-sizes", nonheapInitSize);
-        o.put("nonheap-used-sizes", nonheapUsedSize);
-        o.put("nonheap-committed-sizes", nonheapCommittedSize);
-        o.put("nonheap-max-sizes", nonheapMaxSize);
-        o.put("thread-counts", threadCount);
-        o.put("peak-thread-counts", peakThreadCount);
-        o.put("system-load-averages", systemLoadAverage);
-        o.put("gc-names", gcNames);
-        o.put("gc-collection-counts", gcCollectionCounts);
-        o.put("gc-collection-times", gcCollectionTimes);
-        o.put("net-payload-bytes-read", netPayloadBytesRead);
-        o.put("net-payload-bytes-written", netPayloadBytesWritten);
-        o.put("net-signaling-bytes-read", netSignalingBytesRead);
-        o.put("net-signaling-bytes-written", netSignalingBytesWritten);
-        o.put("dataset-net-payload-bytes-read", datasetNetPayloadBytesRead);
-        o.put("dataset-net-payload-bytes-written", 
datasetNetPayloadBytesWritten);
-        o.put("dataset-net-signaling-bytes-read", 
datasetNetSignalingBytesRead);
-        o.put("dataset-net-signaling-bytes-written", 
datasetNetSignalingBytesWritten);
-        o.put("ipc-messages-sent", ipcMessagesSent);
-        o.put("ipc-message-bytes-sent", ipcMessageBytesSent);
-        o.put("ipc-messages-received", ipcMessagesReceived);
-        o.put("ipc-message-bytes-received", ipcMessageBytesReceived);
-        o.put("disk-reads", diskReads);
-        o.put("disk-writes", diskWrites);
+        o.put("heartbeat-times", Arrays.copyOfRange(hbTime, 0, rrdPtr));
+        o.put("heap-init-sizes", Arrays.copyOfRange(heapInitSize, 0, rrdPtr));
+        o.put("heap-used-sizes", Arrays.copyOfRange(heapUsedSize, 0, rrdPtr));
+        o.put("heap-committed-sizes", Arrays.copyOfRange(heapCommittedSize, 0, 
rrdPtr));
+        o.put("heap-max-sizes", Arrays.copyOfRange(heapMaxSize, 0, rrdPtr));
+        o.put("nonheap-init-sizes", Arrays.copyOfRange(nonheapInitSize, 0, 
rrdPtr));
+        o.put("nonheap-used-sizes", Arrays.copyOfRange(nonheapUsedSize, 0, 
rrdPtr));
+        o.put("nonheap-committed-sizes", 
Arrays.copyOfRange(nonheapCommittedSize, 0, rrdPtr));
+        o.put("nonheap-max-sizes", Arrays.copyOfRange(nonheapMaxSize, 0, 
rrdPtr));
+        o.put("thread-counts", Arrays.copyOfRange(threadCount, 0, rrdPtr));
+        o.put("peak-thread-counts", Arrays.copyOfRange(peakThreadCount, 0, 
rrdPtr));
+        o.put("system-load-averages", Arrays.copyOfRange(systemLoadAverage, 0, 
rrdPtr));
+        o.put("gc-names", Arrays.copyOfRange(gcNames, 0, rrdPtr));
+
+
+
+        int gcN = hbSchema.getGarbageCollectorInfos().length;
+        long[][] tempGccCollectionCounts = new long[gcN][rrdPtr];
+        long[][] tempGccCollectionTimes = new long[gcN][rrdPtr];
+        for (int i = 0; i < gcN; ++i) {
+            for (int j = 0; j< rrdPtr; j++) {
+                tempGccCollectionCounts[i][j] = gcCollectionCounts[i][j];
+                tempGccCollectionTimes[i][j] = gcCollectionTimes[i][j];
+            }
+        }
+        o.put("gc-collection-counts", 
Arrays.copyOfRange(tempGccCollectionCounts, 0, gcN));
+        o.put("gc-collection-times", 
Arrays.copyOfRange(tempGccCollectionTimes, 0, gcN));
+
+        o.put("net-payload-bytes-read", 
Arrays.copyOfRange(netPayloadBytesRead, 0, rrdPtr));
+        o.put("net-payload-bytes-written", 
Arrays.copyOfRange(netPayloadBytesWritten, 0, rrdPtr));
+        o.put("net-signaling-bytes-read", 
Arrays.copyOfRange(netSignalingBytesRead, 0, rrdPtr));
+        o.put("net-signaling-bytes-written", 
Arrays.copyOfRange(netSignalingBytesWritten, 0, rrdPtr));
+        o.put("dataset-net-payload-bytes-read", 
Arrays.copyOfRange(datasetNetPayloadBytesRead, 0, rrdPtr));
+        o.put("dataset-net-payload-bytes-written", 
Arrays.copyOfRange(datasetNetPayloadBytesWritten, 0, rrdPtr));
+        o.put("dataset-net-signaling-bytes-read", 
Arrays.copyOfRange(datasetNetSignalingBytesRead, 0, rrdPtr));
+        o.put("dataset-net-signaling-bytes-written", 
Arrays.copyOfRange(datasetNetSignalingBytesWritten, 0, rrdPtr));
+        o.put("ipc-messages-sent", Arrays.copyOfRange(ipcMessagesSent, 0, 
rrdPtr));
+        o.put("ipc-message-bytes-sent", 
Arrays.copyOfRange(ipcMessageBytesSent, 0, rrdPtr));
+        o.put("ipc-messages-received", Arrays.copyOfRange(ipcMessagesReceived, 
0, rrdPtr));
+        o.put("ipc-message-bytes-received", 
Arrays.copyOfRange(ipcMessageBytesReceived, 0, rrdPtr));
+        o.put("disk-reads", Arrays.copyOfRange(diskReads, 0, rrdPtr));
+        o.put("disk-writes", Arrays.copyOfRange(diskWrites, 0, rrdPtr));
 
         return o;
     }
diff --git 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/job/JobRun.java
 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/job/JobRun.java
index de3c1c0..ace34ec 100644
--- 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/job/JobRun.java
+++ 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/job/JobRun.java
@@ -228,6 +228,7 @@
         return scheduler;
     }
 
+
     public Map<ConnectorDescriptorId, IConnectorPolicy> 
getConnectorPolicyMap() {
         return connectorPolicyMap;
     }
diff --git 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/web/JobsRESTAPIFunction.java
 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/web/JobsRESTAPIFunction.java
index ef79449..e419283 100644
--- 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/web/JobsRESTAPIFunction.java
+++ 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/web/JobsRESTAPIFunction.java
@@ -14,14 +14,13 @@
  */
 package edu.uci.ics.hyracks.control.cc.web;
 
-import org.json.JSONObject;
-
 import edu.uci.ics.hyracks.api.job.JobId;
 import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
 import edu.uci.ics.hyracks.control.cc.web.util.IJSONOutputFunction;
 import edu.uci.ics.hyracks.control.cc.work.GetActivityClusterGraphJSONWork;
 import edu.uci.ics.hyracks.control.cc.work.GetJobRunJSONWork;
 import edu.uci.ics.hyracks.control.cc.work.GetJobSummariesJSONWork;
+import org.json.JSONObject;
 
 public class JobsRESTAPIFunction implements IJSONOutputFunction {
     private ClusterControllerService ccs;
@@ -56,6 +55,13 @@
                     GetJobRunJSONWork gjre = new GetJobRunJSONWork(ccs, jobId);
                     ccs.getWorkQueue().scheduleAndSync(gjre);
                     result.put("result", gjre.getJSON());
+                } else if ("job-summaries".equalsIgnoreCase(arguments[0])) { 
//Shown in index page of adminconsole
+                    GetJobSummariesJSONWork gjse = new 
GetJobSummariesJSONWork(ccs);
+                    ccs.getWorkQueue().scheduleAndSync(gjse);
+                    /*for (int i = 0; i < gjse.getSummaries().length(); i++) {
+                        result.put("result" + i, 
gjse.getSummaries().getJSONObject(i));
+                    }*/
+                    result.put("result", gjse.getSummaries()); /* JSONArray */
                 }
 
                 break;
diff --git 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/JobDetailsPage.html
 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/JobDetailsPage.html
index 145848e..62b7b2c 100644
--- 
a/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/JobDetailsPage.html
+++ 
b/hyracks/hyracks-control/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/JobDetailsPage.html
@@ -13,15 +13,42 @@
  ! limitations under the License.
  !-->
 <wicket:extend xmlns:wicket>
-    <div id="job-specification" wicket:id="job-specification" style="display: 
none;">
-    </div>
-    <div id="job-activity-graph" wicket:id="job-activity-graph" 
style="display: none;">
-    </div>
-    <div id="job-run" wicket:id="job-run" style="display: none;">
-    </div>
+    <!--<div id="job-specification"> &lt;!&ndash;wicket:id="job-specification" 
style="display: none;"&ndash;&gt;
+    </div>-->
+    <table>
+        <tr>
+            <td>
+            <h>activity-cluster-graph</h>
+            </td>
+            <td>
+    <div wicket:id="activity-cluster-graph"> <!--style="display: none;"--> 
</div>
+            </td>
+        </tr>
+        <tr>
+            <td>
+                <h>job-run</h>
+            </td>
+            <td>
+    <div wicket:id="job-run"> <!--style="display: none;"--> </div>
+            </td>
+        </tr>
+        <tr>
+            <td>
+                <h>job-timeline</h>
+            </td>
+            <td>
     <div wicket:id="job-timeline" style="overflow: auto;"></div>
+            </td>
+        </tr>
+        <tr>
+            <td>
+                job Graph
+            </td>
+            <td>
     <div id="job-graph" style="position:relative"></div>
-
+            </td>
+        </tr>
+    </table>
     <script src="/static/javascript/adminconsole/Graphs.js" 
type="text/javascript"></script>
     <script src="/static/javascript/adminconsole/JobDetailsPage.js" 
type="text/javascript"></script>
 </wicket:extend>
\ No newline at end of file

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/355
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idbbb326dfc9b0756184be50287a8d8c57aa493e3
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: Pritom Ahmed <pritom...@gmail.com>

Reply via email to