class PiSys::Disk

Constants

KEY
VARIATIONS

Public Class Methods

new() click to toggle source
Calls superclass method PiSys::Stats::new
# File lib/pi-sys/stats/disk.rb, line 7
def initialize
  super(KEY, VARIATIONS)
end

Public Instance Methods

fetch() click to toggle source
Calls superclass method PiSys::Stats#fetch
# File lib/pi-sys/stats/disk.rb, line 11
def fetch
  super

  output = fetch_io
  if output
    clean_data = output.split("\n").reject { |e| e.empty? }.map { |e| e.split(' ') }
    num_of_devices = (clean_data.count - 3) / 2
    relevant_data = clean_data[(2+num_of_devices)..-1]
    STATS[KEY][:io] = []
    relevant_data[1..-1].each do |data_values|
      new_data = {}
      relevant_data[0].each_with_index do |key, i|
        new_data[key] = data_values[i]
      end
      STATS[KEY][:io] << new_data unless new_data.empty?
    end
  end

  output = fetch_usage

  if output
    to_hash([KEY, :usage], output, 1) do |data|
      name = data[0]
      {name => {used: data[2], available: data[3].to_i, percentage: data[4].to_i, mounted_on: data[5]}}
    end

    STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v[:percentage] }]
  end

  STATS[KEY]
end

Private Instance Methods

fetch_io() click to toggle source
# File lib/pi-sys/stats/disk.rb, line 45
def fetch_io
  run_command('iostat -d -x 1 2')
end
fetch_usage() click to toggle source
# File lib/pi-sys/stats/disk.rb, line 49
def fetch_usage
  run_command('df')
end