Sha256: 174c13497f73e22d370725fa4a591744f7000ab8aa83a24f1489887d6f194989

Contents?: true

Size: 1.42 KB

Versions: 21

Compression:

Stored size: 1.42 KB

Contents

class Riemann::Babbler::Disk < Riemann::Babbler

  require 'sys/filesystem'
  include Sys

  NOT_MONITORING_FS = [
    'sysfs',
    'nfs',
    'devpts',
    'squashfs',
    'proc',
    'devtmpfs'
  ]

  def collect
    # собираем только необходимые для мониторинга маунт-поинты
    # точнее выбираем из mounts только те, у которых fstype не попадает
    # в NOT_MONITORING_FS
    monit_points = [] 
    File.read('/proc/mounts').split("\n").each do |line|
      mtab = line.split(/\s+/)
      monit_points << mtab[1] unless NOT_MONITORING_FS.include? mtab[2] 
    end
    disk = Array.new
    monit_points.each do |point|
      point_stat = Filesystem.stat point
      human_point = point == "/" ? "/root" : point
      human_point.gsub!(/^\//, "").gsub!(/\//, "_")
      disk << { :service => plugin.service + " #{human_point} % block", :metric => 1- point_stat.blocks_available.to_f/point_stat.blocks }
      disk << { :service => plugin.service + " #{human_point} % inode", :metric => 1 - point_stat.files_available.to_f/point_stat.files }
      disk << { :service => plugin.service + " #{human_point} abs free", :metric =>  point_stat.blocks_free * point_stat.block_size, :state => 'ok'}
      disk << { :service => plugin.service + " #{human_point} abs total", :metric =>  point_stat.blocks * point_stat.block_size, :state => 'ok'}
    end
    disk
  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
riemann-babbler-0.7.8 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.7 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.6 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.5 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.4 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.3 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.2 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.1 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.7.0 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.9 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.8 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.7 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.6 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.5 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.4 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.3 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.2 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.1 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.6.0 lib/riemann/babbler/plugins/disk.rb
riemann-babbler-0.5.9 lib/riemann/babbler/plugins/disk.rb