class Remon::Metrics::Http

Public Class Methods

new(url) click to toggle source
# File lib/remon/metrics/http.rb, line 8
def initialize(url)
  @uri = URI.parse(url)
end

Public Instance Methods

status(read_timeout: 1, open_timeout: 1) click to toggle source
# File lib/remon/metrics/http.rb, line 12
def status(read_timeout: 1, open_timeout: 1)
  status = nil
  time = Benchmark.realtime do
    status = get_status(read_timeout, open_timeout)
  end
  return time, status
end

Private Instance Methods

get_status(read_timeout, open_timeout) click to toggle source
# File lib/remon/metrics/http.rb, line 22
def get_status(read_timeout, open_timeout)
  @uri.open(read_timeout: read_timeout, open_timeout: open_timeout, redirect: false) do |f|
    f.status[0].to_i
  end
rescue EOFError
  return 444
rescue Errno::ECONNREFUSED
  return 502
rescue Net::OpenTimeout
  return 504
rescue Net::ReadTimeout
  return 504
rescue OpenURI::HTTPRedirect => e
  return 301
end