class Kstats::Node::Probe
Attributes
registered[RW]
category[RW]
command[RW]
command_block[RW]
id[R]
name[RW]
type[RW]
variables[RW]
Public Class Methods
get_format(probe)
click to toggle source
# File lib/kstats/node/probe.rb, line 12 def get_format probe probe = @fixed_registered.select{|x| x.id == probe }.first if probe.nil? return nil else { type: probe.type, variables: probe.variables.inject({}){ |h, x| h[x.name] = {} h[x.name][:desc] = x.desc h[x.name][:color] = x.color h } } end end
list()
click to toggle source
# File lib/kstats/node/probe.rb, line 60 def list probe_categories = {} @fixed_registered.each do |probe| probe_categories[probe.category] ||= [] probe_categories[probe.category] << { name: probe.name, id: probe.id } end probe_categories end
new(id)
click to toggle source
# File lib/kstats/node/probe.rb, line 117 def initialize id @variables = [] @id = id end
register(name, &block)
click to toggle source
# File lib/kstats/node/probe.rb, line 8 def register name, &block @registered << Probe.new(name).from_dsl(&block) end
reload_and_test!()
click to toggle source
# File lib/kstats/node/probe.rb, line 29 def reload_and_test! @fixed_registered = @registered @registered = [] dir = Kstats::Node::Config['probes_dir'] Dir[File.join(dir, "*.rb")].each do |probe_file| begin load(probe_file) rescue => e puts "Unable to load #{probe_file}: #{e}" puts "*\t#{e.backtrace.join("\n*\t")}" end end probes = {} @registered.each do |probe| begin probes[probe.id] = probe.test rescue => e puts "Exception for probe #{probe.id} : #{e.message}" puts "*\t#{e.backtrace.join("\n*\t")}" end end @fixed_registered = @registered probes end
Public Instance Methods
add_variable(var)
click to toggle source
# File lib/kstats/node/probe.rb, line 128 def add_variable var @variables << var end
from_dsl(&block)
click to toggle source
# File lib/kstats/node/probe.rb, line 122 def from_dsl &block DSL.new(self).instance_eval(&block) return self end
test()
click to toggle source
# File lib/kstats/node/probe.rb, line 132 def test @command = self.command_block.call unless self.command_block.nil? @variables.inject({}){|h, x| h[x.name] = x.test; h } end