Filtering Events

You can filter out or customize events sent to Honeybadger Insights by using the Honeybadger.EventFilter.Mixin module. You can customize both the event built from telemetry data (filter_telemetry_event/3) and the event right before it is sent to Honeybadger (filter_event/1):

elixir
defmodule MyApp.MyFilter do use Honeybadger.EventFilter.Mixin # Drop analytics events by returning nil def filter_event(%{event_type: "analytics"} = _event), do: nil # Anonymize user data in login events def filter_event(%{event_type: "login"} = event) do event |> update_in([:data, :user_email], fn _ -> "[REDACTED]" end) |> put_in([:metadata, :filtered], true) end # For telemetry events, you can customize while still applying default filtering def filter_telemetry_event(data, raw, event) do # First apply default filtering filtered_data = apply_default_telemetry_filtering(data) # Then apply custom logic case event do [:auth, :login, :start] -> Map.put(filtered_data, :security_filtered, true) _ -> filtered_data end end # Keep all other events as they are def filter_event(event), do: event end

Then configure the filter in your application's configuration:

elixir
config :honeybadger, event_filter: MyApp.EventFilter