lib/zabbix-ruby-client/plugins/disk.rb in zabbix-ruby-client-0.0.10 vs lib/zabbix-ruby-client/plugins/disk.rb in zabbix-ruby-client-0.0.11

- old
+ new

@@ -8,48 +8,51 @@ extend self def collect(*args) host = args[0] dev = args[1] - mapped = args[2] || dev - diskinfo = `cat /proc/diskstats | grep " #{dev} "` - if $?.to_i == 0 - _, _, _, _, read_ok, read_merged, read_sector, read_time, write_ok, write_merged, write_sector, write_time, io_current, io_time, io_weighted = diskinfo.split(/\s+/) - else - logger.warn "Please install sysstat." - return [] - end + mapped = args[3] || dev diskspace = `df | grep "#{mapped}"` if $?.to_i == 0 _, size, used, available, percent_used, mount = diskspace.split(/\s+/) else logger.error "df is not working... ouchie." return [] end - time = Time.now.to_i back = [] - back << "#{host} disk.io[#{dev},read_ok] #{time} #{read_ok}" - back << "#{host} disk.io[#{dev},read_merged] #{time} #{read_merged}" - back << "#{host} disk.io[#{dev},read_sector] #{time} #{read_sector}" - back << "#{host} disk.io[#{dev},read_time] #{time} #{read_time}" - back << "#{host} disk.io[#{dev},write_ok] #{time} #{write_ok}" - back << "#{host} disk.io[#{dev},write_merged] #{time} #{write_merged}" - back << "#{host} disk.io[#{dev},write_sector] #{time} #{write_sector}" - back << "#{host} disk.io[#{dev},write_time] #{time} #{write_time}" - back << "#{host} disk.io[#{dev},io_time] #{time} #{io_time}" - back << "#{host} disk.io[#{dev},io_weighted] #{time} #{io_weighted}" - back << "#{host} disk.space[#{dev},size] #{time} #{size.to_i * 1000}" - back << "#{host} disk.space[#{dev},used] #{time} #{used.to_i * 1000}" - back << "#{host} disk.space[#{dev},available] #{time} #{available.to_i * 1000}" - back << "#{host} disk.space[#{dev},percent_used] #{time} #{percent_used.gsub(/%/,'')}" + back << "#{host} disk.space[#{mapped},size] #{time} #{size.to_i * 1000}" + back << "#{host} disk.space[#{mapped},used] #{time} #{used.to_i * 1000}" + back << "#{host} disk.space[#{mapped},available] #{time} #{available.to_i * 1000}" + back << "#{host} disk.space[#{mapped},percent_used] #{time} #{percent_used.gsub(/%/,'')}" + + if dev != "" + diskinfo = `cat /proc/diskstats | grep " #{dev} "` + if $?.to_i == 0 + _, _, _, _, read_ok, read_merged, read_sector, read_time, write_ok, write_merged, write_sector, write_time, io_current, io_time, io_weighted = diskinfo.split(/\s+/) + else + logger.warn "Oh there is no such device." + return [] + end + back << "#{host} disk.io[#{mapped},read_ok] #{time} #{read_ok}" + back << "#{host} disk.io[#{mapped},read_merged] #{time} #{read_merged}" + back << "#{host} disk.io[#{mapped},read_sector] #{time} #{read_sector}" + back << "#{host} disk.io[#{mapped},read_time] #{time} #{read_time}" + back << "#{host} disk.io[#{mapped},write_ok] #{time} #{write_ok}" + back << "#{host} disk.io[#{mapped},write_merged] #{time} #{write_merged}" + back << "#{host} disk.io[#{mapped},write_sector] #{time} #{write_sector}" + back << "#{host} disk.io[#{mapped},write_time] #{time} #{write_time}" + back << "#{host} disk.io[#{mapped},io_time] #{time} #{io_time}" + back << "#{host} disk.io[#{mapped},io_weighted] #{time} #{io_weighted}" + end return back end def discover(*args) device = args[0] mount = args[1] - [ "disk.dev.discovery", "{\"{#DISK_DEVICE}\": \"#{device}\", \"{#DISK_MOUNT}\": \"#{mount}\"}" ] + mapped = args[2] || device + [ "disk.dev.discovery", "{\"{#DISK_DEVICE}\": \"#{mapped}\", \"{#DISK_MOUNT}\": \"#{mount}\"}" ] end end end end