E
Reliability

Error Tracking

Auto-grouped issues by fingerprint with first/last seen and occurrence counts.

How it works

Any log with severity `error`/`fatal` or any span with `status=error` is fingerprinted (normalised stack trace + service + operation). Identical fingerprints roll up into a single `issue` row with first_seen, last_seen, occurrence_count, and a sample event. Open issues bubble to the top of the dashboard; closed issues can be auto-reopened if they recur after `regression_window_h`.

What this lets you do

  • No more `tail -f | grep ERROR` — every error has its own card
  • Deduplication across millions of events into ~hundreds of issues
  • Burn-down chart: open vs resolved over time
  • One-click jump from issue → matching log lines / spans / replay sessions

Get it running

  1. 1 Just emit logs with severity `error` or spans with `status=error`
  2. 2 Issues auto-create on first occurrence
  3. 3 Open `Error Tracking` to triage

Code examples

curl -X POST https://funnel.example.com/v1/logs \
  -H "Authorization: Bearer st_YOUR_KEY" \
  -d '{
    "logs": [{
      "severity":     "error",
      "service_name": "checkout",
      "message":      "stripe charge declined: card_declined",
      "trace_id":     "a1f3c4d5b6e7890123456789abcdef00",
      "attributes":   {
        "error.type":  "Stripe.CardError",
        "stack_trace": "Stripe::Charge.create_charge:78\nCheckoutController:42"
      }
    }]
  }'
Where to find it
/app/p/:org/:project/error_tracking
Open in app →