fix(logs): add Plug.Telemetry metadata filter to suppress health check logs
The FilterNoisyLogs plug wasn't completely preventing logs in Phoenix 1.8. Added metadata_filter to Plug.Telemetry to explicitly skip logging for: - GET /health - GET /health/time - HEAD / This works at the Telemetry level before logs are emitted.
This commit is contained in:
parent
8bad7c724e
commit
b0fcfb800f
1 changed files with 14 additions and 1 deletions
|
|
@ -55,7 +55,20 @@ defmodule ToweropsWeb.Endpoint do
|
||||||
plug ToweropsWeb.Plugs.BruteForceProtection
|
plug ToweropsWeb.Plugs.BruteForceProtection
|
||||||
plug ToweropsWeb.Plugs.SecurityHeaders
|
plug ToweropsWeb.Plugs.SecurityHeaders
|
||||||
|
|
||||||
plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
|
plug Plug.Telemetry,
|
||||||
|
event_prefix: [:phoenix, :endpoint],
|
||||||
|
log: :info,
|
||||||
|
metadata_filter: &__MODULE__.telemetry_metadata_filter/1
|
||||||
|
|
||||||
|
# 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
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
plug Plug.Parsers,
|
plug Plug.Parsers,
|
||||||
parsers: [:urlencoded, :multipart, :json],
|
parsers: [:urlencoded, :multipart, :json],
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue