From d9601a87d071f066f0c58d3a8b93687e0d0969c4 Mon Sep 17 00:00:00 2001 From: Richard Wall Date: Sun, 1 Aug 2010 12:12:55 +0100 Subject: get rid of the separate loading of the available rrd list --- docs/jarmon_example_recipes.js | 46 ++++++++++++++-------------- docs/rrd_finder.rpy | 20 ++++++++++++ index.html | 42 ++++++++++--------------- jarmon.js | 19 +++--------- rrd_finder.rpy | 20 ------------ rrd_list.json | 69 ------------------------------------------ 6 files changed, 64 insertions(+), 152 deletions(-) create mode 100644 docs/rrd_finder.rpy delete mode 100644 rrd_finder.rpy delete mode 100644 rrd_list.json diff --git a/docs/jarmon_example_recipes.js b/docs/jarmon_example_recipes.js index 73dd3d5..90b5c2e 100644 --- a/docs/jarmon_example_recipes.js +++ b/docs/jarmon_example_recipes.js @@ -14,26 +14,26 @@ jarmon.COLLECTD_RECIPES = { { title: 'CPU Usage', data: [ - ['cpu-0/cpu-wait.rrd', 0, 'CPU-0 Wait', '%'], - ['cpu-1/cpu-wait.rrd', 0, 'CPU-1 Wait', '%'], - ['cpu-0/cpu-system.rrd', 0, 'CPU-0 System', '%'], - ['cpu-1/cpu-system.rrd', 0, 'CPU-1 System', '%'], - ['cpu-0/cpu-user.rrd', 0, 'CPU-0 User', '%'], - ['cpu-1/cpu-user.rrd', 0, 'CPU-1 User', '%'] + ['data/cpu-0/cpu-wait.rrd', 0, 'CPU-0 Wait', '%'], + ['data/cpu-1/cpu-wait.rrd', 0, 'CPU-1 Wait', '%'], + ['data/cpu-0/cpu-system.rrd', 0, 'CPU-0 System', '%'], + ['data/cpu-1/cpu-system.rrd', 0, 'CPU-1 System', '%'], + ['data/cpu-0/cpu-user.rrd', 0, 'CPU-0 User', '%'], + ['data/cpu-1/cpu-user.rrd', 0, 'CPU-1 User', '%'] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS, jarmon.Chart.STACKED_OPTIONS) - }, + } ], 'memory': [ { title: 'Memory', data: [ - ['memory/memory-buffered.rrd', 0, 'Buffered', 'B'], - ['memory/memory-used.rrd', 0, 'Used', 'B'], - ['memory/memory-cached.rrd', 0, 'Cached', 'B'], - ['memory/memory-free.rrd', 0, 'Free', 'B'] + ['data/memory/memory-buffered.rrd', 0, 'Buffered', 'B'], + ['data/memory/memory-used.rrd', 0, 'Used', 'B'], + ['data/memory/memory-cached.rrd', 0, 'Cached', 'B'], + ['data/memory/memory-free.rrd', 0, 'Free', 'B'] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS, jarmon.Chart.STACKED_OPTIONS) @@ -44,10 +44,10 @@ jarmon.COLLECTD_RECIPES = { { title: 'DNS Query Types', data: [ - ['dns/dns_qtype-A.rrd', 0, 'A', 'Q/s'], - ['dns/dns_qtype-PTR.rrd', 0, 'PTR', 'Q/s'], - ['dns/dns_qtype-SOA.rrd', 0, 'SOA', 'Q/s'], - ['dns/dns_qtype-SRV.rrd', 0, 'SRV', 'Q/s'] + ['data/dns/dns_qtype-A.rrd', 0, 'A', 'Q/s'], + ['data/dns/dns_qtype-PTR.rrd', 0, 'PTR', 'Q/s'], + ['data/dns/dns_qtype-SOA.rrd', 0, 'SOA', 'Q/s'], + ['data/dns/dns_qtype-SRV.rrd', 0, 'SRV', 'Q/s'] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS) }, @@ -55,9 +55,9 @@ jarmon.COLLECTD_RECIPES = { { title: 'DNS Return Codes', data: [ - ['dns/dns_rcode-NOERROR.rrd', 0, 'NOERROR', 'Q/s'], - ['dns/dns_rcode-NXDOMAIN.rrd', 0, 'NXDOMAIN', 'Q/s'], - ['dns/dns_rcode-SERVFAIL.rrd', 0, 'SERVFAIL', 'Q/s'] + ['data/dns/dns_rcode-NOERROR.rrd', 0, 'NOERROR', 'Q/s'], + ['data/dns/dns_rcode-NXDOMAIN.rrd', 0, 'NXDOMAIN', 'Q/s'], + ['data/dns/dns_rcode-SERVFAIL.rrd', 0, 'SERVFAIL', 'Q/s'] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS) } @@ -67,9 +67,9 @@ jarmon.COLLECTD_RECIPES = { { title: 'Load Average', data: [ - ['load/load.rrd', 'shortterm', 'Short Term', ''], - ['load/load.rrd', 'midterm', 'Medium Term', ''], - ['load/load.rrd', 'longterm', 'Long Term', ''] + ['data/load/load.rrd', 'shortterm', 'Short Term', ''], + ['data/load/load.rrd', 'midterm', 'Medium Term', ''], + ['data/load/load.rrd', 'longterm', 'Long Term', ''] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS) } @@ -79,8 +79,8 @@ jarmon.COLLECTD_RECIPES = { { title: 'Wlan0 Throughput', data: [ - ['interface/if_octets-wlan0.rrd', 'tx', 'Transmit', 'b/s'], - ['interface/if_octets-wlan0.rrd', 'rx', 'Receive', 'b/s'] + ['data/interface/if_octets-wlan0.rrd', 'tx', 'Transmit', 'b/s'], + ['data/interface/if_octets-wlan0.rrd', 'rx', 'Receive', 'b/s'] ], options: jQuery.extend(true, {}, jarmon.Chart.BASE_OPTIONS) } diff --git a/docs/rrd_finder.rpy b/docs/rrd_finder.rpy new file mode 100644 index 0000000..c7c8517 --- /dev/null +++ b/docs/rrd_finder.rpy @@ -0,0 +1,20 @@ +import json +import os + +from twisted.python.filepath import FilePath +from twisted.web.resource import Resource + +RRD_PATH = '/var/lib/collectd/rrd/aziz/' +URL_BASE = 'data' + +class RrdFinder(Resource): + isLeaf = True + def render_GET(self, request): + p = FilePath(RRD_PATH) + paths = [] + for f in p.walk(): + if f.basename().endswith('.rrd'): + paths.append(os.path.join(URL_BASE, *f.segmentsFrom(p))) + return json.dumps(paths) + +resource = RrdFinder() diff --git a/index.html b/index.html index 3db6594..cdc920e 100644 --- a/index.html +++ b/index.html @@ -22,29 +22,29 @@ { title: 'Jarmon Webserver TCP Stats', data: [ - ['tcpconns-8080-local/tcp_connections-CLOSE_WAIT.rrd', 0, 'CLOSE_WAIT', ''], - ['tcpconns-8080-local/tcp_connections-SYN_RECV.rrd', 0, 'SYN_RECV', ''], - ['tcpconns-8080-local/tcp_connections-TIME_WAIT.rrd', 0, 'TIME_WAIT', ''], - ['tcpconns-8080-local/tcp_connections-CLOSED.rrd', 0, 'CLOSED', ''], - ['tcpconns-8080-local/tcp_connections-FIN_WAIT2.rrd', 0, 'FIN_WAIT2', ''], - ['tcpconns-8080-local/tcp_connections-FIN_WAIT1.rrd', 0, 'FIN_WAIT1', ''], - ['tcpconns-8080-local/tcp_connections-ESTABLISHED.rrd', 0, 'ESTABLISHED', ''], - ['tcpconns-8080-local/tcp_connections-LAST_ACK.rrd', 0, 'LAST_ACK', ''], - ['tcpconns-8080-local/tcp_connections-LISTEN.rrd', 0, 'LISTEN', ''], - ['tcpconns-8080-local/tcp_connections-SYN_SENT.rrd', 0, 'SYN_SENT', ''], - ['tcpconns-8080-local/tcp_connections-CLOSING.rrd', 0, 'CLOSING', ''] + ['data/tcpconns-8080-local/tcp_connections-CLOSE_WAIT.rrd', 0, 'CLOSE_WAIT', ''], + ['data/tcpconns-8080-local/tcp_connections-SYN_RECV.rrd', 0, 'SYN_RECV', ''], + ['data/tcpconns-8080-local/tcp_connections-TIME_WAIT.rrd', 0, 'TIME_WAIT', ''], + ['data/tcpconns-8080-local/tcp_connections-CLOSED.rrd', 0, 'CLOSED', ''], + ['data/tcpconns-8080-local/tcp_connections-FIN_WAIT2.rrd', 0, 'FIN_WAIT2', ''], + ['data/tcpconns-8080-local/tcp_connections-FIN_WAIT1.rrd', 0, 'FIN_WAIT1', ''], + ['data/tcpconns-8080-local/tcp_connections-ESTABLISHED.rrd', 0, 'ESTABLISHED', ''], + ['data/tcpconns-8080-local/tcp_connections-LAST_ACK.rrd', 0, 'LAST_ACK', ''], + ['data/tcpconns-8080-local/tcp_connections-LISTEN.rrd', 0, 'LISTEN', ''], + ['data/tcpconns-8080-local/tcp_connections-SYN_SENT.rrd', 0, 'SYN_SENT', ''], + ['data/tcpconns-8080-local/tcp_connections-CLOSING.rrd', 0, 'CLOSING', ''] ], options: jQuery.extend(true, {yaxis: {tickDecimals: 0}}, jarmon.Chart.BASE_OPTIONS, jarmon.Chart.STACKED_OPTIONS) - }, + } ]; - function initialiseCharts(rrdUrlList) { + function initialiseCharts() { /** * Setup chart date range controls and all charts **/ - var p = new jarmon.Parallimiter(2); + var p = new jarmon.Parallimiter(1); function serialDownloader(url) { return p.addCallable(jarmon.downloadBinary, [url]); } @@ -72,22 +72,18 @@ cc.charts = [].concat( jarmon.Chart.fromRecipe( - rrdUrlList, [].concat( jarmon.COLLECTD_RECIPES.cpu, jarmon.COLLECTD_RECIPES.memory, jarmon.COLLECTD_RECIPES.load), templateFactory('.system-charts'), serialDownloader), jarmon.Chart.fromRecipe( - rrdUrlList, jarmon.COLLECTD_RECIPES.interface, templateFactory('.network-charts'), serialDownloader), jarmon.Chart.fromRecipe( - rrdUrlList, jarmon.COLLECTD_RECIPES.dns, templateFactory('.dns-charts'), serialDownloader), jarmon.Chart.fromRecipe( - rrdUrlList, application_recipes, templateFactory('.application-charts'), serialDownloader) ); @@ -97,14 +93,6 @@ } $(function() { - // Download a list of available rrd files and use it to generate - // any viable chart recipes - // A static json file containing a list of rrd urls - $.getJSON('rrd_list.json', initialiseCharts); - - // Alternatively use a dynamically generated list of rrd urls - //$.getJSON('rrd_finder.rpy', initialiseCharts); - // Add dhtml calendars to the date input fields $(".timerange_control img") .dateinput({ @@ -171,6 +159,8 @@ // Setup dhtml tabs $(".css-tabs").tabs(".css-panes > div", {history: true}); + + initialiseCharts(); }); diff --git a/jarmon.js b/jarmon.js index 8f7edb7..5ec5283 100644 --- a/jarmon.js +++ b/jarmon.js @@ -582,7 +582,7 @@ jarmon.Chart.prototype.draw = function() { }; -jarmon.Chart.fromRecipe = function(rrdUrlList, recipes, templateFactory, downloader) { +jarmon.Chart.fromRecipe = function(recipes, templateFactory, downloader) { /** * A factory function to generate a list of I{Chart} from a list of recipes * and a list of available rrd files in collectd path format. @@ -592,12 +592,11 @@ jarmon.Chart.fromRecipe = function(rrdUrlList, recipes, templateFactory, downloa * @param templateFactory: A callable which generates an html template for a * chart. **/ - var rrdUrlBlob = rrdUrlList.join('\n') var charts = []; var dataDict = {}; - var recipe, chartData, template, c, i, j, x, ds, label, rrd, unit, re, match; + var recipe, chartData, template, c, i, j, ds, label, rrd, unit, re, match; for(i=0; i 0) { template = templateFactory(); diff --git a/rrd_finder.rpy b/rrd_finder.rpy deleted file mode 100644 index c7c8517..0000000 --- a/rrd_finder.rpy +++ /dev/null @@ -1,20 +0,0 @@ -import json -import os - -from twisted.python.filepath import FilePath -from twisted.web.resource import Resource - -RRD_PATH = '/var/lib/collectd/rrd/aziz/' -URL_BASE = 'data' - -class RrdFinder(Resource): - isLeaf = True - def render_GET(self, request): - p = FilePath(RRD_PATH) - paths = [] - for f in p.walk(): - if f.basename().endswith('.rrd'): - paths.append(os.path.join(URL_BASE, *f.segmentsFrom(p))) - return json.dumps(paths) - -resource = RrdFinder() diff --git a/rrd_list.json b/rrd_list.json deleted file mode 100644 index 2dd35de..0000000 --- a/rrd_list.json +++ /dev/null @@ -1,69 +0,0 @@ -["data/cpu-1/cpu-steal.rrd", - "data/cpu-1/cpu-user.rrd", - "data/cpu-1/cpu-softirq.rrd", - "data/cpu-1/cpu-nice.rrd", - "data/cpu-1/cpu-system.rrd", - "data/cpu-1/cpu-interrupt.rrd", - "data/cpu-1/cpu-idle.rrd", - "data/cpu-1/cpu-wait.rrd", - "data/cpu-0/cpu-steal.rrd", - "data/cpu-0/cpu-user.rrd", - "data/cpu-0/cpu-softirq.rrd", - "data/cpu-0/cpu-nice.rrd", - "data/cpu-0/cpu-system.rrd", - "data/cpu-0/cpu-interrupt.rrd", - "data/cpu-0/cpu-idle.rrd", - "data/cpu-0/cpu-wait.rrd", - "data/memory/memory-buffered.rrd", - "data/memory/memory-used.rrd", - "data/memory/memory-free.rrd", - "data/memory/memory-cached.rrd", - "data/tcpconns-8080-local/tcp_connections-CLOSE_WAIT.rrd", - "data/tcpconns-8080-local/tcp_connections-SYN_RECV.rrd", - "data/tcpconns-8080-local/tcp_connections-TIME_WAIT.rrd", - "data/tcpconns-8080-local/tcp_connections-CLOSED.rrd", - "data/tcpconns-8080-local/tcp_connections-FIN_WAIT2.rrd", - "data/tcpconns-8080-local/tcp_connections-FIN_WAIT1.rrd", - "data/tcpconns-8080-local/tcp_connections-ESTABLISHED.rrd", - "data/tcpconns-8080-local/tcp_connections-LAST_ACK.rrd", - "data/tcpconns-8080-local/tcp_connections-LISTEN.rrd", - "data/tcpconns-8080-local/tcp_connections-SYN_SENT.rrd", - "data/tcpconns-8080-local/tcp_connections-CLOSING.rrd", - "data/load/load.rrd", - "data/battery-0/voltage.rrd", - "data/battery-0/current.rrd", - "data/battery-0/charge.rrd", - "data/interface/if_errors-tunl0.rrd", - "data/interface/if_errors-vboxnet0.rrd", - "data/interface/if_octets-tunl0.rrd", - "data/interface/if_errors-ppp0.rrd", - "data/interface/if_octets-wlan0.rrd", - "data/interface/if_packets-eth0.rrd", - "data/interface/if_packets-wlan0.rrd", - "data/interface/if_packets-wmaster0.rrd", - "data/interface/if_octets-vboxnet0.rrd", - "data/interface/if_octets-ppp0.rrd", - "data/interface/if_octets-lo.rrd", - "data/interface/if_octets-pan0.rrd", - "data/interface/if_errors-pan0.rrd", - "data/interface/if_packets-vboxnet0.rrd", - "data/interface/if_errors-lo.rrd", - "data/interface/if_errors-eth0.rrd", - "data/interface/if_packets-lo.rrd", - "data/interface/if_packets-ppp0.rrd", - "data/interface/if_octets-wmaster0.rrd", - "data/interface/if_packets-pan0.rrd", - "data/interface/if_errors-wmaster0.rrd", - "data/interface/if_packets-tunl0.rrd", - "data/interface/if_errors-wlan0.rrd", - "data/interface/if_octets-eth0.rrd", - "data/dns/dns_qtype-SRV.rrd", - "data/dns/dns_qtype-AAAA.rrd", - "data/dns/dns_opcode-Query.rrd", - "data/dns/dns_qtype-A.rrd", - "data/dns/dns_rcode-NXDOMAIN.rrd", - "data/dns/dns_octets.rrd", - "data/dns/dns_qtype-PTR.rrd", - "data/dns/dns_rcode-SERVFAIL.rrd", - "data/dns/dns_qtype-SOA.rrd", - "data/dns/dns_rcode-NOERROR.rrd"] -- cgit v1.2.3