Added IPC statistics to admin console
git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_dev_next@1159 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java b/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
index 3c94b9e..c17acd0 100644
--- a/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
+++ b/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/NodeControllerState.java
@@ -107,6 +107,14 @@
private final long[] netSignalingBytesWritten;
+ private final long[] ipcMessagesSent;
+
+ private final long[] ipcMessageBytesSent;
+
+ private final long[] ipcMessagesReceived;
+
+ private final long[] ipcMessageBytesReceived;
+
private int rrdPtr;
private int lastHeartbeatDuration;
@@ -156,6 +164,11 @@
netPayloadBytesWritten = new long[RRD_SIZE];
netSignalingBytesRead = new long[RRD_SIZE];
netSignalingBytesWritten = new long[RRD_SIZE];
+ ipcMessagesSent = new long[RRD_SIZE];
+ ipcMessageBytesSent = new long[RRD_SIZE];
+ ipcMessagesReceived = new long[RRD_SIZE];
+ ipcMessageBytesReceived = new long[RRD_SIZE];
+
rrdPtr = 0;
}
@@ -183,6 +196,10 @@
netPayloadBytesWritten[rrdPtr] = hbData.netPayloadBytesWritten;
netSignalingBytesRead[rrdPtr] = hbData.netSignalingBytesRead;
netSignalingBytesWritten[rrdPtr] = hbData.netSignalingBytesWritten;
+ ipcMessagesSent[rrdPtr] = hbData.ipcMessagesSent;
+ ipcMessageBytesSent[rrdPtr] = hbData.ipcMessageBytesSent;
+ ipcMessagesReceived[rrdPtr] = hbData.ipcMessagesReceived;
+ ipcMessageBytesReceived[rrdPtr] = hbData.ipcMessageBytesReceived;
rrdPtr = (rrdPtr + 1) % RRD_SIZE;
}
@@ -254,6 +271,10 @@
o.put("net-payload-bytes-written", netPayloadBytesWritten);
o.put("net-signaling-bytes-read", netSignalingBytesRead);
o.put("net-signaling-bytes-written", netSignalingBytesWritten);
+ 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);
return o;
}
diff --git a/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/NodeDetailsPage.html b/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/NodeDetailsPage.html
index 6a765e4..1d8f735 100644
--- a/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/NodeDetailsPage.html
+++ b/hyracks-control-cc/src/main/resources/edu/uci/ics/hyracks/control/cc/adminconsole/pages/NodeDetailsPage.html
@@ -7,6 +7,7 @@
<li><a href="#tabs-4">Memory Usage</a></li>
<li><a href="#tabs-5">Thread Statistics</a></li>
<li><a href="#tabs-6">Network Statistics</a></li>
+ <li><a href="#tabs-7">IPC Statistics</a></li>
</ul>
<div id="tabs-1">
@@ -54,6 +55,13 @@
<div id='net-signaling-bandwidth' class="time-chart">
</div>
</div>
+
+ <div id="tabs-7">
+ <div id='ipc-messages' class="time-chart">
+ </div>
+ <div id='ipc-message-bytes' class="time-chart">
+ </div>
+ </div>
</div>
<script src="/static/javascript/adminconsole/NodeDetailsPage.js" type="text/javascript"></script>
diff --git a/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js b/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
index 1847b32..ff9d8a0 100644
--- a/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
+++ b/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/NodeDetailsPage.js
@@ -15,8 +15,8 @@
}
};
- function computeBandwidth(bytes, rrdPtr) {
- return (bytes[(rrdPtr + 1) % bytes.length] - bytes[rrdPtr]) / 10;
+ function computeRate(array, rrdPtr) {
+ return (array[(rrdPtr + 1) % array.length] - array[rrdPtr]) / 10;
}
function onDataReceived(data) {
@@ -58,6 +58,11 @@
var netPayloadBytesWritten = result['net-payload-bytes-written'];
var netSignalingBytesRead = result['net-signaling-bytes-read'];
var netSignalingBytesWritten = result['net-signaling-bytes-written'];
+ var ipcMessagesSent = result['ipc-messages-sent'];
+ var ipcMessageBytesSent = result['ipc-message-bytes-sent'];
+ var ipcMessagesReceived = result['ipc-messages-received'];
+ var ipcMessageBytesReceived = result['ipc-message-bytes-received'];
+
var sysLoadArray = [];
var heapUsageInitSizesArray = [];
var heapUsageUsedSizesArray = [];
@@ -75,6 +80,10 @@
var netPayloadWriteBWArray = [];
var netSignalingReadBWArray = [];
var netSignalingWriteBWArray = [];
+ var ipcMessageSendRateArray = [];
+ var ipcMessageBytesSendRateArray = [];
+ var ipcMessageReceiveRateArray = [];
+ var ipcMessageBytesReceiveRateArray = [];
var gcChartsDiv = document.getElementById('gc-charts');
for ( var i = 0; i < gcCollectionCounts.length; ++i) {
gcCollectionCountsArray.push([]);
@@ -107,10 +116,14 @@
gcCollectionTimesArray[j].push([ i, gcCollectionTimes[j][rrdPtr] ]);
}
if (i < sysLoad.length - 1) {
- netPayloadReadBWArray.push([ i, computeBandwidth(netPayloadBytesRead, rrdPtr) ]);
- netPayloadWriteBWArray.push([ i, computeBandwidth(netPayloadBytesWritten, rrdPtr) ]);
- netSignalingReadBWArray.push([ i, computeBandwidth(netSignalingBytesRead, rrdPtr) ]);
- netSignalingWriteBWArray.push([ i, computeBandwidth(netSignalingBytesWritten, rrdPtr) ]);
+ netPayloadReadBWArray.push([ i, computeRate(netPayloadBytesRead, rrdPtr) ]);
+ netPayloadWriteBWArray.push([ i, computeRate(netPayloadBytesWritten, rrdPtr) ]);
+ netSignalingReadBWArray.push([ i, computeRate(netSignalingBytesRead, rrdPtr) ]);
+ netSignalingWriteBWArray.push([ i, computeRate(netSignalingBytesWritten, rrdPtr) ]);
+ ipcMessageSendRateArray.push([ i, computeRate(ipcMessagesSent, rrdPtr) ]);
+ ipcMessageBytesSendRateArray.push([ i, computeRate(ipcMessageBytesSent, rrdPtr) ]);
+ ipcMessageReceiveRateArray.push([ i, computeRate(ipcMessagesReceived, rrdPtr) ]);
+ ipcMessageBytesReceiveRateArray.push([ i, computeRate(ipcMessageBytesReceived, rrdPtr) ]);
}
rrdPtr = (rrdPtr + 1) % sysLoad.length;
}
@@ -186,6 +199,22 @@
label : 'Signaling Write Bandwidth (bytes/sec)',
data : netSignalingWriteBWArray
} ], options);
+
+ $.plot($('#ipc-messages'), [ {
+ label : 'IPC Messages Send Rate (messages/sec)',
+ data : ipcMessageSendRateArray
+ }, {
+ label : 'IPC Messages Receive Rate (messages/sec)',
+ data : ipcMessageReceiveRateArray
+ } ], options);
+
+ $.plot($('#ipc-message-bytes'), [ {
+ label : 'IPC Message Send Bandwidth (bytes/sec)',
+ data : ipcMessageBytesSendRateArray
+ }, {
+ label : 'IPC Message Receive Bandwidth (bytes/sec)',
+ data : ipcMessageBytesReceiveRateArray
+ } ], options);
}
function fetchData() {