class Fluent::ProcCountInput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_proc_count.rb, line 10 def initialize super end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_proc_count.rb, line 23 def configure(conf) super @processes = @processes.map { |process| s = OpenStruct.new s.regexp = Regexp.new(process.regexp) s.proc_count = process.proc_count s.tag = process.tag s.operator_name = process.operator_name s.operator = select_operator(process.operator_name) s } end
correct_process?(process_spec, expect_proc_count)
click to toggle source
# File lib/fluent/plugin/in_proc_count.rb, line 93 def correct_process?(process_spec, expect_proc_count) expect_proc_count.public_send(process_spec.operator, process_spec.proc_count.to_i) end
emit_proc_count()
click to toggle source
# File lib/fluent/plugin/in_proc_count.rb, line 53 def emit_proc_count @processes.each do |process_spec| begin record_size = get_processes(process_spec).size if !correct_process?(process_spec, record_size) router.emit( process_spec.tag, Fluent::Engine.now, { regexp: process_spec.regexp.source, proc_count: record_size, expect_proc_count: process_spec.proc_count, operator_name: process_spec.operator_name, hostname: Socket.gethostname } ) end rescue => e log.error e end end end
get_processes(process_spec)
click to toggle source
# File lib/fluent/plugin/in_proc_count.rb, line 97 def get_processes(process_spec) processes = [] ProcTable.ps do |process| if process_spec.regexp.match(process.cmdline) processes << process end end processes end
run()
click to toggle source
# File lib/fluent/plugin/in_proc_count.rb, line 46 def run loop do Thread.new(&method(:emit_proc_count)) sleep @interval end end
select_operator(operator_name)
click to toggle source
# File lib/fluent/plugin/in_proc_count.rb, line 76 def select_operator(operator_name) case operator_name.to_sym when :equal "==" when :gather_than ">" when :gather_equal ">=" when :less_than "<" when :less_equal "<=" else raise Fluent::ConfigError, "proc_count operator allows equal/gather_than/gather_equal/less_than/less_equal" end end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_proc_count.rb, line 41 def shutdown super Thread.kill(@thread) end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_proc_count.rb, line 36 def start super @thread = Thread.new(&method(:run)) end