RMI Platform
feat(v3): ship new system β€” skip _legacy_main, mount v1 routers
3cf0daf
|
Raw
History Blame Contribute Delete
2.17 kB

Postmortem: [Incident Title]

  • Date: YYYY-MM-DD
  • Severity: SEV1 / SEV2 / SEV3
  • Duration: Xh Ym
  • Author: @name
  • Status: Draft / Final

Summary

One-paragraph summary of what happened. Read this first; if you only have 30 seconds, this is all you need.

Impact

  • Users affected: N users / M% of traffic
  • Duration of user-visible impact: Xh Ym
  • Revenue impact: $X (estimated)
  • Data loss: yes / no / partial

Timeline (all times UTC)

  • HH:MM β€” first alert (Telegram / Sentry / user report)
  • HH:MM β€” investigation began
  • HH:MM β€” root cause identified
  • HH:MM β€” mitigation applied (e.g. container restart, rollback)
  • HH:MM β€” service recovered
  • HH:MM β€” monitoring confirmed no recurrence

Root Cause

Technical explanation. No blame. Describe the technical chain that led to the incident.

Contributing Factors

  • Factor 1: e.g. "alert threshold was set too high"
  • Factor 2: e.g. "no runbook existed for this failure mode"
  • Factor 3: e.g. "tests did not cover this code path"

What Went Well

  • Alert fired within 60s of failure
  • Rollback completed in 5min
  • No data loss

What Went Poorly

  • Alert was noisy (3 false positives before real one)
  • Runbook was outdated
  • Took 30min to identify root cause

Triggering Condition

What was the chain of events that led to the incident? Be specific.

Detection

How did we find out? Alert / user report / proactive check / etc.

Resolution

What did we do to fix it?

Action Items

  • Action 1: [description] β€” owner: @name β€” due: YYYY-MM-DD
  • Action 2: [description] β€” owner: @name β€” due: YYYY-MM-DD
  • Action 3: [description] β€” owner: @name β€” due: YYYY-MM-DD

Action items must be:

  • Specific: not "improve observability" β€” "add Prometheus alert for X at Y threshold"
  • Owned: one named person, no "team"
  • Dated: hard deadline, not "soon"

Lessons Learned

What would we do differently? Be honest.

References

  • Slack thread:
  • Runbook: docs/runbooks/X.md
  • Related ADRs: docs/adr/NNNN-*.md
  • Code change: