Class: WebMonitor::Monitor

Inherits:
Object
  • Object
show all
Defined in:
lib/web-monitor/monitor.rb

Instance Method Summary collapse

Constructor Details

#initialize(config_file) ⇒ Monitor

Returns a new instance of Monitor.



5
6
7
8
9
10
# File 'lib/web-monitor/monitor.rb', line 5

def initialize(config_file)
  @config = Config.new(config_file)
  @logger = Logger.new(@config)
  @mailer = Mailer.new(@config)
  @requester = Requester.new(@config)
end

Instance Method Details

#processObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/web-monitor/monitor.rb', line 12

def process
  CSV.foreach(@config.urls_file) do |name, url|
    begin
      @requester.check(url)
    rescue Exception => e
      @logger.fatal("#{name} (#{url}): #{e.class} #{e.message}")
      @mailer.send("#{name} #{e.class}")
      next
    end
    v = ResponseValidator.new(@requester.time, @requester.status, @config)
    if v.valid?
      @logger.info("#{name} (#{url}): %.1fs" % @requester.time)
    else
      @logger.error("#{name} (#{url}): #{v.error_msg}")
      @mailer.send("#{name} #{v.error_msg}")
    end
    sleep @config.delay
  end
end