diff options
author | Josh Blum | 2013-06-08 11:47:18 -0700 |
---|---|---|
committer | Josh Blum | 2013-06-08 11:47:18 -0700 |
commit | 1ae22ea232efe4f0d4a3e88ea53ae1bf7f439d58 (patch) | |
tree | 63d1e11cad18a26fd96e74f6ed82e981ebbc53f5 | |
parent | 1cbf83c0a382d0af7e31c601a9562636ecb5c2bb (diff) | |
download | sandhi-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.js | 69 |
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"); } |