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):
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
# Remove query field for a specific repo def filter_event(%{event_type: "my_app.repo.query"} = event) do Map.delete(event, :query) |> 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: eventendThen configure the filter in your application’s configuration:
config :honeybadger, event_filter: MyApp.EventFilter