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