collectd-interface 0.3.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/bin/collectd-interface-daemon +21 -361
  2. data/bin/collectd-interface-plugins +11 -11
  3. data/lib/collectd/interface/config.rb +117 -0
  4. data/lib/collectd/interface/options.rb +68 -0
  5. data/lib/collectd/interface/service/data.rb +110 -0
  6. data/lib/collectd/interface/service/graph.rb +106 -0
  7. data/lib/collectd/interface/service/report.rb +82 -0
  8. data/lib/collectd/interface/service.rb +44 -0
  9. data/public/images/cpus.png +0 -0
  10. data/public/images/device/ops/sda.png +0 -0
  11. data/public/images/device/ops/sda1.png +0 -0
  12. data/public/images/device/ops/sda2.png +0 -0
  13. data/public/images/device/ops/sda5.png +0 -0
  14. data/public/images/device/ops/sda6.png +0 -0
  15. data/public/images/device/ops/sda7.png +0 -0
  16. data/public/images/device/ops/sda8.png +0 -0
  17. data/public/images/device/ops/sda9.png +0 -0
  18. data/public/images/device/ops/sdb.png +0 -0
  19. data/public/images/device/ops/sdb1.png +0 -0
  20. data/public/images/device/ops/sdh.png +0 -0
  21. data/public/images/device/ops/sdh1.png +0 -0
  22. data/public/images/device/ops/sdh2.png +0 -0
  23. data/public/images/device/ops/sdh3.png +0 -0
  24. data/public/images/device/ops/sdh4.png +0 -0
  25. data/public/images/device/ops/sr0.png +0 -0
  26. data/public/images/device/time/sda.png +0 -0
  27. data/public/images/device/time/sda1.png +0 -0
  28. data/public/images/device/time/sda2.png +0 -0
  29. data/public/images/device/time/sda5.png +0 -0
  30. data/public/images/device/time/sda6.png +0 -0
  31. data/public/images/device/time/sda7.png +0 -0
  32. data/public/images/device/time/sda8.png +0 -0
  33. data/public/images/device/time/sda9.png +0 -0
  34. data/public/images/device/time/sdb.png +0 -0
  35. data/public/images/device/time/sdb1.png +0 -0
  36. data/public/images/device/time/sdh.png +0 -0
  37. data/public/images/device/time/sdh1.png +0 -0
  38. data/public/images/device/time/sdh2.png +0 -0
  39. data/public/images/device/time/sdh3.png +0 -0
  40. data/public/images/device/time/sdh4.png +0 -0
  41. data/public/images/device/time/sr0.png +0 -0
  42. data/public/images/device/traffic/sda.png +0 -0
  43. data/public/images/device/traffic/sda1.png +0 -0
  44. data/public/images/device/traffic/sda2.png +0 -0
  45. data/public/images/device/traffic/sda5.png +0 -0
  46. data/public/images/device/traffic/sda6.png +0 -0
  47. data/public/images/device/traffic/sda7.png +0 -0
  48. data/public/images/device/traffic/sda8.png +0 -0
  49. data/public/images/device/traffic/sda9.png +0 -0
  50. data/public/images/device/traffic/sdb.png +0 -0
  51. data/public/images/device/traffic/sdb1.png +0 -0
  52. data/public/images/device/traffic/sdh.png +0 -0
  53. data/public/images/device/traffic/sdh1.png +0 -0
  54. data/public/images/device/traffic/sdh2.png +0 -0
  55. data/public/images/device/traffic/sdh3.png +0 -0
  56. data/public/images/device/traffic/sdh4.png +0 -0
  57. data/public/images/device/traffic/sr0.png +0 -0
  58. data/public/images/irqs.png +0 -0
  59. data/public/images/load.png +0 -0
  60. data/public/images/memory.png +0 -0
  61. data/public/images/network/packets/eth0.png +0 -0
  62. data/public/images/network/packets/lo.png +0 -0
  63. data/public/images/network/packets/nbr0-nic.png +0 -0
  64. data/public/images/network/packets/nbr0.png +0 -0
  65. data/public/images/network/packets/virbr0.png +0 -0
  66. data/public/images/network/packets/vnet0.png +0 -0
  67. data/public/images/network/packets/vnet1.png +0 -0
  68. data/public/images/network/packets/vnet2.png +0 -0
  69. data/public/images/network/packets/vnet3.png +0 -0
  70. data/public/images/network/packets/vnet4.png +0 -0
  71. data/public/images/network/packets/vnet5.png +0 -0
  72. data/public/images/network/traffic/eth0.png +0 -0
  73. data/public/images/network/traffic/lo.png +0 -0
  74. data/public/images/network/traffic/nbr0-nic.png +0 -0
  75. data/public/images/network/traffic/nbr0.png +0 -0
  76. data/public/images/network/traffic/virbr0.png +0 -0
  77. data/public/images/network/traffic/vnet0.png +0 -0
  78. data/public/images/network/traffic/vnet1.png +0 -0
  79. data/public/images/network/traffic/vnet2.png +0 -0
  80. data/public/images/network/traffic/vnet3.png +0 -0
  81. data/public/images/network/traffic/vnet4.png +0 -0
  82. data/public/images/network/traffic/vnet5.png +0 -0
  83. data/public/images/processes.png +0 -0
  84. data/public/images/users.png +0 -0
  85. data/public/script/table_filter.js +1217 -0
  86. data/public/style/default.css +28 -0
  87. data/test/collectd/interface/config_test.rb +9 -0
  88. data/test/collectd/interface/service_config_test.rb +26 -0
  89. data/test/collectd/interface/service_data_test.rb +46 -0
  90. data/test/start.rb +3 -0
  91. data/views/graph_header.erb +13 -4
  92. data/views/graphs/device/ops.erb +37 -0
  93. data/views/graphs/device/time.erb +37 -0
  94. data/views/graphs/device/traffic.erb +38 -0
  95. data/views/graphs/{irq.erb.disabled → irqs.erb} +8 -8
  96. data/views/graphs/network/packets.erb +35 -0
  97. data/views/graphs/network/traffic.erb +35 -0
  98. data/views/graphs/{users.erb.disabled → users.erb} +0 -0
  99. data/views/report.erb +32 -14
  100. data/views/reports/open-files/local.erb +62 -0
  101. data/views/reports/{processes-cpu-usage.erb → processes.erb} +0 -0
  102. data/views/reports/{system-sockets.erb → sockets.erb} +0 -0
  103. data/views/reports/{disk-free.erb → storage.erb} +1 -1
  104. data/views/template/options/graph.erb +1 -1
  105. metadata +98 -30
  106. data/public/images/cpus.svg +0 -946
  107. data/public/images/disk-traffic-root.png +0 -0
  108. data/public/images/disk-traffic-srv.png +0 -0
  109. data/public/images/disk-traffic-tmp.png +0 -0
  110. data/public/images/disk-traffic-var.png +0 -0
  111. data/public/images/irq.png +0 -0
  112. data/public/images/load.svg +0 -638
  113. data/public/images/memory.svg +0 -741
  114. data/public/images/network-eth0.png +0 -0
  115. data/public/images/network-eth0.svg +0 -609
  116. data/public/images/network-lo.png +0 -0
  117. data/public/images/network-lo.svg +0 -644
  118. data/public/images/processes.svg +0 -832
  119. data/views/graphs/disk-traffic-root.erb +0 -24
  120. data/views/graphs/disk-traffic-srv.erb.disabled +0 -25
  121. data/views/graphs/disk-traffic-tmp.erb.disabled +0 -24
  122. data/views/graphs/disk-traffic-var.erb.disabled +0 -25
  123. data/views/graphs/network-eth0.erb +0 -23
  124. data/views/graphs/network-lo.erb +0 -23
  125. data/views/reports/list-open-files-lustre.erb.disabled +0 -44
  126. data/views/reports/list-open-files-tmp.erb +0 -44
