require 'ganymed/collector' module Ganymed class Collector class CPU < Base def collect! File.open('/proc/stat') do |f| cpu = f.readline.chomp.split[1,7].map do |x| x.to_i / hz end @sampler.emit(:derive, "os.cpu.user", cpu[0]) @sampler.emit(:derive, "os.cpu.nice", cpu[1]) @sampler.emit(:derive, "os.cpu.system", cpu[2]) @sampler.emit(:derive, "os.cpu.idle", cpu[3]) @sampler.emit(:derive, "os.cpu.iowait", cpu[4]) @sampler.emit(:derive, "os.cpu.irq", cpu[5]) @sampler.emit(:derive, "os.cpu.softirq", cpu[6]) end end def interval @config.interval.tap{} or 0.2 end def hz @config.hz.tap{} or 100 end end end end