class HealthCheckController

Public Instance Methods

health() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 18
def health
  status, services = dependencies_health(all_dependencies)

  if status
    render json: { status: 'OK', services: services }
  else
    render json: { status: 'ERROR', services: services }, status: :internal_server_error
  end
end
index() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 4
def index
  render json: { status: 'OK', dockerImage: ENV['DOCKER_IMAGE'] }
end
quick_health() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 8
def quick_health
  status, = dependencies_health(hard_dependencies)

  if status
    render json: { status: 'OK', dockerImage: ENV['DOCKER_IMAGE'] }
  else
    head :internal_server_error
  end
end
uptime() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 37
def uptime
  response = {
    started_at: Diagnostics::BOOTED_AT,
    uptime: (Time.now - Diagnostics::BOOTED_AT).to_i
  }
  render json: response
end
version() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 28
def version
  response = {
    version: ENV['APP_VERSION'],
    name:    ENV['APP_NAME'],
    commit:  ENV['COMMIT']
  }
  render json: response
end

Private Instance Methods

all_dependencies() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 55
def all_dependencies
  [db_health, rabbitmq_health]
end
db_health() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 65
def db_health
  ActiveRecord::Base.establish_connection
  [true,  { db: 'UP' }]
rescue StandardError => e
  [false, { db: e.message }]
end
dependencies_health(dependencies) click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 59
def dependencies_health(dependencies)
  dependencies.reduce([true, {}]) do |(status, services), (stat, serv)|
    [status && stat, services.merge(serv)]
  end
end
hard_dependencies() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 51
def hard_dependencies
  [db_health]
end
rabbitmq_health() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 72
def rabbitmq_health
  Totoro::Queue.connection
  [true, { rabbitmq: 'UP' }]
rescue StandardError => e
  [false, { rabbitmq: e.message }]
end
server_info() click to toggle source
# File lib/generators/mononoke/templates/health_check_controller.rb, line 47
def server_info
  { daemons: daemons }
end