class Bipbip::Plugin::CommandStatus

Public Instance Methods

metrics_schema() click to toggle source
# File lib/bipbip/plugin/command_status.rb, line 5
def metrics_schema
  [
    { name: 'status', type: 'gauge', unit: '' }
  ]
end
monitor() click to toggle source
# File lib/bipbip/plugin/command_status.rb, line 11
def monitor
  command = config['command'].to_s
  output_stdout = output_stderr = exit_code = nil
  Open3.popen3(command) do |_stdin, stdout, stderr, wait_thr|
    output_stdout = stdout.read.chomp
    output_stderr = stderr.read.chomp
    exit_code = wait_thr.value
  end

  log(Logger::INFO, output_stdout) unless output_stdout.empty?
  log(Logger::ERROR, output_stderr) unless output_stderr.empty?
  {
    status: exit_code.exitstatus
  }
end