class Nines::HttpCheck

Attributes

up_statuses[RW]
uri[RW]
user_agent[RW]

Public Class Methods

new(group, options) click to toggle source
Calls superclass method Nines::Check::new
# File lib/nines/http_check.rb, line 8
def initialize(group, options)
  super(group, options)
  
  @uri = options['uri'] || "http://#{hostname}:#{port}/"
  @up_statuses = options['up_statuses'] || [ 200 ]
  @user_agent = options['user_agent'] || "nines/1.0"
end

Public Instance Methods

debug() click to toggle source

shortcuts

# File lib/nines/http_check.rb, line 17
def debug     ; Nines::App.debug    ; end
run() click to toggle source
# File lib/nines/http_check.rb, line 19
def run
  while Nines::App.continue do
    check_started = Time.now
    @address = Dnsruby::Resolv.getaddress(hostname)
    
    @pinger = Net::Ping::HTTP.new(uri, port, timeout)
    @pinger.user_agent = user_agent
    
    # the check
    log_status(@pinger.ping?, "#{uri} (#{address})#{@pinger.warning ? " [warning: #{@pinger.warning}]" : ''}")
    
    break if debug
    
    wait = interval.to_f - (Time.now - check_started)
    while wait > 0 do
      break unless Nines::App.continue
      sleep [1, wait].min
      wait -= 1
    end
  end
end