Sha256: 20cddb35c1944e840215b4180d93a9926d6f224de58ddc74737317e9417e6f63

Contents?: true

Size: 660 Bytes

Versions: 1

Compression:

Stored size: 660 Bytes

Contents

class Riemann::Babbler::Cpu < Riemann::Babbler

  def collect
    cpu = File.read('/proc/stat')
    cpu[/cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/]
    u2, n2, s2, i2 = [$1, $2, $3, $4].map { |e| e.to_i }

    if @old_cpu
      u1, n1, s1, i1 = @old_cpu
      used = (u2+n2+s2) - (u1+n1+s1)
      total = used + i2-i1
      fraction = used.to_f / total
    end

    @old_cpu = [u2, n2, s2, i2]

    desc = "usage\n\n#{shell('ps -eo pcpu,pid,cmd | sort -nrb -k1 | head -10').chomp}"
    
    if fraction
      { :service => plugin.service, :metric => fraction, :description => desc }
    else
      { :service => plugin.service, :state => 'ok' }
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riemann-babbler-0.4.9 lib/riemann/babbler/plugins/cpu.rb