@@ -1,24 +0,0 @@
1
- <% name = '/' %>
2
- <% device = `df -l #{name} | grep '/dev/'`.split[0].split('/')[-1] %>
3
- --title='Disk Traffic "<%= name %>"' --vertical-label="Bytes" \
4
- --alt-autoscale-max --base 1024 \
5
- DEF:read_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:AVERAGE \
6
- DEF:read_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MIN \
7
- DEF:read_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MAX \
8
- DEF:write_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:AVERAGE \
9
- DEF:write_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MIN \
10
- DEF:write_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MAX \
11
- AREA:read_max<%= @color[:green_light] %> \
12
- AREA:read_min#ffffff \
13
- AREA:write_max<%= @color[:blue_light] %> \
14
- AREA:write_min#ffffff \
15
- LINE1:read_av<%= @color[:green_dark] %>:"Read\t\t\t" \
16
- GPRINT:read_min:MIN:"Min. %3.0lf%sB" \
17
- GPRINT:read_av:AVERAGE:"Avg. %3.0lf%sB" \
18
- GPRINT:read_max:MAX:"Max. %3.0lf%sB" \
19
- GPRINT:read_av:LAST:"Last %3.0lf%sB" \
20
- LINE1:write_av<%= @color[:blue_dark] %>:"Write\t\t" \
21
- GPRINT:write_min:MIN:"Min. %3.0lf%sB" \
22
- GPRINT:write_av:AVERAGE:"Avg. %3.0lf%sB" \
23
- GPRINT:write_max:MAX:"Max. %3.0lf%sB" \
24
- GPRINT:write_av:LAST:"Last %3.0lf%sB" \
@@ -1,25 +0,0 @@
1
- <% name = '/srv' %>
2
- <% device = `df -l #{name} | grep '/dev/'`.split[0].split('/')[-1] %>
3
- --title='Disk Traffic "<%= name %>"' \
4
- --vertical-label="Bytes" \
5
- --alt-autoscale-max --base 1024 \
6
- DEF:read_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:AVERAGE \
7
- DEF:read_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MIN \
8
- DEF:read_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MAX \
9
- DEF:write_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:AVERAGE \
10
- DEF:write_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MIN \
11
- DEF:write_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MAX \
12
- AREA:read_max<%= @color[:green_light] %> \
13
- AREA:read_min#ffffff \
14
- AREA:write_max<%= @color[:blue_light] %> \
15
- AREA:write_min#ffffff \
16
- LINE1:read_av<%= @color[:green_dark] %>:"Read\t\t\t" \
17
- GPRINT:read_min:MIN:"Min. %3.0lf%sB" \
18
- GPRINT:read_av:AVERAGE:"Avg. %3.0lf%sB" \
19
- GPRINT:read_max:MAX:"Max. %3.0lf%sB" \
20
- GPRINT:read_av:LAST:"Last %3.0lf%sB" \
21
- LINE1:write_av<%= @color[:blue_dark] %>:"Write\t\t" \
22
- GPRINT:write_min:MIN:"Min. %3.0lf%sB" \
23
- GPRINT:write_av:AVERAGE:"Avg. %3.0lf%sB" \
24
- GPRINT:write_max:MAX:"Max. %3.0lf%sB" \
25
- GPRINT:write_av:LAST:"Last %3.0lf%sB" \
@@ -1,24 +0,0 @@
1
- <% name = '/tmp' %>
2
- <% device = `df -l #{name} | grep '/dev/'`.split[0].split('/')[-1] %>
3
- --title='Disk Traffic "<%= name %>"' --vertical-label="Bytes" \
4
- --alt-autoscale-max --tabwidth=10 --base 1024 \
5
- DEF:read_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:AVERAGE \
6
- DEF:read_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MIN \
7
- DEF:read_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MAX \
8
- DEF:write_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:AVERAGE \
9
- DEF:write_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MIN \
10
- DEF:write_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MAX \
11
- AREA:read_max<%= @color[:green_light] %> \
12
- AREA:read_min#ffffff \
13
- AREA:write_max<%= @color[:blue_light] %> \
14
- AREA:write_min#ffffff \
15
- LINE1:read_av<%= @color[:green_dark] %>:"Read\t\t\t" \
16
- GPRINT:read_min:MIN:"Min. %3.0lf%sB" \
17
- GPRINT:read_av:AVERAGE:"Avg. %3.0lf%sB" \
18
- GPRINT:read_max:MAX:"Max. %3.0lf%sB" \
19
- GPRINT:read_av:LAST:"Last %3.0lf%sB" \
20
- LINE1:write_av<%= @color[:blue_dark] %>:"Write\t\t" \
21
- GPRINT:write_min:MIN:"Min. %3.0lf%sB" \
22
- GPRINT:write_av:AVERAGE:"Avg. %3.0lf%sB" \
23
- GPRINT:write_max:MAX:"Max. %3.0lf%sB" \
24
- GPRINT:write_av:LAST:"Last %3.0lf%sB" \
@@ -1,25 +0,0 @@
1
- <% name = '/var'%>
2
- <% device = `df -l #{name} | grep '/dev/'`.split[0].split('/')[-1] %>
3
- --title='Disk Traffic "<%= name %>"' \
4
- --vertical-label="Bytes" \
5
- --alt-autoscale-max --base 1024 \
6
- DEF:read_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:AVERAGE \
7
- DEF:read_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MIN \
8
- DEF:read_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:read:MAX \
9
- DEF:write_av=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:AVERAGE \
10
- DEF:write_min=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MIN \
11
- DEF:write_max=<%= @rrd_path %>disk-<%= device %>/disk_octets.rrd:write:MAX \
12
- AREA:read_max<%= @color[:green_light] %> \
13
- AREA:read_min#ffffff \
14
- AREA:write_max<%= @color[:blue_light] %> \
15
- AREA:write_min#ffffff \
16
- LINE1:read_av<%= @color[:green_dark] %>:"Read\t\t\t" \
17
- GPRINT:read_min:MIN:"Min. %3.0lf%sB" \
18
- GPRINT:read_av:AVERAGE:"Avg. %3.0lf%sB" \
19
- GPRINT:read_max:MAX:"Max. %3.0lf%sB" \
20
- GPRINT:read_av:LAST:"Last %3.0lf%sB" \
21
- LINE1:write_av<%= @color[:blue_dark] %>:"Write\t\t" \
22
- GPRINT:write_min:MIN:"Min. %3.0lf%sB" \
23
- GPRINT:write_av:AVERAGE:"Avg. %3.0lf%sB" \
24
- GPRINT:write_max:MAX:"Max. %3.0lf%sB" \
25
- GPRINT:write_av:LAST:"Last %3.0lf%sB" \
@@ -1,23 +0,0 @@
1
- --title='Network Traffic Interface "eth0"' \
2
- --vertical-label="Bits" \
3
- --alt-autoscale-max \
4
- DEF:rx_av=<%= @rrd_path %>/interface/if_octets-eth0.rrd:rx:AVERAGE \
5
- DEF:rx_min=<%= @rrd_path %>/interface/if_octets-eth0.rrd:rx:MIN \
6
- DEF:rx_max=<%= @rrd_path %>/interface/if_octets-eth0.rrd:rx:MAX \
7
- DEF:tx_av=<%= @rrd_path %>/interface/if_octets-eth0.rrd:tx:AVERAGE \
8
- DEF:tx_min=<%= @rrd_path %>/interface/if_octets-eth0.rrd:tx:MIN \
9
- DEF:tx_max=<%= @rrd_path %>/interface/if_octets-eth0.rrd:tx:MAX \
10
- AREA:rx_max<%= @color[:green_light] %> \
11
- AREA:rx_min#ffffff \
12
- AREA:tx_max<%= @color[:blue_light] %> \
13
- AREA:tx_min#ffffff \
14
- LINE1:rx_av<%= @color[:green_dark] %>:"Receive " \
15
- GPRINT:rx_min:MIN:"Min. %3.0lf%sb" \
16
- GPRINT:rx_av:AVERAGE:"Avg. %3.0lf%sb" \
17
- GPRINT:rx_max:MAX:"Max. %3.0lf%sb" \
18
- GPRINT:rx_av:LAST:"Last %3.0lf%sb" \
19
- LINE1:tx_av<%= @color[:blue_dark] %>:"Transmit" \
20
- GPRINT:tx_min:MIN:"Min. %3.0lf%sb" \
21
- GPRINT:tx_av:AVERAGE:"Avg. %3.0lf%sb" \
22
- GPRINT:tx_max:MAX:"Max. %3.0lf%sb" \
23
- GPRINT:tx_av:LAST:"Last %3.0lf%sb" \
@@ -1,23 +0,0 @@
1
- --title='Network Traffic Interface "lo"' \
2
- --vertical-label="Bits" \
3
- --alt-autoscale-max \
4
- DEF:rx_av=<%= @rrd_path %>/interface/if_octets-lo.rrd:rx:AVERAGE \
5
- DEF:rx_min=<%= @rrd_path %>/interface/if_octets-lo.rrd:rx:MIN \
6
- DEF:rx_max=<%= @rrd_path %>/interface/if_octets-lo.rrd:rx:MAX \
7
- DEF:tx_av=<%= @rrd_path %>/interface/if_octets-lo.rrd:tx:AVERAGE \
8
- DEF:tx_min=<%= @rrd_path %>/interface/if_octets-lo.rrd:tx:MIN \
9
- DEF:tx_max=<%= @rrd_path %>/interface/if_octets-lo.rrd:tx:MAX \
10
- AREA:rx_max<%= @color[:green_light] %> \
11
- AREA:rx_min#ffffff \
12
- AREA:tx_max<%= @color[:blue_light] %> \
13
- AREA:tx_min#ffffff \
14
- LINE1:rx_av<%= @color[:green_dark] %>:"Receive " \
15
- GPRINT:rx_min:MIN:"Min. %3.0lf%sb" \
16
- GPRINT:rx_av:AVERAGE:"Avg. %3.0lf%sb" \
17
- GPRINT:rx_max:MAX:"Max. %3.0lf%sb" \
18
- GPRINT:rx_av:LAST:"Last %3.0lf%sb" \
19
- LINE1:tx_av<%= @color[:blue_dark] %>:"Transmit" \
20
- GPRINT:tx_min:MIN:"Min. %3.0lf%sb" \
21
- GPRINT:tx_av:AVERAGE:"Avg. %3.0lf%sb" \
22
- GPRINT:tx_max:MAX:"Max. %3.0lf%sb" \
23
- GPRINT:tx_av:LAST:"Last %3.0lf%sb" \
@@ -1,44 +0,0 @@
1
- <% path = '/lustre' %>
2
- <% content = `lsof -u ^root -S2 #{path} | tr -s ' ' | cut -d' ' -f2-4,9-` %>
3
- <% if @type == 'text' then %>
4
- <%= content %>
5
- <% elsif @type == 'json' %>
6
- <% require 'json' %>
7
- <% struct = Array.new %>
8
- <% content = content.split("\n")[1..-1] %>
9
- <% keys = ['pid','user','state','file'] %>
10
- <% unless content.empty? %>
11
- <% content.each do |file| %>
12
- <% file = file.split %>
13
- <% values = file[0..2] %>
14
- <% values << file[3..-1].join(' ') %>
15
- <% struct << Hash[*keys.zip(values).flatten] %>
16
- <% end %>
17
- <% end %>
18
- <%= JSON.pretty_generate struct %>
19
- <% else %>
20
- <div style="font-size:160%"><strong>Open Files in Lustre</strong></div>
21
- <table>
22
- <thead>
23
- <tr>
24
- <td>Process&nbsp;ID</td>
25
- <td>User</td>
26
- <td>State</td>
27
- <td>File</td>
28
- </tr>
29
- </thead>
30
- <tbody>
31
- <% if content.empty? %>
32
- <tr><td>none</td><td>none</td><td>none</td><td>none</td></tr>
33
- <% else %>
34
- <% content.split("\n")[1..-1].each do |file| %>
35
- <% file = file.split%>
36
- <tr>
37
- <td><%= file[0..2].join('</td><td>') %></td>
38
- <td><span style="font-size:80%"><%= file[3..-1].join(' ')%></span></td>
39
- </tr>
40
- <% end %>
41
- <% end %>
42
- </tbody>
43
- </table>
44
- <% end %>
@@ -1,44 +0,0 @@
1
- <% path = '/tmp' %>
2
- <% content = `lsof -u ^root -S2 #{path} | tr -s ' ' | cut -d' ' -f2-4,9-` %>
3
- <% if @type == 'text' then %>
4
- <%= content %>
5
- <% elsif @type == 'json' %>
6
- <% require 'json' %>
7
- <% struct = Array.new %>
8
- <% content = content.split("\n")[1..-1] %>
9
- <% keys = ['pid','user','state','file'] %>
10
- <% unless content.empty? %>
11
- <% content.each do |file| %>
12
- <% file = file.split %>
13
- <% values = file[0..2] %>
14
- <% values << file[3..-1].join(' ') %>
15
- <% struct << Hash[*keys.zip(values).flatten] %>
16
- <% end %>
17
- <% end %>
18
- <%= JSON.pretty_generate struct %>
19
- <% else %>
20
- <div style="font-size:160%"><strong>Open Files in Temp</strong></div>
21
- <table>
22
- <thead>
23
- <tr>
24
- <td>Process&nbsp;ID</td>
25
- <td>User</td>
26
- <td>State</td>
27
- <td>File</td>
28
- </tr>
29
- </thead>
30
- <tbody>
31
- <% if content.empty? %>
32
- <tr><td>none</td><td>none</td><td>none</td><td>none</td></tr>
33
- <% else %>
34
- <% content.split("\n")[1..-1].each do |file| %>
35
- <% file = file.split%>
36
- <tr>
37
- <td><%= file[0..2].join('</td><td>') %></td>
38
- <td><span style="font-size:80%"><%= file[3..-1].join(' ')%></span></td>
39
- </tr>
40
- <% end %>
41
- <% end %>
42
- </tbody>
43
- </table>
44
- <% end %>