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
  @response_content = []
  if @redis.connected? && @transport.connected?
    min_consumers = integer_parameter(@params[:consumers])
    max_messages = integer_parameter(@params[:messages])
    transport_info do |info|
      if min_consumers
        if info[:keepalives][:consumers] < min_consumers
          @response_content << "keepalive consumers (#{info[:keepalives][:consumers]}) less than min_consumers (#{min_consumers})"
        end
        if info[:results][:consumers] < min_consumers
          @response_content << "result consumers (#{info[:results][:consumers]}) less than min_consumers (#{min_consumers})"
        end
      end
      if max_messages
        if info[:keepalives][:messages] > max_messages
          @response_content << "keepalive messages (#{info[:keepalives][:messages]}) greater than max_messages (#{max_messages})"
        end
        if info[:results][:messages] > max_messages
          @response_content << "result messages (#{info[:results][:messages]}) greater than max_messages (#{max_messages})"
        end
      end
      @response_content.empty? ? no_content! : precondition_failed!
    end
  else
    @response_content << "not connected to redis" unless @redis.connected?
    @response_content << "not connected to transport" unless @transport.connected?
    precondition_failed!
  end
end