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
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
Source
# File lib/roqua/status_checks/status_controller.rb, line 34 def balancer_member? CheckLoadBalancerMember.balancer_member?(balancer_state_file) end
Source
# File lib/roqua/status_checks/status_controller.rb, line 30 def balancer_state_file Rails.root.join('config/balancer_state') end
Source
# File lib/roqua/status_checks/status_controller.rb, line 38 def db_connected? CheckDbConnection.connected? end