summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum2013-06-08 11:47:18 -0700
committerJosh Blum2013-06-08 11:47:18 -0700
commit1ae22ea232efe4f0d4a3e88ea53ae1bf7f439d58 (patch)
tree63d1e11cad18a26fd96e74f6ed82e981ebbc53f5
parent1cbf83c0a382d0af7e31c601a9562636ecb5c2bb (diff)
downloadsandhi-1ae22ea232efe4f0d4a3e88ea53ae1bf7f439d58.tar.gz
sandhi-1ae22ea232efe4f0d4a3e88ea53ae1bf7f439d58.tar.bz2
sandhi-1ae22ea232efe4f0d4a3e88ea53ae1bf7f439d58.zip
query: added tabs per thread pool on global counts
-rw-r--r--query/chart_global_counters.js69
1 files changed, 56 insertions, 13 deletions
diff --git a/query/chart_global_counters.js b/query/chart_global_counters.js
index cd5309d..500de32 100644
--- a/query/chart_global_counters.js
+++ b/query/chart_global_counters.js
@@ -11,13 +11,45 @@ function GrasChartGlobalCounts(args, panel)
this.div = $('<div />').attr({class:'chart_total_counts'});
$(panel).append(this.div);
this.title = "Global Counters"
+
+ this.counts_ul = $('<ul />');
+ this.div.append(this.counts_ul);
+ this.tabs_top = $('<div />');
+ this.div.append(this.tabs_top);
+ this.make_tabbed_thread_pool_counts(0);
+}
+
+GrasChartGlobalCounts.prototype.make_tabbed_thread_pool_counts = function(num)
+{
+ var key = 'chart_global_counter_tabs' + Math.random().toString(36).substring(7);
+ var tabs = $('<div />').attr('id', key);
+
+ //insert the tabs into the upper div
+ this.tabs_top.empty().append(tabs);
+
+ var tabs_hdr = $('<ul />');
+ tabs.append(tabs_hdr);
+
+ //create headers and body
+ this.tp_infos = new Array();
+ for (var i = 0; i < num; i++)
+ {
+ var href = key + '-' + i.toString();
+ var tab_a = $('<a />').attr('href', '#' + href).text(i.toString());
+ var tab_li = $('<li />');
+ tab_li.append(tab_a);
+ tabs_hdr.append(tab_li);
+ var tab_div = $('<div />').attr('id', href);
+ tabs.append(tab_div);
+ this.tp_infos.push(tab_div);
+ }
+
+ tabs.tabs(); //generates jquery ui tabs
}
GrasChartGlobalCounts.prototype.update = function(point)
{
- var ul = $('<ul />');
- $('ul', this.div).remove(); //clear old lists
- this.div.append(ul);
+ var self = this;
function make_entry(strong, span)
{
@@ -34,13 +66,8 @@ GrasChartGlobalCounts.prototype.update = function(point)
['Peak size', 'bytes', 'default_allocator_peak_bytes_allocated'],
['Num mallocs', '', 'default_allocator_allocation_count'],
];
- var framework_stuff = [
- ['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 ul = this.counts_ul.empty();
var entries = 0;
$.each(allocator_stuff, function(contents_i, contents)
@@ -55,9 +82,27 @@ GrasChartGlobalCounts.prototype.update = function(point)
entries++;
}
});
+ if (entries == 0) make_entry("Counts", "none");
+
+ var framework_stuff = [
+ ['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'],
+ ];
+
+ if (point.thread_pools.length != this.tp_infos.length)
+ {
+ this.make_tabbed_thread_pool_counts(point.thread_pools.length);
+ }
+
$.each(point.thread_pools, function(tp_i, tp_info)
{
- make_entry('ThreadPool' + tp_i.toString(), '');
+ $('ul', self.tp_infos[tp_i]).remove(); //clear old lists
+ ul = $('<ul />');
+ self.tp_infos[tp_i].append(ul);
+
$.each(framework_stuff, function(contents_i, contents)
{
var dir = contents[0];
@@ -67,9 +112,7 @@ GrasChartGlobalCounts.prototype.update = function(point)
if (count > 0)
{
make_entry(dir, count.toString() + ' ' + units);
- entries++;
}
});
});
- if (entries == 0) make_entry("Counts", "none");
}