rvnstat 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/._README.md +0 -0
  3. data/._ss.png +0 -0
  4. data/.gitignore +17 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +34 -0
  8. data/Rakefile +1 -0
  9. data/bin/._rvnstat +0 -0
  10. data/bin/rvnstat +9 -0
  11. data/config.ru +4 -0
  12. data/config.yml +3 -0
  13. data/lib/._app.rb +0 -0
  14. data/lib/._config.rb +0 -0
  15. data/lib/._require.rb +0 -0
  16. data/lib/._rvnstat.rb +0 -0
  17. data/lib/._vnstat.rb +0 -0
  18. data/lib/app.rb +102 -0
  19. data/lib/config.rb +13 -0
  20. data/lib/require.rb +10 -0
  21. data/lib/rvnstat.rb +5 -0
  22. data/lib/rvnstat/._version.rb +0 -0
  23. data/lib/rvnstat/version.rb +3 -0
  24. data/lib/vnstat.rb +74 -0
  25. data/public/CNAME +1 -0
  26. data/public/CONTRIBUTING.md +192 -0
  27. data/public/Gruntfile.js +418 -0
  28. data/public/LICENSE +21 -0
  29. data/public/README.md +173 -0
  30. data/public/_config.yml +35 -0
  31. data/public/bower.json +24 -0
  32. data/public/browserstack.json +44 -0
  33. data/public/composer.json +25 -0
  34. data/public/dist/css/._custom.css +0 -0
  35. data/public/dist/css/bootstrap-theme.css +347 -0
  36. data/public/dist/css/bootstrap-theme.css.map +1 -0
  37. data/public/dist/css/bootstrap-theme.min.css +7 -0
  38. data/public/dist/css/bootstrap.css +5831 -0
  39. data/public/dist/css/bootstrap.css.map +1 -0
  40. data/public/dist/css/bootstrap.min.css +7 -0
  41. data/public/dist/css/custom.css +20 -0
  42. data/public/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  43. data/public/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  44. data/public/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  45. data/public/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  46. data/public/dist/js/bootstrap.js +1951 -0
  47. data/public/dist/js/bootstrap.min.js +6 -0
  48. data/public/docs/LICENSE +319 -0
  49. data/public/docs/_data/glyphicons.yml +203 -0
  50. data/public/docs/_data/showcase.yml +19 -0
  51. data/public/docs/_includes/ads.html +1 -0
  52. data/public/docs/_includes/customizer-variables.html +1690 -0
  53. data/public/docs/_includes/footer.html +70 -0
  54. data/public/docs/_includes/header.html +42 -0
  55. data/public/docs/_includes/nav-about.html +9 -0
  56. data/public/docs/_includes/nav-components.html +138 -0
  57. data/public/docs/_includes/nav-css.html +127 -0
  58. data/public/docs/_includes/nav-customize.html +46 -0
  59. data/public/docs/_includes/nav-getting-started.html +62 -0
  60. data/public/docs/_includes/nav-javascript.html +89 -0
  61. data/public/docs/_includes/nav-main.html +36 -0
  62. data/public/docs/_includes/nav-migration.html +12 -0
  63. data/public/docs/_includes/social-buttons.html +16 -0
  64. data/public/docs/_layouts/default.html +55 -0
  65. data/public/docs/_layouts/home.html +18 -0
  66. data/public/docs/about.html +149 -0
  67. data/public/docs/assets/css/docs.css +1394 -0
  68. data/public/docs/assets/css/docs.min.css +6 -0
  69. data/public/docs/assets/css/pygments-manni.css +66 -0
  70. data/public/docs/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  71. data/public/docs/assets/ico/favicon.ico +0 -0
  72. data/public/docs/assets/img/components.png +0 -0
  73. data/public/docs/assets/img/devices.png +0 -0
  74. data/public/docs/assets/img/sass-less.png +0 -0
  75. data/public/docs/assets/js/application.js +101 -0
  76. data/public/docs/assets/js/customize.min.js +49 -0
  77. data/public/docs/assets/js/customizer.js +348 -0
  78. data/public/docs/assets/js/docs.min.js +16 -0
  79. data/public/docs/assets/js/ie8-responsive-file-warning.js +12 -0
  80. data/public/docs/assets/js/raw-files.min.js +8 -0
  81. data/public/docs/assets/js/vendor/blob.js +166 -0
  82. data/public/docs/assets/js/vendor/filesaver.js +236 -0
  83. data/public/docs/assets/js/vendor/holder.js +645 -0
  84. data/public/docs/assets/js/vendor/jszip.js +1474 -0
  85. data/public/docs/assets/js/vendor/less.min.js +16 -0
  86. data/public/docs/assets/js/vendor/uglify.min.js +14 -0
  87. data/public/docs/components.html +3001 -0
  88. data/public/docs/css.html +3346 -0
  89. data/public/docs/customize.html +356 -0
  90. data/public/docs/customizer-nav.jade +15 -0
  91. data/public/docs/customizer-variables.jade +21 -0
  92. data/public/docs/dist/css/bootstrap-theme.css.map +1 -0
  93. data/public/docs/dist/css/bootstrap-theme.min.css +7 -0
  94. data/public/docs/dist/css/bootstrap.css.map +1 -0
  95. data/public/docs/dist/css/bootstrap.min.css +7 -0
  96. data/public/docs/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  97. data/public/docs/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  98. data/public/docs/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  99. data/public/docs/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  100. data/public/docs/dist/js/bootstrap.min.js +7 -0
  101. data/public/docs/examples/blog/blog.css +168 -0
  102. data/public/docs/examples/blog/index.html +171 -0
  103. data/public/docs/examples/carousel/carousel.css +148 -0
  104. data/public/docs/examples/carousel/index.html +206 -0
  105. data/public/docs/examples/cover/cover.css +161 -0
  106. data/public/docs/examples/cover/index.html +75 -0
  107. data/public/docs/examples/dashboard/dashboard.css +93 -0
  108. data/public/docs/examples/dashboard/index.html +243 -0
  109. data/public/docs/examples/grid/grid.css +28 -0
  110. data/public/docs/examples/grid/index.html +152 -0
  111. data/public/docs/examples/jumbotron-narrow/index.html +82 -0
  112. data/public/docs/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  113. data/public/docs/examples/jumbotron/index.html +99 -0
  114. data/public/docs/examples/jumbotron/jumbotron.css +5 -0
  115. data/public/docs/examples/justified-nav/index.html +84 -0
  116. data/public/docs/examples/justified-nav/justified-nav.css +88 -0
  117. data/public/docs/examples/navbar-fixed-top/index.html +91 -0
  118. data/public/docs/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  119. data/public/docs/examples/navbar-static-top/index.html +92 -0
  120. data/public/docs/examples/navbar-static-top/navbar-static-top.css +7 -0
  121. data/public/docs/examples/navbar/index.html +90 -0
  122. data/public/docs/examples/navbar/navbar.css +8 -0
  123. data/public/docs/examples/non-responsive/index.html +105 -0
  124. data/public/docs/examples/non-responsive/non-responsive.css +120 -0
  125. data/public/docs/examples/offcanvas/index.html +130 -0
  126. data/public/docs/examples/offcanvas/offcanvas.css +51 -0
  127. data/public/docs/examples/offcanvas/offcanvas.js +5 -0
  128. data/public/docs/examples/screenshots/blog.jpg +0 -0
  129. data/public/docs/examples/screenshots/carousel.jpg +0 -0
  130. data/public/docs/examples/screenshots/cover.jpg +0 -0
  131. data/public/docs/examples/screenshots/dashboard.jpg +0 -0
  132. data/public/docs/examples/screenshots/grid.jpg +0 -0
  133. data/public/docs/examples/screenshots/jumbotron-narrow.jpg +0 -0
  134. data/public/docs/examples/screenshots/jumbotron.jpg +0 -0
  135. data/public/docs/examples/screenshots/justified-nav.jpg +0 -0
  136. data/public/docs/examples/screenshots/navbar-fixed.jpg +0 -0
  137. data/public/docs/examples/screenshots/navbar-static.jpg +0 -0
  138. data/public/docs/examples/screenshots/navbar.jpg +0 -0
  139. data/public/docs/examples/screenshots/non-responsive.jpg +0 -0
  140. data/public/docs/examples/screenshots/offcanvas.jpg +0 -0
  141. data/public/docs/examples/screenshots/sign-in.jpg +0 -0
  142. data/public/docs/examples/screenshots/starter-template.jpg +0 -0
  143. data/public/docs/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  144. data/public/docs/examples/screenshots/sticky-footer.jpg +0 -0
  145. data/public/docs/examples/screenshots/theme.jpg +0 -0
  146. data/public/docs/examples/signin/index.html +50 -0
  147. data/public/docs/examples/signin/signin.css +40 -0
  148. data/public/docs/examples/starter-template/index.html +68 -0
  149. data/public/docs/examples/starter-template/starter-template.css +7 -0
  150. data/public/docs/examples/sticky-footer-navbar/index.html +91 -0
  151. data/public/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css +45 -0
  152. data/public/docs/examples/sticky-footer/index.html +55 -0
  153. data/public/docs/examples/sticky-footer/sticky-footer.css +38 -0
  154. data/public/docs/examples/theme/index.html +384 -0
  155. data/public/docs/examples/theme/theme.css +14 -0
  156. data/public/docs/getting-started.html +773 -0
  157. data/public/docs/grunt/bs-glyphicons-data-generator.js +33 -0
  158. data/public/docs/grunt/bs-lessdoc-parser.js +236 -0
  159. data/public/docs/grunt/bs-raw-files-generator.js +31 -0
  160. data/public/docs/index.html +72 -0
  161. data/public/docs/javascript.html +2141 -0
  162. data/public/docs/migration.html +423 -0
  163. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  164. data/public/fonts/glyphicons-halflings-regular.svg +229 -0
  165. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  166. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  167. data/public/js/._exporting.js +0 -0
  168. data/public/js/._highcharts-all.js +0 -0
  169. data/public/js/._jquery-min.js +0 -0
  170. data/public/js/.jscs.json +15 -0
  171. data/public/js/.jshintrc +14 -0
  172. data/public/js/affix.js +137 -0
  173. data/public/js/alert.js +88 -0
  174. data/public/js/bootstrap.min.js +6 -0
  175. data/public/js/button.js +107 -0
  176. data/public/js/carousel.js +205 -0
  177. data/public/js/collapse.js +170 -0
  178. data/public/js/dropdown.js +147 -0
  179. data/public/js/highcharts.js +294 -0
  180. data/public/js/jquery-1.11.0.min.js +4 -0
  181. data/public/js/modal.js +243 -0
  182. data/public/js/popover.js +110 -0
  183. data/public/js/scrollspy.js +153 -0
  184. data/public/js/tab.js +125 -0
  185. data/public/js/tests/index.html +54 -0
  186. data/public/js/tests/unit/affix.js +50 -0
  187. data/public/js/tests/unit/alert.js +62 -0
  188. data/public/js/tests/unit/button.js +122 -0
  189. data/public/js/tests/unit/carousel.js +110 -0
  190. data/public/js/tests/unit/collapse.js +164 -0
  191. data/public/js/tests/unit/dropdown.js +218 -0
  192. data/public/js/tests/unit/modal.js +195 -0
  193. data/public/js/tests/unit/phantom.js +69 -0
  194. data/public/js/tests/unit/popover.js +133 -0
  195. data/public/js/tests/unit/scrollspy.js +36 -0
  196. data/public/js/tests/unit/tab.js +86 -0
  197. data/public/js/tests/unit/tooltip.js +432 -0
  198. data/public/js/tests/vendor/jquery.js +6 -0
  199. data/public/js/tests/vendor/qunit.css +245 -0
  200. data/public/js/tests/vendor/qunit.js +2210 -0
  201. data/public/js/tooltip.js +399 -0
  202. data/public/js/transition.js +48 -0
  203. data/public/less/.csscomb.json +297 -0
  204. data/public/less/.csslintrc +19 -0
  205. data/public/less/alerts.less +67 -0
  206. data/public/less/badges.less +55 -0
  207. data/public/less/bootstrap.less +49 -0
  208. data/public/less/breadcrumbs.less +26 -0
  209. data/public/less/button-groups.less +226 -0
  210. data/public/less/buttons.less +155 -0
  211. data/public/less/carousel.less +232 -0
  212. data/public/less/close.less +33 -0
  213. data/public/less/code.less +63 -0
  214. data/public/less/component-animations.less +29 -0
  215. data/public/less/dropdowns.less +213 -0
  216. data/public/less/forms.less +419 -0
  217. data/public/less/glyphicons.less +233 -0
  218. data/public/less/grid.less +100 -0
  219. data/public/less/input-groups.less +157 -0
  220. data/public/less/jumbotron.less +44 -0
  221. data/public/less/labels.less +64 -0
  222. data/public/less/list-group.less +110 -0
  223. data/public/less/media.less +56 -0
  224. data/public/less/mixins.less +926 -0
  225. data/public/less/modals.less +138 -0
  226. data/public/less/navbar.less +616 -0
  227. data/public/less/navs.less +242 -0
  228. data/public/less/normalize.less +423 -0
  229. data/public/less/pager.less +55 -0
  230. data/public/less/pagination.less +88 -0
  231. data/public/less/panels.less +230 -0
  232. data/public/less/popovers.less +133 -0
  233. data/public/less/print.less +101 -0
  234. data/public/less/progress-bars.less +80 -0
  235. data/public/less/responsive-utilities.less +93 -0
  236. data/public/less/scaffolding.less +134 -0
  237. data/public/less/tables.less +233 -0
  238. data/public/less/theme.less +247 -0
  239. data/public/less/thumbnails.less +36 -0
  240. data/public/less/tooltip.less +95 -0
  241. data/public/less/type.less +296 -0
  242. data/public/less/utilities.less +56 -0
  243. data/public/less/variables.less +827 -0
  244. data/public/less/wells.less +29 -0
  245. data/public/package.json +71 -0
  246. data/public/test-infra/README.md +100 -0
  247. data/public/test-infra/npm-shrinkwrap.canonical.json +1 -0
  248. data/public/test-infra/requirements.txt +1 -0
  249. data/public/test-infra/s3_cache.py +107 -0
  250. data/public/test-infra/sauce_browsers.yml +83 -0
  251. data/public/test-infra/shrinkwrap.js +24 -0
  252. data/public/test-infra/uncached-npm-install.sh +4 -0
  253. data/rvnstat.gemspec +26 -0
  254. data/rvnstat.yml +3 -0
  255. data/ss.png +0 -0
  256. data/untitled.txt +0 -0
  257. data/views/._hourly.erb +0 -0
  258. data/views/._index.erb +0 -0
  259. data/views/._live_traffic.erb +0 -0
  260. data/views/._monthly.erb +0 -0
  261. data/views/._top_ten.erb +0 -0
  262. data/views/day_detail.erb +44 -0
  263. data/views/day_total.erb +42 -0
  264. data/views/graph_test.erb +2 -0
  265. data/views/hourly.erb +19 -0
  266. data/views/index.erb +71 -0
  267. data/views/layout.erb +28 -0
  268. data/views/live_traffic.erb +57 -0
  269. data/views/monthly.erb +21 -0
  270. data/views/top_ten.erb +21 -0
  271. metadata +385 -0
