Customing Error Grouping

Honeybadger groups similar exceptions together using rules which we've found to work the best in most cases. The default information we use to group errors is:

  1. The file name, method name, and line number of the error's location
  2. The class name of the error
  3. The component/controller name

We use this information to construct a "fingerprint" of the exception. Exceptions with the same fingerprint are treated as the same error in Honeybadger.

You can customize the grouping for each exception by changing the error class name, component, or stack trace—or by sending a custom fingerprint.

See the Error Monitoring Guide for more information about how honeybadger groups similar exception together. You can customize the grouping for each exception in Elixir by sending a custom fingerprint when the exception is reported.

To customize the fingerprint for all exceptions that are reported from your app, use the fingerprint_adapter configuration option in config.ex:

elixir
config :honeybadger, fingerprint_adapter: MyApp.CustomFingerprint

Then, implement the Honeybadger.FingerprintAdapter behaviour in your module:

elixir
defmodule MyApp.CustomFingerprint do @behaviour Honeybadger.FingerprintAdapter def parse(notice) do notice.notifier.language <> "-" <> notice.notifier.name end end

You can also customize the fingerprint for individual exceptions when calling Honeybadger.notify:

elixir
Honeybadger.notify(%RuntimeError{}, fingerprint: "culprit_id-123")