Sha256: ecf2f31f1b1b91c7b0b25aa42e583c951379fa76d6d951c57522c5d5d918ed0a
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
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 init @diff = Hash.new @old_status = Hash.new end def net f = File.read('/proc/net/dev') status = Hash.new f.split("\n").inject({}) do |s, line| if line =~ /\s*(\w+?):\s*([\s\d]+)\s*/ iface = $1 WORDS.map do |service| "#{plugin.service} #{iface} #{service}" end.zip( $2.split(/\s+/).map { |str| str.to_i } ).each do |service, value| status.merge!({service => value}) end end end status.each_key { |key| @diff[key] = status[key] - @old_status[key] } if @old_status @old_status = status @diff end def tick net.each do |service, value| report({ :service => service, :metric => value }) end unless net.nil? end end Riemann::Babbler::Net.run
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
riemann-babbler-0.1.4 | lib/riemann/babbler/plugins/net.rb |
riemann-babbler-0.1.3 | lib/riemann/babbler/plugins/net.rb |