Metrics are responsible for holding watch conditions. An instance of Metric is yielded to blocks in the start_if, restart_if, stop_if, and transition methods.
The Array of Condition instances.
The destination Hash in canonical hash form. Example: { true => :up, false => :restart}
The Watch.
Public: Instantiate the given Condition and pass it into the optional block. Attributes of the condition must be set in the config file.
kind - The Symbol name of the condition.
Returns nothing.
# File lib/god/metric.rb, line 32 def condition(kind) # Create the condition. begin c = Condition.generate(kind, self.watch) rescue NoSuchConditionError => e abort e.message end # Send to block so config can set attributes. yield(c) if block_given? # Prepare the condition. c.prepare # Test generic and specific validity. unless Condition.valid?(c) && c.valid? abort "Exiting on invalid condition" end # Inherit interval from watch if no poll condition specific interval was # set. if c.kind_of?(PollCondition) && !c.interval if self.watch.interval c.interval = self.watch.interval else abort "No interval set for Condition '#{c.class.name}' in Watch " + "'#{self.watch.name}', and no default Watch interval from " + "which to inherit." end end # Add the condition to the list. self.conditions << c end
Disable all of this Metric’s conditions. Poll conditions will be halted and event/trigger conditions will be deregistered.
Returns nothing.
# File lib/god/metric.rb, line 81 def disable self.conditions.each do |c| self.watch.detach(c) end end
Enable all of this Metric’s conditions. Poll conditions will be scheduled and event/trigger conditions will be registered.
Returns nothing.
# File lib/god/metric.rb, line 71 def enable self.conditions.each do |c| self.watch.attach(c) end end