Class: Roqua::StatusChecks::StatusController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
lib/roqua/status_checks/status_controller.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#balancer_statusObject



16
17
18
19
20
21
22
23
24
25
26
# 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