summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJosh Blum2013-05-11 19:45:33 -0700
committerJosh Blum2013-05-11 19:45:33 -0700
commit30123ef51202f8e7e8d9da833e42b23ef77e02f3 (patch)
tree660f82b9ebe8f69ebc7ebd737dba6bfc9b6bd986 /python
parent4e210ade63d800b1a8671999f19019abd3c2ae03 (diff)
downloadsandhi-30123ef51202f8e7e8d9da833e42b23ef77e02f3.tar.gz
sandhi-30123ef51202f8e7e8d9da833e42b23ef77e02f3.tar.bz2
sandhi-30123ef51202f8e7e8d9da833e42b23ef77e02f3.zip
gras: added port downtime measurements
Diffstat (limited to 'python')
-rw-r--r--python/gras/query/CMakeLists.txt1
-rw-r--r--python/gras/query/chart_factory.js1
-rw-r--r--python/gras/query/chart_port_downtime.js47
-rw-r--r--python/gras/query/main.html1
4 files changed, 50 insertions, 0 deletions
diff --git a/python/gras/query/CMakeLists.txt b/python/gras/query/CMakeLists.txt
index 2758d11..f9a855e 100644
--- a/python/gras/query/CMakeLists.txt
+++ b/python/gras/query/CMakeLists.txt
@@ -21,6 +21,7 @@ INSTALL(
chart_handler_breakdown.js
chart_port_counters.js
chart_global_counters.js
+ chart_port_downtime.js
main.css
DESTINATION ${GR_PYTHON_DIR}/gras/query
COMPONENT ${GRAS_COMP_PYTHON}
diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js
index 01a7244..8b9656a 100644
--- a/python/gras/query/chart_factory.js
+++ b/python/gras/query/chart_factory.js
@@ -14,6 +14,7 @@ var gras_chart_get_registry = function()
{key:'handler_breakdown', name:'Handler Breakdown', factory:GrasChartHandlerBreakdown},
{key:'port_counters', name:'Port Counters', factory:GrasChartPortCounts},
{key:'global_counters', name:'Global Counters', factory:GrasChartGlobalCounts},
+ {key:'port_downtime', name:'Port downtime', factory:GrasChartPortDowntime},
];
}
diff --git a/python/gras/query/chart_port_downtime.js b/python/gras/query/chart_port_downtime.js
new file mode 100644
index 0000000..2de421d
--- /dev/null
+++ b/python/gras/query/chart_port_downtime.js
@@ -0,0 +1,47 @@
+function GrasChartPortDowntime(args, panel)
+{
+ //input checking
+ if (args.block_ids.length != 1) throw gras_error_dialog(
+ "GrasChartPortDowntime",
+ "Error making port downtime 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(panel);
+
+ this.title = "Port Downtime - " + this.block_id;
+ this.default_width = GRAS_CHARTS_STD_WIDTH;
+}
+
+GrasChartPortDowntime.prototype.update = function(point)
+{
+ var block_data = point.blocks[this.block_id];
+ if (!block_data) return;
+
+ var raw_data = new Array();
+ raw_data.push(['Port', 'Percent']); //key
+
+ //now add input and output port data
+ $.each(block_data.inputs_idle, function(index, downtime)
+ {
+ raw_data.push(['Input'+index.toString(), downtime/block_data.tps]);
+ });
+ $.each(block_data.outputs_idle, function(index, downtime)
+ {
+ raw_data.push(['Output'+index.toString(), downtime/block_data.tps]);
+ });
+
+ //update the chart from raw data
+ var data = google.visualization.arrayToDataTable(raw_data);
+ var options = {
+ chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"},
+ };
+ if (this.gc_resize) options.width = 50;
+ if (this.gc_resize) options.height = 50;
+
+ this.chart.draw(data, options);
+};
diff --git a/python/gras/query/main.html b/python/gras/query/main.html
index ca957be..3fc3508 100644
--- a/python/gras/query/main.html
+++ b/python/gras/query/main.html
@@ -16,6 +16,7 @@
<script type="text/javascript" src="/chart_handler_breakdown.js"></script>
<script type="text/javascript" src="/chart_port_counters.js"></script>
<script type="text/javascript" src="/chart_global_counters.js"></script>
+ <script type="text/javascript" src="/chart_port_downtime.js"></script>
<script type="text/javascript" src="/main.js"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});