collect(0.3) do
  return if not File.readable?('/proc/stat')
  File.open('/proc/stat').each do |line|
    key, value = line.chomp.split
    case key
    when "ctxt"
      sampler.emit(:derive, "os.procs.switch", value.to_i)
    when "processes"
      sampler.emit(:derive, "os.procs.forks", value.to_i)
    when "procs_running"
      sampler.emit(:gauge, "os.procs.running", value.to_i)
    when "procs_blocked"
      sampler.emit(:gauge, "os.procs.blocked", value.to_i)
    end
  end
end