module Sensu::API::Routes::Health

Constants

HEALTH_URI

Public Instance Methods

get_health() click to toggle source

GET /health

# File lib/sensu/api/routes/health.rb, line 12
def get_health
  if @redis.connected? && @transport.connected?
    healthy = []
    min_consumers = integer_parameter(@params[:consumers])
    max_messages = integer_parameter(@params[:messages])
    transport_info do |info|
      if min_consumers
        healthy << (info[:keepalives][:consumers] >= min_consumers)
        healthy << (info[:results][:consumers] >= min_consumers)
      end
      if max_messages
        healthy << (info[:keepalives][:messages] <= max_messages)
        healthy << (info[:results][:messages] <= max_messages)
      end
      healthy.all? ? no_content! : precondition_failed!
    end
  else
    precondition_failed!
  end
end