Sha256: 1e64661e2aaa0bdb00dae174c4565318b9a577d256bf0b5e3a324a933e13fad0

Contents?: true

Size: 1.2 KB

Versions: 6

Compression:

Stored size: 1.2 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
    @old_status = Hash.new
  end

  def net
    f = File.read('/proc/net/dev')
    status = Hash.new
    f.split("\n").each do |line|
      iface = line.split(":")[0].strip
      iface.gsub!(/\./,"_")
      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
  end

  def tick
    status = net
    status.each_key do |service|
      #next if status[service] == 0
      report({
        :service => service,
        :metric => status[service],
        :is_diff => true
      })
    end
  end

end

Riemann::Babbler::Net.run

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
riemann-babbler-0.2.8 lib/riemann/babbler/plugins/net.rb
riemann-babbler-0.2.7 lib/riemann/babbler/plugins/net.rb
riemann-babbler-0.2.6 lib/riemann/babbler/plugins/net.rb
riemann-babbler-0.2.5 lib/riemann/babbler/plugins/net.rb
riemann-babbler-0.2.4 lib/riemann/babbler/plugins/net.rb
riemann-babbler-0.2.3 lib/riemann/babbler/plugins/net.rb