diff options
-rw-r--r-- | docs/jarmon_example_recipes.js | 46 | ||||
-rw-r--r-- | docs/rrd_finder.rpy (renamed from rrd_finder.rpy) | 0 | ||||
-rw-r--r-- | index.html | 42 | ||||
-rw-r--r-- | jarmon.js | 19 | ||||
-rw-r--r-- | rrd_list.json | 69 |
5 files changed, 44 insertions, 132 deletions
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/rrd_finder.rpy b/docs/rrd_finder.rpy index c7c8517..c7c8517 100644 --- a/rrd_finder.rpy +++ b/docs/rrd_finder.rpy @@ -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(); }); </script> </head> @@ -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<recipes.length; i++) { recipe = recipes[i]; @@ -608,18 +607,10 @@ jarmon.Chart.fromRecipe = function(rrdUrlList, recipes, templateFactory, downloa ds = recipe['data'][j][1]; label = recipe['data'][j][2]; unit = recipe['data'][j][3]; - re = new RegExp('.*/' + rrd, 'gm'); - match = rrdUrlBlob.match(re); - if(!match) { - continue; - } - for(x=0; x<match.length; x++) { - - if(typeof dataDict[match[x]] == 'undefined') { - dataDict[match[x]] = new jarmon.RrdQueryRemote(match[x], unit, downloader); - } - chartData.push([label, new jarmon.RrdQueryDsProxy(dataDict[match[x]], ds)]); + if(typeof dataDict[rrd] == 'undefined') { + dataDict[rrd] = new jarmon.RrdQueryRemote(rrd, unit, downloader); } + chartData.push([label, new jarmon.RrdQueryDsProxy(dataDict[rrd], ds)]); } if(chartData.length > 0) { template = templateFactory(); 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"] |