@@ -0,0 +1,3 @@
1
+ vnstat_path: /usr/bin/vnstat
2
+ interface: eth0
3
+ port: 9000
data/ss.png ADDED
Binary file
File without changes
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,44 @@
1
+ <script>
2
+ $(function () {
3
+ $('#day_detail').highcharts({
4
+ chart: {
5
+ type: 'column',
6
+ backgroundColor: '#eee'
7
+ },
8
+ title: {
9
+ text: 'Bandwidth Detail'
10
+ },
11
+ xAxis: {
12
+ categories: $('#day_detail').data('dates')
13
+ },
14
+ yAxis: {
15
+ min: 0,
16
+ title: {
17
+ text: 'Megabytes'
18
+ }
19
+ },
20
+ tooltip: {
21
+ headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
22
+ pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
23
+ '<td style="padding:0"><b>{point.y:.1f} MBs</b></td></tr>',
24
+ footerFormat: '</table>',
25
+ shared: true,
26
+ useHTML: true
27
+ },
28
+ plotOptions: {
29
+ column: {
30
+ pointPadding: 0.2,
31
+ borderWidth: 0
32
+ }
33
+ },
34
+ series: [{
35
+ name: 'Recieve',
36
+ data: $('#day_detail').data('rx')},
37
+
38
+ {name: 'Transmit',
39
+ data: $('#day_detail').data('tx')
40
+ }]
41
+ });
42
+ });
43
+ </script>
44
+ <div id="day_detail" data-rx='<%= @rx %>' data-tx='<%= @tx %>' data-dates='<%= @dates %>'></div>
@@ -0,0 +1,42 @@
1
+ <script>
2
+ $(function () {
3
+ $('#day_total').highcharts({
4
+ chart: {
5
+ type: 'column',
6
+ backgroundColor: '#eee'
7
+ },
8
+ title: {
9
+ text: 'Bandwidth Total'
10
+ },
11
+ xAxis: {
12
+ categories: $('#day_total').data('dates')
13
+ },
14
+ yAxis: {
15
+ min: 0,
16
+ title: {
17
+ text: 'Megabytes'
18
+ }
19
+ },
20
+ tooltip: {
21
+ headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
22
+ pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
23
+ '<td style="padding:0"><b>{point.y:.1f} MBs</b></td></tr>',
24
+ footerFormat: '</table>',
25
+ shared: true,
26
+ useHTML: true
27
+ },
28
+ plotOptions: {
29
+ column: {
30
+ pointPadding: 0.2,
31
+ borderWidth: 0
32
+ }
33
+ },
34
+ series: [{
35
+ name: 'Total Bandwidth',
36
+ data: $('#day_total').data('total')
37
+ }]
38
+ });
39
+ });
40
+ </script>
41
+
42
+ <div id="day_total" data-total='<%= @total %>' data-dates='<%= @dates %>'></div>
@@ -0,0 +1,2 @@
1
+ <div id='chart'></div>
2
+ <%= render_chart(@chart, 'chart') %>
@@ -0,0 +1,19 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Hourly</h4>
4
+ </div>
5
+
6
+ <table id="hourly" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Hour:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ </tr>
12
+ <% @hour.each do |x|%>
13
+ <tr>
14
+ <td class="active"><%= x[:date]%>
15
+ <td class="active"><%= x[:rx]%>
16
+ <td class="active"><%= x[:tx]%>
17
+ </tr>
18
+ <%end%>
19
+ </table>
@@ -0,0 +1,71 @@
1
+ <script>
2
+
3
+ $(document).ready(function(){
4
+ $('#live').load('/live_traffic');
5
+ $('#total').load('/day_total');
6
+ $('#detail').load('/day_detail');
7
+ });
8
+ </script>
9
+
10
+
11
+ <script>
12
+ $(document).ready(function(){
13
+ $('.top').click(function(){
14
+ $("#myModal").modal({
15
+ keyboad: true,
16
+ remote: true
17
+ });
18
+ });
19
+
20
+ $('.hourly').click(function(){
21
+ $("#myModal").modal({
22
+ keyboad: true,
23
+ remote: true
24
+ });
25
+ });
26
+
27
+ $('.monthly').click(function(){
28
+ $("#myModal").modal({
29
+ keyboad: true,
30
+ remote: true
31
+ });
32
+ });
33
+ </script>
34
+
35
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+ <div class="container">
37
+ <div class="navbar-header">
38
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
39
+ <span class="sr-only">Toggle navigation</span>
40
+ <span class="icon-bar"></span>
41
+ <span class="icon-bar"></span>
42
+ <span class="icon-bar"></span>
43
+ </button>
44
+ <a class="navbar-brand" href="/">rVnstat</a>
45
+ </div>
46
+ <div class="collapse navbar-collapse">
47
+ <ul class="nav navbar-nav">
48
+ <li><a data-toggle="modal" class="top" href="/top_ten" data-target="#myModal">Top Ten</a></li>
49
+ <li><a data-toggle="modal" class="hourly" href="/hourly" data-target="#myModal">Hourly</a></li>
50
+ <li><a data-toggle="modal" class="monthly" href="/monthly" data-target="#myModal">Monthly</a></li>
51
+ </ul>
52
+ </div><!--/.nav-collapse -->
53
+ </div>
54
+ </div>
55
+ <div id="lt-container" class="col-xs-12">
56
+ <div id="live" class="col-xs-6 col-xs-offset-3"></div>
57
+ </div>
58
+ <div id="total" class="col-xs-6"></div>
59
+ <div id="detail" class="col-xs-6"></div>
60
+
61
+ <div id="myModal" class="modal fade">
62
+ <div class="modal-dialog">
63
+ <div class="modal-content"></div>
64
+ </div>
65
+ </div>
66
+
67
+ <script>
68
+ $('#myModal').on('hidden.bs.modal', function () {
69
+ $(this).removeData('bs.modal');
70
+ });
71
+ </script>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="">
8
+ <meta name="author" content="">
9
+
10
+ <title>rVnstat</title>
11
+
12
+ <!-- Bootstrap core CSS -->
13
+ <link href="dist/css/bootstrap.min.css" rel="stylesheet">
14
+ <link href="dist/css/custom.css" rel="stylesheet">
15
+ <link rel="stylesheet" href="css/bootstrap.css">
16
+ <!-- Custom styles for this template -->
17
+ <script src="js/jquery-1.11.0.min.js"></script>
18
+ <script src="js/highcharts.js"></script>
19
+ <script src="js/exporting.js"></script>
20
+ <script src="js/bootstrap.min.js"></script>
21
+
22
+ </head>
23
+
24
+ <body>
25
+ <%= yield %>
26
+ </body>
27
+ </html>
28
+
@@ -0,0 +1,57 @@
1
+ <script>
2
+ var chart; // global
3
+ function requestData() {
4
+ $.ajax({
5
+ url: 'live',
6
+ success: function(point) {
7
+ var series = chart.series[0],
8
+ shift = series.data.length > 20; // shift if the series is
9
+ // longer than 20
10
+
11
+ // add the point
12
+ chart.series[0].addPoint(point, true, shift);
13
+
14
+ // call it again after one second
15
+ setTimeout(requestData, 1000);
16
+ },
17
+ cache: false
18
+ });
19
+ }
20
+
21
+ $(document).ready(function() {
22
+ chart = new Highcharts.Chart({
23
+ chart: {
24
+ renderTo: 'live_traffic',
25
+ defaultSeriesType: 'spline',
26
+ backgroundColor: '#eee',
27
+ events: {
28
+ load: requestData
29
+ }
30
+ },
31
+ title: {
32
+ text: 'Live Public Traffic'
33
+ },
34
+ xAxis: {
35
+ type: 'datetime',
36
+ tickPixelInterval: 150,
37
+ maxZoom: 20 * 1000
38
+ },
39
+ yAxis: {
40
+ minPadding: 0.2,
41
+ maxPadding: 0.2,
42
+ title: {
43
+ text: 'Megabits/Sec',
44
+ margin: 20
45
+ }
46
+ },
47
+ tooltip: {
48
+ valueSuffix: 'Mbs'
49
+ },
50
+ series: [{
51
+ name: 'eth0',
52
+ data: []
53
+ }]
54
+ });
55
+ });
56
+ </script>
57
+ <div id="live_traffic" style="min-width: 310px; height: 400px; margin: 0 auto"</div>
@@ -0,0 +1,21 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Monthly</h4>
4
+ </div>
5
+
6
+ <table id="monthly" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Month:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ <th class="col-sm-1">total:</th>
12
+ </tr>
13
+ <% @top.each do |x|%>
14
+ <tr>
15
+ <td class="active"><%= x[:date]%>
16
+ <td class="active"><%= x[:rx]%>
17
+ <td class="active"><%= x[:tx]%>
18
+ <td class="active"><%= x[:total]%>
19
+ </tr>
20
+ <%end%>
21
+ </table>
@@ -0,0 +1,21 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Top 10</h4>
4
+ </div>
5
+
6
+ <table id="top10" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Day:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ <th class="col-sm-1">total:</th>
12
+ </tr>
13
+ <% @top.each do |x|%>
14
+ <tr>
15
+ <td class="active"><%= x[:date]%>
16
+ <td class="active"><%= x[:rx]%>
17
+ <td class="active"><%= x[:tx]%>
18
+ <td class="active"><%= x[:total]%>
19
+ </tr>
20
+ <%end%>
21
+ </table>
metadata ADDED
@@ -0,0 +1,385 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rvnstat
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Doug Bishop
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: unicorn
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sinatra
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: vidibus-sysinfo
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Sinatra GUI for vnstat
84
+ email:
85
+ - doug@dougbishop.org
86
+ executables:
87
+ - ._rvnstat
88
+ - rvnstat
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ._README.md
93
+ - ._ss.png
94
+ - .gitignore
95
+ - Gemfile
96
+ - LICENSE.txt
97
+ - README.md
98
+ - Rakefile
99
+ - bin/._rvnstat
100
+ - bin/rvnstat
101
+ - config.ru
102
+ - config.yml
103
+ - lib/._app.rb
104
+ - lib/._config.rb
105
+ - lib/._require.rb
106
+ - lib/._rvnstat.rb
107
+ - lib/._vnstat.rb
108
+ - lib/app.rb
109
+ - lib/config.rb
110
+ - lib/require.rb
111
+ - lib/rvnstat.rb
112
+ - lib/rvnstat/._version.rb
113
+ - lib/rvnstat/version.rb
114
+ - lib/vnstat.rb
115
+ - public/CNAME
116
+ - public/CONTRIBUTING.md
117
+ - public/Gruntfile.js
118
+ - public/LICENSE
119
+ - public/README.md
120
+ - public/_config.yml
121
+ - public/bower.json
122
+ - public/browserstack.json
123
+ - public/composer.json
124
+ - public/dist/css/._custom.css
125
+ - public/dist/css/bootstrap-theme.css
126
+ - public/dist/css/bootstrap-theme.css.map
127
+ - public/dist/css/bootstrap-theme.min.css
128
+ - public/dist/css/bootstrap.css
129
+ - public/dist/css/bootstrap.css.map
130
+ - public/dist/css/bootstrap.min.css
131
+ - public/dist/css/custom.css
132
+ - public/dist/fonts/glyphicons-halflings-regular.eot
133
+ - public/dist/fonts/glyphicons-halflings-regular.svg
134
+ - public/dist/fonts/glyphicons-halflings-regular.ttf
135
+ - public/dist/fonts/glyphicons-halflings-regular.woff
136
+ - public/dist/js/bootstrap.js
137
+ - public/dist/js/bootstrap.min.js
138
+ - public/docs/LICENSE
139
+ - public/docs/_data/glyphicons.yml
140
+ - public/docs/_data/showcase.yml
141
+ - public/docs/_includes/ads.html
142
+ - public/docs/_includes/customizer-variables.html
143
+ - public/docs/_includes/footer.html
144
+ - public/docs/_includes/header.html
145
+ - public/docs/_includes/nav-about.html
146
+ - public/docs/_includes/nav-components.html
147
+ - public/docs/_includes/nav-css.html
148
+ - public/docs/_includes/nav-customize.html
149
+ - public/docs/_includes/nav-getting-started.html
150
+ - public/docs/_includes/nav-javascript.html
151
+ - public/docs/_includes/nav-main.html
152
+ - public/docs/_includes/nav-migration.html
153
+ - public/docs/_includes/social-buttons.html
154
+ - public/docs/_layouts/default.html
155
+ - public/docs/_layouts/home.html
156
+ - public/docs/about.html
157
+ - public/docs/assets/css/docs.css
158
+ - public/docs/assets/css/docs.min.css
159
+ - public/docs/assets/css/pygments-manni.css
160
+ - public/docs/assets/ico/apple-touch-icon-144-precomposed.png
161
+ - public/docs/assets/ico/favicon.ico
162
+ - public/docs/assets/img/components.png
163
+ - public/docs/assets/img/devices.png
164
+ - public/docs/assets/img/sass-less.png
165
+ - public/docs/assets/js/application.js
166
+ - public/docs/assets/js/customize.min.js
167
+ - public/docs/assets/js/customizer.js
168
+ - public/docs/assets/js/docs.min.js
169
+ - public/docs/assets/js/ie8-responsive-file-warning.js
170
+ - public/docs/assets/js/raw-files.min.js
171
+ - public/docs/assets/js/vendor/blob.js
172
+ - public/docs/assets/js/vendor/filesaver.js
173
+ - public/docs/assets/js/vendor/holder.js
174
+ - public/docs/assets/js/vendor/jszip.js
175
+ - public/docs/assets/js/vendor/less.min.js
176
+ - public/docs/assets/js/vendor/uglify.min.js
177
+ - public/docs/components.html
178
+ - public/docs/css.html
179
+ - public/docs/customize.html
180
+ - public/docs/customizer-nav.jade
181
+ - public/docs/customizer-variables.jade
182
+ - public/docs/dist/css/bootstrap-theme.css.map
183
+ - public/docs/dist/css/bootstrap-theme.min.css
184
+ - public/docs/dist/css/bootstrap.css.map
185
+ - public/docs/dist/css/bootstrap.min.css
186
+ - public/docs/dist/fonts/glyphicons-halflings-regular.eot
187
+ - public/docs/dist/fonts/glyphicons-halflings-regular.svg
188
+ - public/docs/dist/fonts/glyphicons-halflings-regular.ttf
189
+ - public/docs/dist/fonts/glyphicons-halflings-regular.woff
190
+ - public/docs/dist/js/bootstrap.min.js
191
+ - public/docs/examples/blog/blog.css
192
+ - public/docs/examples/blog/index.html
193
+ - public/docs/examples/carousel/carousel.css
194
+ - public/docs/examples/carousel/index.html
195
+ - public/docs/examples/cover/cover.css
196
+ - public/docs/examples/cover/index.html
197
+ - public/docs/examples/dashboard/dashboard.css
198
+ - public/docs/examples/dashboard/index.html
199
+ - public/docs/examples/grid/grid.css
200
+ - public/docs/examples/grid/index.html
201
+ - public/docs/examples/jumbotron-narrow/index.html
202
+ - public/docs/examples/jumbotron-narrow/jumbotron-narrow.css
203
+ - public/docs/examples/jumbotron/index.html
204
+ - public/docs/examples/jumbotron/jumbotron.css
205
+ - public/docs/examples/justified-nav/index.html
206
+ - public/docs/examples/justified-nav/justified-nav.css
207
+ - public/docs/examples/navbar-fixed-top/index.html
208
+ - public/docs/examples/navbar-fixed-top/navbar-fixed-top.css
209
+ - public/docs/examples/navbar-static-top/index.html
210
+ - public/docs/examples/navbar-static-top/navbar-static-top.css
211
+ - public/docs/examples/navbar/index.html
212
+ - public/docs/examples/navbar/navbar.css
213
+ - public/docs/examples/non-responsive/index.html
214
+ - public/docs/examples/non-responsive/non-responsive.css
215
+ - public/docs/examples/offcanvas/index.html
216
+ - public/docs/examples/offcanvas/offcanvas.css
217
+ - public/docs/examples/offcanvas/offcanvas.js
218
+ - public/docs/examples/screenshots/blog.jpg
219
+ - public/docs/examples/screenshots/carousel.jpg
220
+ - public/docs/examples/screenshots/cover.jpg
221
+ - public/docs/examples/screenshots/dashboard.jpg
222
+ - public/docs/examples/screenshots/grid.jpg
223
+ - public/docs/examples/screenshots/jumbotron-narrow.jpg
224
+ - public/docs/examples/screenshots/jumbotron.jpg
225
+ - public/docs/examples/screenshots/justified-nav.jpg
226
+ - public/docs/examples/screenshots/navbar-fixed.jpg
227
+ - public/docs/examples/screenshots/navbar-static.jpg
228
+ - public/docs/examples/screenshots/navbar.jpg
229
+ - public/docs/examples/screenshots/non-responsive.jpg
230
+ - public/docs/examples/screenshots/offcanvas.jpg
231
+ - public/docs/examples/screenshots/sign-in.jpg
232
+ - public/docs/examples/screenshots/starter-template.jpg
233
+ - public/docs/examples/screenshots/sticky-footer-navbar.jpg
234
+ - public/docs/examples/screenshots/sticky-footer.jpg
235
+ - public/docs/examples/screenshots/theme.jpg
236
+ - public/docs/examples/signin/index.html
237
+ - public/docs/examples/signin/signin.css
238
+ - public/docs/examples/starter-template/index.html
239
+ - public/docs/examples/starter-template/starter-template.css
240
+ - public/docs/examples/sticky-footer-navbar/index.html
241
+ - public/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css
242
+ - public/docs/examples/sticky-footer/index.html
243
+ - public/docs/examples/sticky-footer/sticky-footer.css
244
+ - public/docs/examples/theme/index.html
245
+ - public/docs/examples/theme/theme.css
246
+ - public/docs/getting-started.html
247
+ - public/docs/grunt/bs-glyphicons-data-generator.js
248
+ - public/docs/grunt/bs-lessdoc-parser.js
249
+ - public/docs/grunt/bs-raw-files-generator.js
250
+ - public/docs/index.html
251
+ - public/docs/javascript.html
252
+ - public/docs/migration.html
253
+ - public/fonts/glyphicons-halflings-regular.eot
254
+ - public/fonts/glyphicons-halflings-regular.svg
255
+ - public/fonts/glyphicons-halflings-regular.ttf
256
+ - public/fonts/glyphicons-halflings-regular.woff
257
+ - public/js/._exporting.js
258
+ - public/js/._highcharts-all.js
259
+ - public/js/._jquery-min.js
260
+ - public/js/.jscs.json
261
+ - public/js/.jshintrc
262
+ - public/js/affix.js
263
+ - public/js/alert.js
264
+ - public/js/bootstrap.min.js
265
+ - public/js/button.js
266
+ - public/js/carousel.js
267
+ - public/js/collapse.js
268
+ - public/js/dropdown.js
269
+ - public/js/highcharts.js
270
+ - public/js/jquery-1.11.0.min.js
271
+ - public/js/modal.js
272
+ - public/js/popover.js
273
+ - public/js/scrollspy.js
274
+ - public/js/tab.js
275
+ - public/js/tests/index.html
276
+ - public/js/tests/unit/affix.js
277
+ - public/js/tests/unit/alert.js
278
+ - public/js/tests/unit/button.js
279
+ - public/js/tests/unit/carousel.js
280
+ - public/js/tests/unit/collapse.js
281
+ - public/js/tests/unit/dropdown.js
282
+ - public/js/tests/unit/modal.js
283
+ - public/js/tests/unit/phantom.js
284
+ - public/js/tests/unit/popover.js
285
+ - public/js/tests/unit/scrollspy.js
286
+ - public/js/tests/unit/tab.js
287
+ - public/js/tests/unit/tooltip.js
288
+ - public/js/tests/vendor/jquery.js
289
+ - public/js/tests/vendor/qunit.css
290
+ - public/js/tests/vendor/qunit.js
291
+ - public/js/tooltip.js
292
+ - public/js/transition.js
293
+ - public/less/.csscomb.json
294
+ - public/less/.csslintrc
295
+ - public/less/alerts.less
296
+ - public/less/badges.less
297
+ - public/less/bootstrap.less
298
+ - public/less/breadcrumbs.less
299
+ - public/less/button-groups.less
300
+ - public/less/buttons.less
301
+ - public/less/carousel.less
302
+ - public/less/close.less
303
+ - public/less/code.less
304
+ - public/less/component-animations.less
305
+ - public/less/dropdowns.less
306
+ - public/less/forms.less
307
+ - public/less/glyphicons.less
308
+ - public/less/grid.less
309
+ - public/less/input-groups.less
310
+ - public/less/jumbotron.less
311
+ - public/less/labels.less
312
+ - public/less/list-group.less
313
+ - public/less/media.less
314
+ - public/less/mixins.less
315
+ - public/less/modals.less
316
+ - public/less/navbar.less
317
+ - public/less/navs.less
318
+ - public/less/normalize.less
319
+ - public/less/pager.less
320
+ - public/less/pagination.less
321
+ - public/less/panels.less
322
+ - public/less/popovers.less
323
+ - public/less/print.less
324
+ - public/less/progress-bars.less
325
+ - public/less/responsive-utilities.less
326
+ - public/less/scaffolding.less
327
+ - public/less/tables.less
328
+ - public/less/theme.less
329
+ - public/less/thumbnails.less
330
+ - public/less/tooltip.less
331
+ - public/less/type.less
332
+ - public/less/utilities.less
333
+ - public/less/variables.less
334
+ - public/less/wells.less
335
+ - public/package.json
336
+ - public/test-infra/README.md
337
+ - public/test-infra/npm-shrinkwrap.canonical.json
338
+ - public/test-infra/requirements.txt
339
+ - public/test-infra/s3_cache.py
340
+ - public/test-infra/sauce_browsers.yml
341
+ - public/test-infra/shrinkwrap.js
342
+ - public/test-infra/uncached-npm-install.sh
343
+ - rvnstat.gemspec
344
+ - rvnstat.yml
345
+ - ss.png
346
+ - untitled.txt
347
+ - views/._hourly.erb
348
+ - views/._index.erb
349
+ - views/._live_traffic.erb
350
+ - views/._monthly.erb
351
+ - views/._top_ten.erb
352
+ - views/day_detail.erb
353
+ - views/day_total.erb
354
+ - views/graph_test.erb
355
+ - views/hourly.erb
356
+ - views/index.erb
357
+ - views/layout.erb
358
+ - views/live_traffic.erb
359
+ - views/monthly.erb
360
+ - views/top_ten.erb
361
+ homepage: https://github.com/freshfrmthehood/rVnstat
362
+ licenses:
363
+ - GPL
364
+ metadata: {}
365
+ post_install_message:
366
+ rdoc_options: []
367
+ require_paths:
368
+ - lib
369
+ required_ruby_version: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - '>='
372
+ - !ruby/object:Gem::Version
373
+ version: '0'
374
+ required_rubygems_version: !ruby/object:Gem::Requirement
375
+ requirements:
376
+ - - '>='
377
+ - !ruby/object:Gem::Version
378
+ version: '0'
379
+ requirements: []
380
+ rubyforge_project:
381
+ rubygems_version: 2.2.1
382
+ signing_key:
383
+ specification_version: 4
384
+ summary: Sinatra + ruby + vnstat = coolness
385
+ test_files: []