Example 1 — Constraint storm. A schema change breaks inserts; hundreds of ERROR: null value in column "x" violates not-null constraint lines collapse into one group with a count, because the normalizer replaces every quoted identifier with a placeholder before grouping — so the pattern reads the same whether the failing column is "email" or "customer_id".
Example 2 — Slow reporting query. duration: 15200.123 ms lines rank the offending statements with the database and user that ran them, so a report-generation job that quietly got slower over time surfaces at the top of the slow-statement list instead of hiding among thousands of routine LOG lines.
Example 3 — Auth failures. Repeated password authentication failed for user "x" entries group by pattern (with the username masked out) while the per-database breakdown shows which cluster is under attack — a sudden count of grouped auth failures against one database is a strong signal of credential stuffing or a misconfigured client retrying with a stale password.
Example 4 — Noise filtering. A busy production log can be 95% routine LOG: statement: lines; because only ERROR/FATAL/PANIC/WARNING lines are grouped and counted toward the error patterns section, that routine traffic never crowds out the handful of lines that actually need attention.