From a84fc07e4209fa795f2d0f3fe28eab0aa594c7fa Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 24 Jan 2026 17:39:56 -0600 Subject: [PATCH] debug: add detailed logging to health check endpoint Added logging to identify which component is failing health checks: - Log database and Redis status on each health check - Log Redis errors with full error details - This will help diagnose the production 503 errors --- .../controllers/health_controller.ex | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/towerops_web/controllers/health_controller.ex b/lib/towerops_web/controllers/health_controller.ex index 7349fc15..579188f9 100644 --- a/lib/towerops_web/controllers/health_controller.ex +++ b/lib/towerops_web/controllers/health_controller.ex @@ -7,9 +7,14 @@ defmodule ToweropsWeb.HealthController do alias Towerops.Repo def index(conn, _params) do + require Logger + db_status = check_database() redis_status = check_redis() + # Log health check results for debugging + Logger.debug("Health check: db=#{inspect(db_status)}, redis=#{inspect(redis_status)}") + all_healthy = db_status == :ok and redis_status in [:ok, :not_configured] if all_healthy do @@ -46,16 +51,23 @@ defmodule ToweropsWeb.HealthController do end defp check_redis do + require Logger + redis_config = Application.get_env(:towerops, :redis, []) if Keyword.has_key?(redis_config, :host) do # Redis is configured, check connectivity with short timeout for health check case Towerops.RedisHealthCheck.check_health(redis_config, 2_000) do - :ok -> :ok - {:error, _} -> :error + :ok -> + :ok + + {:error, reason} -> + Logger.error("Redis health check failed: #{inspect(reason)}") + :error end else # Redis not configured (e.g., in development without Redis) + Logger.debug("Redis not configured") :not_configured end end