lib/riemann/babbler/plugins/net.rb in riemann-babbler-0.0.3 vs lib/riemann/babbler/plugins/net.rb in riemann-babbler-0.0.4

- old
+ new

@@ -1,50 +1,52 @@ class Riemann::Babbler::Net include Riemann::Babbler + WORDS = ['rx bytes', + 'rx packets', + 'rx errs', + 'rx drop', + 'rx fifo', + 'rx frame', + 'rx compressed', + 'rx multicast', + 'tx bytes', + 'tx packets', + 'tx drops', + 'tx fifo', + 'tx colls', + 'tx carrier', + 'tx compressed'] + def plugin options.plugins.net end def net f = File.read('/proc/net/dev') - net = f.split("\n").inject({}) do |s, line| + status = Hash.new + f.split("\n").inject({}) do |s, line| if line =~ /\s*(\w+?):\s*([\s\d]+)\s*/ iface = $1 - - ['rx bytes', - 'rx packets', - 'rx errs', - 'rx drop', - 'rx fifo', - 'rx frame', - 'rx compressed', - 'rx multicast', - 'tx bytes', - 'tx packets', - 'tx drops', - 'tx fifo', - 'tx colls', - 'tx carrier', - 'tx compressed'].map do |service| + WORDS.map do |service| "#{iface} #{service}" end.zip( $2.split(/\s+/).map { |str| str.to_i } ).each do |service, value| - s[service] = value + status.merge!({service => value}) end end - - puts s end + return status end def tick - status = { - :service => plugin.service, - :state => 'ok' - } - report status + net.each do |service, value| + report({ + :service => service, + :metric => value + }) + end end end Riemann::Babbler::Net.run