The existing /api health check endpoint creates a new Redis connection
on every request and checks both Redis and Postgres availability. During
peak traffic, this creates unnecessary load and can cause cascading
failures when either service is slow - instances get marked unhealthy,
traffic shifts to remaining instances, which then also fail health
checks.
The new /health endpoint:
- Returns immediately with 200 {"status":"woot"}
- Skips all middleware and authentication
- No Redis or Postgres dependency
- Suitable for health checks that only need to verify the web server is
responding
8 lines
270 B
Ruby
8 lines
270 B
Ruby
# Inherits from ActionController::Base to skip all middleware,
|
|
# authentication, and callbacks. Used for health checks
|
|
class HealthController < ActionController::Base # rubocop:disable Rails/ApplicationController
|
|
def show
|
|
render json: { status: 'woot' }
|
|
end
|
|
end
|