Class: Neutrino::Client::ShellMetric

Inherits:
Metric
  • Object
show all
Defined in:
lib/neutrino/shell_metric.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Metric

#metric_id, #to_h, #to_json

Constructor Details

#initialize(opts = {}) ⇒ ShellMetric

Returns a new instance of ShellMetric.



8
9
10
11
# File 'lib/neutrino/shell_metric.rb', line 8

def initialize(opts={})
  super(opts)
  query
end

Class Method Details

.execute(command) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/neutrino/shell_metric.rb', line 13

def self.execute(command)
  parsed_value = Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
    stdout.read.strip
  end
  Log.debug("'#{command}' outputs '#{parsed_value}'")
  Log.warn("'#{command}' outputs '#{parsed_value}'") if parsed_value.nil? || parsed_value.empty?
  return parsed_value
end

Instance Method Details

#queryObject



22
23
24
25
26
27
28
# File 'lib/neutrino/shell_metric.rb', line 22

def query
  values_hash = {}
  self.commands.each_pair do |name, cmd|
    values_hash[name] = ShellMetric.execute(cmd)
  end
  self.values = values_hash
end