Class: EmeterGomDaemon::Daemon
- Inherits:
-
Object
- Object
- EmeterGomDaemon::Daemon
- Defined in:
- lib/e-meter-gom-daemon/daemon.rb
Constant Summary collapse
- Defaults =
{ :logfile => '-', :interval => 5, :threshold => 5, # in percent :nagios_port => 9918, :stealth => false, }
Instance Method Summary collapse
- #emeter_ip ⇒ Object
-
#initialize(sensor_url, options = {}) ⇒ Daemon
constructor
option precedence is: 1.
- #interval ⇒ Object
- #logfile ⇒ Object
- #nagios_port ⇒ Object
- #run ⇒ Object
- #stealth? ⇒ Boolean
- #threshold ⇒ Object
Constructor Details
#initialize(sensor_url, options = {}) ⇒ Daemon
option precedence is:
1. commands line options
2. GOM Sensor node values
3. built-in Default values (see #Defaults)
17 18 19 20 21 22 23 24 25 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 17 def initialize sensor_url, = {} @sensor_url = sensor_url @gom, @sensor_path = (Gom::Remote::Connection.init @sensor_url) @options = Defaults.merge(gnode(@sensor_path)).merge() puts "options: #{@options.inspect}" redirect_to logfile end |
Instance Method Details
#emeter_ip ⇒ Object
35 36 37 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 35 def emeter_ip @emeter_ip ||= @options[:emeter_ip] end |
#interval ⇒ Object
31 32 33 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 31 def interval @interval ||= Integer(@options[:interval]) end |
#logfile ⇒ Object
27 28 29 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 27 def logfile @logfile ||= @options[:logfile] end |
#nagios_port ⇒ Object
39 40 41 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 39 def nagios_port @nagios_port ||= @options[:nagios_port] end |
#run ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 51 def run run_nagios_thread # become visible to nagios gom_checkin loop do begin tic rescue Exception => e callstack = "#{e.backtrace.join "\n "}" puts " ## #{self} - #{e}\n -> #{callstack}" ensure sleep interval end end ensure stop_nagios_thread end |
#stealth? ⇒ Boolean
47 48 49 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 47 def stealth? @stealth ||= @options[:stealth] end |
#threshold ⇒ Object
43 44 45 |
# File 'lib/e-meter-gom-daemon/daemon.rb', line 43 def threshold @threshold ||= Float(@options[:threshold]) end |