From 121a609ed2cadd50e5e85093e2ac524bdd279d02 Mon Sep 17 00:00:00 2001
From: Josh Blum
Date: Fri, 10 May 2013 00:00:47 -0700
Subject: gras: added more theron counters + query work
---
python/gras/query/CMakeLists.txt | 4 +-
python/gras/query/chart_allocator_counts.js | 52 --------------------
python/gras/query/chart_factory.js | 4 +-
python/gras/query/chart_global_counters.js | 58 ++++++++++++++++++++++
python/gras/query/chart_port_counters.js | 76 +++++++++++++++++++++++++++++
python/gras/query/chart_total_io_counts.js | 72 ---------------------------
python/gras/query/main.css | 4 +-
python/gras/query/main.html | 4 +-
8 files changed, 142 insertions(+), 132 deletions(-)
delete mode 100644 python/gras/query/chart_allocator_counts.js
create mode 100644 python/gras/query/chart_global_counters.js
create mode 100644 python/gras/query/chart_port_counters.js
delete mode 100644 python/gras/query/chart_total_io_counts.js
(limited to 'python')
diff --git a/python/gras/query/CMakeLists.txt b/python/gras/query/CMakeLists.txt
index a448068..2758d11 100644
--- a/python/gras/query/CMakeLists.txt
+++ b/python/gras/query/CMakeLists.txt
@@ -19,8 +19,8 @@ INSTALL(
chart_overhead_compare.js
chart_overall_throughput.js
chart_handler_breakdown.js
- chart_total_io_counts.js
- chart_allocator_counts.js
+ chart_port_counters.js
+ chart_global_counters.js
main.css
DESTINATION ${GR_PYTHON_DIR}/gras/query
COMPONENT ${GRAS_COMP_PYTHON}
diff --git a/python/gras/query/chart_allocator_counts.js b/python/gras/query/chart_allocator_counts.js
deleted file mode 100644
index 5219672..0000000
--- a/python/gras/query/chart_allocator_counts.js
+++ /dev/null
@@ -1,52 +0,0 @@
-function GrasChartAllocatorCounts(args, panel)
-{
- //input checking
- if (args.block_ids.length != 0) throw gras_error_dialog(
- "GrasChartAllocatorCounts",
- "Error making allocator counts chart.\n"+
- "Do not specify any blocks for this chart."
- );
-
- //settings
- this.div = $('
').attr({class:'chart_total_io_counts'});
- $(panel).append(this.div);
- this.title = "Theron allocator counts"
-}
-
-GrasChartAllocatorCounts.prototype.update = function(point)
-{
- var ul = $('');
- $('ul', this.div).remove(); //clear old lists
- this.div.append(ul);
-
- function make_entry(strong, span)
- {
- var li = $('');
- var strong = $('').text(strong + ": ");
- var span = $('').text(span);
- li.append(strong);
- li.append(span);
- ul.append(li);
- }
-
- var stuff = [
- ['Allocated', 'bytes', 'bytes_allocated'],
- ['Peak size', 'bytes', 'peak_bytes_allocated'],
- ['Malloc\'d', 'times', 'allocation_count'],
- ];
-
- var entries = 0;
- $.each(stuff, function(contents_i, contents)
- {
- var dir = contents[0];
- var units = contents[1];
- var key = contents[2];
- var count = (key in point)? point[key] : 0;
- if (count > 0)
- {
- make_entry(dir, count.toString() + ' ' + units);
- entries++;
- }
- });
- if (entries == 0) make_entry("Counts", "none");
-}
diff --git a/python/gras/query/chart_factory.js b/python/gras/query/chart_factory.js
index dbb141a..01a7244 100644
--- a/python/gras/query/chart_factory.js
+++ b/python/gras/query/chart_factory.js
@@ -12,8 +12,8 @@ var gras_chart_get_registry = function()
{key:'overhead_compare', name:'Overhead Compare', factory:GrasChartOverheadCompare},
{key:'overall_throughput', name:'Overall Throughput', factory:GrasChartOverallThroughput},
{key:'handler_breakdown', name:'Handler Breakdown', factory:GrasChartHandlerBreakdown},
- {key:'total_io_counts', name:'I/O port Totals', factory:GrasChartTotalIoCounts},
- {key:'allocator_counts', name:'Allocator Counts', factory:GrasChartAllocatorCounts},
+ {key:'port_counters', name:'Port Counters', factory:GrasChartPortCounts},
+ {key:'global_counters', name:'Global Counters', factory:GrasChartGlobalCounts},
];
}
diff --git a/python/gras/query/chart_global_counters.js b/python/gras/query/chart_global_counters.js
new file mode 100644
index 0000000..1708c01
--- /dev/null
+++ b/python/gras/query/chart_global_counters.js
@@ -0,0 +1,58 @@
+function GrasChartGlobalCounts(args, panel)
+{
+ //input checking
+ if (args.block_ids.length != 0) throw gras_error_dialog(
+ "GrasChartGlobalCounts",
+ "Error making global counts chart.\n"+
+ "Do not specify any blocks for this chart."
+ );
+
+ //settings
+ this.div = $('').attr({class:'chart_total_counts'});
+ $(panel).append(this.div);
+ this.title = "Global Counters"
+}
+
+GrasChartGlobalCounts.prototype.update = function(point)
+{
+ var ul = $('');
+ $('ul', this.div).remove(); //clear old lists
+ this.div.append(ul);
+
+ function make_entry(strong, span)
+ {
+ var li = $('');
+ var strong = $('').text(strong + ": ");
+ var span = $('').text(span);
+ li.append(strong);
+ li.append(span);
+ ul.append(li);
+ }
+
+ var stuff = [
+ ['Allocated', 'bytes', 'default_allocator_bytes_allocated'],
+ ['Peak size', 'bytes', 'default_allocator_peak_bytes_allocated'],
+ ['Num mallocs', '', 'default_allocator_allocation_count'],
+
+ ['Total msgs', '', 'framework_counter_messages_processed'],
+ ['Thread yields', '', 'framework_counter_yields'],
+ ['Local pushes', '', 'framework_counter_local_pushes'],
+ ['Shared pushes', '', 'framework_counter_shared_pushes'],
+ ['Msg queue max', '', 'framework_counter_mailbox_queue_max'],
+ ];
+
+ var entries = 0;
+ $.each(stuff, function(contents_i, contents)
+ {
+ var dir = contents[0];
+ var units = contents[1];
+ var key = contents[2];
+ var count = (key in point)? point[key] : 0;
+ if (count > 0)
+ {
+ make_entry(dir, count.toString() + ' ' + units);
+ entries++;
+ }
+ });
+ if (entries == 0) make_entry("Counts", "none");
+}
diff --git a/python/gras/query/chart_port_counters.js b/python/gras/query/chart_port_counters.js
new file mode 100644
index 0000000..af74c33
--- /dev/null
+++ b/python/gras/query/chart_port_counters.js
@@ -0,0 +1,76 @@
+function GrasChartPortCounts(args, panel)
+{
+ //input checking
+ if (args.block_ids.length != 1) throw gras_error_dialog(
+ "GrasChartPortCounts",
+ "Error making total port counts chart.\n"+
+ "Specify only one block for this chart."
+ );
+
+ //settings
+ this.block_id = args.block_ids[0];
+ this.div = $('').attr({class:'chart_total_counts'});
+ $(panel).append(this.div);
+ this.title = "Port Counters - " + this.block_id;
+}
+
+GrasChartPortCounts.prototype.update = function(point)
+{
+ var block_data = point.blocks[this.block_id];
+ if (!block_data) return;
+ var ul = $('');
+ $('ul', this.div).remove(); //clear old lists
+ this.div.append(ul);
+
+ function make_entry(strong, span)
+ {
+ var li = $('');
+ var strong = $('').text(strong + ": ");
+ var span = $('').text(span);
+ li.append(strong);
+ li.append(span);
+ ul.append(li);
+ }
+
+ //create total time elapsed entry
+ {
+ var init_time = block_data.init_time;
+ var stats_time = block_data.stats_time;
+ var tps = block_data.tps;
+ var duration = (stats_time - init_time)/tps;
+ make_entry('Elapsed', duration.toFixed(2).toString() + ' secs');
+ }
+
+ var stuff = [
+ ['Enque', 'items', 'items_enqueued'],
+ ['Enque', 'tags', 'tags_enqueued'],
+ ['Enque', 'msgs', 'msgs_enqueued'],
+ ['Input', 'items', 'items_consumed'],
+ ['Input', 'tags', 'tags_consumed'],
+ ['Input', 'msgs', 'msgs_consumed'],
+ ['Output', 'items', 'items_produced'],
+ ['Output', 'tags', 'tags_produced'],
+ ['Output', 'msgs', 'msgs_produced'],
+ ['Copied', 'bytes', 'bytes_copied'],
+ ];
+
+ $.each(stuff, function(contents_i, contents)
+ {
+ var dir = contents[0];
+ var units = contents[1];
+ var key = contents[2];
+ $.each(block_data[key], function(index, count)
+ {
+ if (count > 0)
+ {
+ make_entry(dir + index.toString(), count.toString() + ' ' + units);
+ }
+ });
+ });
+
+ var actor_depth = block_data.actor_queue_depth;
+ if (actor_depth > 10) //only show if its large
+ {
+ make_entry('Actor depth', actor_depth.toString() + ' msgs');
+ }
+}
diff --git a/python/gras/query/chart_total_io_counts.js b/python/gras/query/chart_total_io_counts.js
deleted file mode 100644
index ac1fb0e..0000000
--- a/python/gras/query/chart_total_io_counts.js
+++ /dev/null
@@ -1,72 +0,0 @@
-function GrasChartTotalIoCounts(args, panel)
-{
- //input checking
- if (args.block_ids.length != 1) throw gras_error_dialog(
- "GrasChartTotalIoCounts",
- "Error making total IO counts chart.\n"+
- "Specify only one block for this chart."
- );
-
- //settings
- this.block_id = args.block_ids[0];
- this.div = $('').attr({class:'chart_total_io_counts'});
- $(panel).append(this.div);
- this.title = "I/O Totals - " + this.block_id;
-}
-
-GrasChartTotalIoCounts.prototype.update = function(point)
-{
- var block_data = point.blocks[this.block_id];
- var ul = $('');
- $('ul', this.div).remove(); //clear old lists
- this.div.append(ul);
-
- function make_entry(strong, span)
- {
- var li = $('');
- var strong = $('').text(strong + ": ");
- var span = $('').text(span);
- li.append(strong);
- li.append(span);
- ul.append(li);
- }
-
- //create total time elapsed entry
- {
- var init_time = block_data.init_time;
- var stats_time = block_data.stats_time;
- var tps = block_data.tps;
- var duration = (stats_time - init_time)/tps;
- make_entry('Elapsed', duration.toFixed(2).toString() + ' secs');
- }
-
- var stuff = [
- ['Enque', 'items', 'items_enqueued'],
- ['Enque', 'tags', 'tags_enqueued'],
- ['Enque', 'msgs', 'msgs_enqueued'],
- ['Input', 'items', 'items_consumed'],
- ['Input', 'tags', 'tags_consumed'],
- ['Input', 'msgs', 'msgs_consumed'],
- ['Output', 'items', 'items_produced'],
- ['Output', 'tags', 'tags_produced'],
- ['Output', 'msgs', 'msgs_produced'],
- ['Copied', 'bytes', 'bytes_copied'],
- ];
-
- $.each(stuff, function(contents_i, contents)
- {
- var dir = contents[0];
- var units = contents[1];
- var key = contents[2];
- $.each(block_data[key], function(index, count)
- {
- if (count > 0)
- {
- make_entry(dir + index.toString(), count.toString() + ' ' + units);
- }
- });
- });
-
- var actor_depth = block_data.actor_queue_depth;
- if (actor_depth > 1) make_entry('Actor depth', actor_depth.toString() + ' msgs');
-}
diff --git a/python/gras/query/main.css b/python/gras/query/main.css
index a428111..4d933fa 100644
--- a/python/gras/query/main.css
+++ b/python/gras/query/main.css
@@ -37,12 +37,12 @@ width:100%;
height:100%;
}
-.chart_total_io_counts li
+.chart_total_counts li
{
list-style-type:none;
text-align: left;
padding: 0px;
-margin: 0px;
+margin-left: -30px;
font-size:90%;
}
diff --git a/python/gras/query/main.html b/python/gras/query/main.html
index 64d5809..ca957be 100644
--- a/python/gras/query/main.html
+++ b/python/gras/query/main.html
@@ -14,8 +14,8 @@
-
-
+
+