summaryrefslogtreecommitdiff
path: root/python/gras
diff options
context:
space:
mode:
authorJosh Blum2013-03-23 15:51:48 -0500
committerJosh Blum2013-03-23 15:51:48 -0500
commit73be1e48f9cc9229cb18750074d1798346acd0fd (patch)
tree64010c462340ec3f936348971e11e3756743cf61 /python/gras
parent418aa7ea25386d7d735f60b6b4c2f75be19b7d1c (diff)
downloadsandhi-73be1e48f9cc9229cb18750074d1798346acd0fd.tar.gz
sandhi-73be1e48f9cc9229cb18750074d1798346acd0fd.tar.bz2
sandhi-73be1e48f9cc9229cb18750074d1798346acd0fd.zip
gras: filled in the other chart types
Diffstat (limited to 'python/gras')
-rw-r--r--python/gras/stats/chart_handler_breakdown.js33
-rw-r--r--python/gras/stats/chart_overall_throughput.js37
-rw-r--r--python/gras/stats/main.html4
-rw-r--r--python/gras/stats/main.js4
4 files changed, 70 insertions, 8 deletions
diff --git a/python/gras/stats/chart_handler_breakdown.js b/python/gras/stats/chart_handler_breakdown.js
index c938482..a8d7b15 100644
--- a/python/gras/stats/chart_handler_breakdown.js
+++ b/python/gras/stats/chart_handler_breakdown.js
@@ -1,9 +1,38 @@
function GrasChartHandlerBreakdown(args)
{
-
+ //input checking
+ if (args.block_ids.length != 1) gras_error_dialog(
+ "GrasChartHandlerBreakdown",
+ "Error making handler breakdown chart.\n"+
+ "Specify only one block for this chart."
+ );
+
+ //save enable
+ this.block_id = args.block_ids[0];
+
+ //make new chart
+ this.chart = new google.visualization.PieChart(args.panel);
+
+ this.title = "Handler Breakdown - " + this.block_id;
}
GrasChartHandlerBreakdown.prototype.update = function(history)
{
-
+ var point = history[history.length-1];
+ var percents = gras_extract_percent_times(point, this.block_id);
+ var data = google.visualization.arrayToDataTable([
+ ['Task', 'Percent'],
+ ['Work prep', percents['prep']],
+ ['Work task', percents['work']],
+ ['Work post', percents['post']],
+ ['Input tasks', percents['input']],
+ ['Output tasks', percents['output']],
+ ]);
+
+ var options = {
+ width:$('#page').width()/5,
+ chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"},
+ };
+
+ this.chart.draw(data, options);
};
diff --git a/python/gras/stats/chart_overall_throughput.js b/python/gras/stats/chart_overall_throughput.js
index 04c532e..d9c6730 100644
--- a/python/gras/stats/chart_overall_throughput.js
+++ b/python/gras/stats/chart_overall_throughput.js
@@ -1,9 +1,42 @@
function GrasChartOverallThroughput(args)
{
-
+ //save enables
+ this.ids = args.block_ids;
+
+ //input checking
+ if (this.ids.length <= 1) gras_error_dialog(
+ "GrasChartOverallThroughput",
+ "Error making overall thoughput chart.\n"+
+ "Specify at least 2 blocks for this chart."
+ );
+
+ //make new chart
+ this.chart = new google.visualization.LineChart(args.panel);
+
+ this.title = "Overall Throughput vs Time";
}
GrasChartOverallThroughput.prototype.update = function(history)
{
-
+ if (history.length < 2) return;
+
+ var data_set = [['Throughput'].concat(this.ids)];
+ for (var i = Math.max(history.length-10, 1); i < history.length; i++)
+ {
+ var row = new Array();
+ row.push(i.toString());
+ for (var j = 0; j < this.ids.length; j++)
+ {
+ row.push(gras_extract_throughput_delta(history[i-1], history[i], this.ids[j])/1e6);
+ }
+ data_set.push(row);
+ }
+
+ var chart_data = google.visualization.arrayToDataTable(data_set);
+ var options = {
+ width:$('#page').width()*0.33,
+ chartArea:{left:0,top:0,right:0,bottom:0,width:"100%",height:"85%"},
+ legend: {'position': 'bottom'},
+ };
+ this.chart.draw(chart_data, options);
};
diff --git a/python/gras/stats/main.html b/python/gras/stats/main.html
index 27215bf..2782d28 100644
--- a/python/gras/stats/main.html
+++ b/python/gras/stats/main.html
@@ -34,12 +34,12 @@
<tr>
<td class="chart_designer_blocks"></td>
<td><select id="chart_type_selector" /></td>
- <td>Updates/sec: <input type="number" name="rate" min="1" max="10" size="4" /></td>
+ <td>Updates/sec: <input id="chart_update_rate" type="number" name="rate" min="1" max="10" size="4" /></td>
</tr>
<tr>
<td class="chart_designer_blocks"></td>
<td><input type="submit" value="Create New Chart" id="chart_factory_button" /></td>
- <td><label>Active?</label><input type="checkbox" name="active" /></td>
+ <td><label>Active?</label><input id="chart_active_state" type="checkbox" name="active" /></td>
</tr>
</table>
</div>
diff --git a/python/gras/stats/main.js b/python/gras/stats/main.js
index 4c935de..956405b 100644
--- a/python/gras/stats/main.js
+++ b/python/gras/stats/main.js
@@ -48,7 +48,7 @@ var gras_stats_main = function()
gras_chart_factory_init();
//init overall config gui element for rate
- var overall_rate = $('input[name="rate"]', overall_config);
+ var overall_rate = $('#chart_update_rate');
overall_rate.val(registry.overall_rate);
overall_rate.change(function()
{
@@ -57,7 +57,7 @@ var gras_stats_main = function()
//init overall config gui element for activity
registry.overall_active = true;
- var overall_active = $('input[name="active"]', overall_config);
+ var overall_active = $('#chart_active_state');
overall_active.attr('checked', registry.overall_active);
overall_active.change(function()
{