Sha256: 6fd20074e3704d56b88d33ec63a045f2764de89da1fd6f446c0550f8f228c4b7

Contents?: true

Size: 747 Bytes

Versions: 9

Compression:

Stored size: 747 Bytes

Contents

#!/usr/bin/env ruby

require 'json'

config = ARGV[0] ? JSON::parse(ARGV[0]) : {}

$stdout.sync = true

def GB b; (b.to_f / 1024**2).round(6); end # GB significant down to 4kB

while(true) do

  info = File.readlines('/proc/meminfo').map {|l|
    l = l.chomp.split(/:\s+/, 2)
    raise "units assumption failed" if
      l[1].sub!(/\s+(kB)$/, '') and not($+ == 'kB')
    l
  }
  i = Hash[*info.flatten]

  out = {
    total:     GB(i['MemTotal']),
    free:      GB(i['MemFree']),
    buffers:   GB(i['Buffers']),
    cached:    GB(i['Cached']),
    swapped:   GB(i['SwapTotal'].to_i - i['SwapFree'].to_i),
    swap_free: GB(i['SwapFree']),
  }
  puts JSON::generate(out)

  break unless config.include?('interval')
  sleep config['interval']
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
panoptimon-0.4.5 collectors/memory/memory
panoptimon-0.4.4 collectors/memory/memory
panoptimon-0.4.2 collectors/memory/memory
panoptimon-0.4.1 collectors/memory/memory
panoptimon-0.4.0 collectors/memory/memory
panoptimon-0.3.0 collectors/memory/memory
panoptimon-0.2.0 collectors/memory/memory
panoptimon-0.1.0 collectors/memory/memory
panoptimon-0.0.2 collectors/memory/memory