module SensuPluginsCpuChecks::CommonInterrupts
Public Instance Methods
build_regexp(line)
click to toggle source
# File lib/sensu-plugins-cpu-checks/common_interrupts.rb, line 3 def build_regexp(line) regexp_string = '[[:space:]]*(?<irq_number>.+):' cpu_list = line.scan(/CPU\d+/) cpu_list.each do |name| regexp_string += "[[:space:]]*(?<#{name}>\\d+)" end regexp_string += '[[:space:]]*(?<irq_type>.*)' [Regexp.new(regexp_string), cpu_list] end
output_metrics(filename)
click to toggle source
# File lib/sensu-plugins-cpu-checks/common_interrupts.rb, line 13 def output_metrics(filename) regexp = nil cpu_list = [] File.open("#{config[:proc_path]}/#{filename}", 'r').each_line.with_index do |line, index| if index.zero? regexp, cpu_list = build_regexp(line) else result = line.match(regexp) if result cpu_list.each do |name| key = [config[:scheme], name, result[:irq_type].split.join('-'), result[:irq_number]].reject(&:empty?) output key.join('.').to_s, result[name] end end end end end