diff --git a/lib/sentry_filter.ex b/lib/sentry_filter.ex index adc1bf37047f..0b5f7fed57db 100644 --- a/lib/sentry_filter.ex +++ b/lib/sentry_filter.ex @@ -23,6 +23,14 @@ defmodule Plausible.SentryFilter do %{event | fingerprint: ["ingestion_request"]} end + def before_send(%{source: :logger, message: %{formatted: "Ranch listener" <> rest}} = event) do + if String.contains?(rest, "had its request process") do + false + else + event + end + end + def before_send(event) do event end diff --git a/test/plausible/sentry_filter_test.exs b/test/plausible/sentry_filter_test.exs index d71e839f9cdf..04b1fd7a49df 100644 --- a/test/plausible/sentry_filter_test.exs +++ b/test/plausible/sentry_filter_test.exs @@ -12,4 +12,25 @@ defmodule Plausible.SentryFilterTest do assert %Sentry.Event{fingerprint: ["ingestion_request"]} = Plausible.SentryFilter.before_send(event) end + + test "ignores excess cowboy error messages" do + event = %Sentry.Event{ + event_id: "5f0a9f9b04df4050884966c87a4e62b8", + timestamp: "2025-02-19T13:23:05.705493", + extra: %{logger_level: :error, logger_metadata: %{}}, + level: :error, + logger: nil, + message: %Sentry.Interfaces.Message{ + message: nil, + params: nil, + formatted: + "Ranch listener PlausibleWeb.Endpoint.HTTP, connection process #PID<0.1216.0>, " <> + "stream 1 had its request process #PID<0.1217.0> exit with " <> + "reason {{{%Plug.Parsers.ParseError{\n ..." + }, + source: :logger + } + + assert Plausible.SentryFilter.before_send(event) == false + end end