class OkComputer::CacheCheck

Verifies that the Rails cache is set up and can speak with Memcached running on the given host (defaults to local).

Constants

ConnectionFailed

Attributes

host[RW]

Public Class Methods

new(host=Socket.gethostname) click to toggle source
# File lib/ok_computer/built_in_checks/cache_check.rb, line 7
def initialize(host=Socket.gethostname)
  self.host = host
end

Public Instance Methods

check() click to toggle source

Public: Check whether the cache is active

# File lib/ok_computer/built_in_checks/cache_check.rb, line 12
def check
  mark_message "Cache is available (#{stats})"
rescue ConnectionFailed => e
  mark_failure
  mark_message "Error: '#{e}'"
end
stats() click to toggle source

Public: Outputs stats string for cache

# File lib/ok_computer/built_in_checks/cache_check.rb, line 20
def stats
  return "" unless Rails.cache.respond_to? :stats

  stats    = Rails.cache.stats
  values     = stats.select{|k,v| k =~ Regexp.new(host) }.values[0]
  mem_used = to_megabytes values['bytes']
  mem_max  = to_megabytes values['limit_maxbytes']
  return "#{mem_used} / #{mem_max} MB, #{stats.count - 1} peers"
rescue => e
  raise ConnectionFailed, e
end

Private Instance Methods

to_megabytes(bytes) click to toggle source

Private: Convert bytes to megabytes

# File lib/ok_computer/built_in_checks/cache_check.rb, line 35
def to_megabytes(bytes)
  bytes.to_i / (1024 * 1024)
end