Sha256: 947701d55d03665be99b34d9c82ee19a6b3d940c62f1a46d54d32507750418f1
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
class Fluent::FreeInput < Fluent::Input Fluent::Plugin.register_input('free', self) config_param :interval, :time, :default => nil config_param :option, :string, :default => nil config_param :unit, :string, :default => 'mega' config_param :mode, :string, :default => nil config_param :tag, :string, :default => 'memory.free' def configure(conf) super if @interval @tick = interval.to_i else @tick = 10 end @option = case @unit when 'byte' then '-b' when 'kilo' then '-k' when 'mega' then '-m' when 'giga' then '-g' else raise RuntimeError, "@unit must be one of byte/kilo/mega/giga" end end def start super @thread = Thread.new(&method(:run)) end def shutdown @thread.terminate @thread.join end def run loop do Fluent::Engine.emit(@tag, Fluent::Engine.now, get_free_info) sleep @tick end end private def get_free_info ret = `free #{@option}`.split($/) ret.shift if @mode == 'actual' items = ret[1].split(/\s+/) else items = ret[0].split(/\s+/) end free_info = { 'used' => items[2], 'free' => items[3], } free_info end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fluent-plugin-free-0.0.1 | lib/fluent/plugin/in_free.rb |