class Roqua::StatusChecks::StatusController

To use this status controller in a Rails application, add a route:

get '/status' => 'roqua/status_checks/status#balancer_status'

If you want to add more logic to the status controller, extend it:

get '/status' => 'status#balancer_status'

class StatusController < Roqua::StatusChecks::StatusController

skip_before_action :foo
skip_before_action :bar

end

Public Instance Methods

balancer_status() click to toggle source
# File lib/roqua/status_checks/status_controller.rb, line 16
def balancer_status
  balancer_member = balancer_member?
  db_connected = db_connected?

  http_code = balancer_member && db_connected ? 200 : 503
  status = db_connected ? 'ok' : 'error'

  render json: {status: status, member: balancer_member}, status: http_code
rescue CheckLoadBalancerMember::InvalidStatus
  render json: {status: "unknown status"}, status: 500
end

Protected Instance Methods

balancer_member?() click to toggle source
# File lib/roqua/status_checks/status_controller.rb, line 34
def balancer_member?
  CheckLoadBalancerMember.balancer_member?(balancer_state_file)
end
balancer_state_file() click to toggle source
# File lib/roqua/status_checks/status_controller.rb, line 30
def balancer_state_file
  Rails.root.join('config/balancer_state')
end
db_connected?() click to toggle source
# File lib/roqua/status_checks/status_controller.rb, line 38
def db_connected?
  CheckDbConnection.connected?
end