Module: Sensu::API::Routes::Health

Includes:
Utilities::TransportInfo
Included in:
Sensu::API::Routes
Defined in:
lib/sensu/api/routes/health.rb

Constant Summary collapse

HEALTH_URI =
/^\/health$/

Instance Method Summary collapse

Instance Method Details

#get_healthObject

GET /health



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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