From 0fa1fa800b8bd50ea6d54fb1a7fb664ac149b247 Mon Sep 17 00:00:00 2001 From: Graham McIntie Date: Mon, 16 Mar 2026 15:22:12 -0500 Subject: [PATCH] fix/suppress-health-check-logs (#47) Reviewed-on: https://git.mcintire.me/graham/towerops-web/pulls/47 --- .gitignore | 3 +++ lib/towerops_web/endpoint.ex | 17 ++++++++--------- lib/towerops_web/router.ex | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 581c6c48..770e735d 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,6 @@ profiles.json # Stride API credentials (contains secrets - never commit) .stride_auth.md + +# Generated by nix, machine-specific paths +.pre-commit-config.yaml diff --git a/lib/towerops_web/endpoint.ex b/lib/towerops_web/endpoint.ex index 856e3745..30255675 100644 --- a/lib/towerops_web/endpoint.ex +++ b/lib/towerops_web/endpoint.ex @@ -66,16 +66,15 @@ defmodule ToweropsWeb.Endpoint do plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint], - log: :info, - metadata_filter: &__MODULE__.telemetry_metadata_filter/1 + log: {__MODULE__, :telemetry_log_level, []} - # Filter function for Plug.Telemetry - don't log health checks and uptime monitors - def telemetry_metadata_filter(metadata) do - case metadata do - %{conn: %{method: "GET", path_info: ["health"]}} -> false - %{conn: %{method: "GET", path_info: ["health", "time"]}} -> false - %{conn: %{method: "HEAD", path_info: []}} -> false - _ -> metadata + # Dynamic log level for Plug.Telemetry — suppresses logging for + # health checks and uptime monitors (filtered by FilterNoisyLogs plug). + def telemetry_log_level(conn) do + if conn.private[:plug_skip_telemetry] do + false + else + :info end end diff --git a/lib/towerops_web/router.ex b/lib/towerops_web/router.ex index b0fb4e39..bd2ab88c 100644 --- a/lib/towerops_web/router.ex +++ b/lib/towerops_web/router.ex @@ -72,7 +72,7 @@ defmodule ToweropsWeb.Router do # Health check endpoint for Kubernetes probes (no authentication required) scope "/", ToweropsWeb do - get "/health", HealthController, :index + get "/health", HealthController, :index, log: false end scope "/", ToweropsWeb do