Sha256: 1770e7cfd0ab1dd49c6d5c1d3a4627bc91f305d43aa9ab0320f746d66a9d96bb

Contents?: true

Size: 1.18 KB

Versions: 24

Compression:

Stored size: 1.18 KB

Contents

class Riemann::Babbler::Memory
  include Riemann::Babbler

  def plugin
    options.plugins.memory
  end

  def memory
    m = File.read('/proc/meminfo').split(/\n/).inject({}) { |info, line|
      x = line.split(/:?\s+/)
      info[x[0]] = x[1].to_i
      info
    }
    free = m['MemFree'].to_i + m['Buffers'].to_i + m['Cached'].to_i
    total = m['MemTotal'].to_i
    fraction = 1 - (free.to_f / total)
    return {:free => (free.to_f/1024), :fraction => fraction, :total => (total.to_f/1024)}
  end

  def tick
    current_state = memory
    # соотношение свободной/занятой
    report({
      :service => plugin.service,
      :state => state(current_state[:fraction]),
      :metric => current_state[:fraction]
    })
    # постим сообщение о свобоной памяти
    report({
      :service => plugin.service + " free",
      :metric => current_state[:free]
    }) if plugin.report_free
    # постим сообение о том сколько у нас вообще памяти
    report({
      :service => plugin.service + " total",
      :metric => current_state[:total]
    }) if plugin.report_total
  end

end

Riemann::Babbler::Memory.run

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
riemann-babbler-0.2.8 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.7 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.6 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.5 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.4 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.3 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.2 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.1 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.2.0 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.9 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.8 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.7 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.6 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.5 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.4 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.3 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.2 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.1 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.1.0 lib/riemann/babbler/plugins/memory.rb
riemann-babbler-0.0.9 lib/riemann/babbler/plugins/memory.rb