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