Honeybadger.EventFilter.Mixin (Honeybadger v0.24.1)
View SourceProvides a mixin for implementing the Honeybadger.EventFilter behaviour.
If you need to implement custom filtering for events, you can define your own filter module and register it in the config. For example, to filter based on event_type:
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
And set the configuration to:
config :honeybadger,
event_filter: MyApp.MyFilter
Return nil
from filter_event/1
to prevent the event from being processed.
If you override filter_telemetry_event/3
, you can still apply the default
filtering by calling apply_default_telemetry_filtering/1
.