lib/riemann/babbler/plugins/net.rb in riemann-babbler-0.1.5 vs lib/riemann/babbler/plugins/net.rb in riemann-babbler-0.1.6
- old
+ new
@@ -20,40 +20,41 @@
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
+ @diff = Hash.new
+ f.split("\n").each do |line|
+ iface = line.split(":")[0].strip
+ next unless line =~ /(\w*)\:\s*([\s\d]+)\s*/
+ 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
- status.each_key { |key| @diff[key] = status[key] - @old_status[key] } unless @old_status.empty?
+ status.each_key { |key| @diff.merge!({key => status[key] - @old_status[key]}) } unless @old_status.empty?
@old_status = status
@diff
end
def tick
- net.each do |service, value|
+ status = net
+ status.each_key do |service|
+ #next if status[service] == 0
report({
:service => service,
- :metric => value
+ :metric => status[service]
})
- end unless net.nil?
+ end
end
end
Riemann::Babbler::Net.run