File size: 2,174 Bytes
3cf0daf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | # 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: <link>
- Runbook: `docs/runbooks/X.md`
- Related ADRs: `docs/adr/NNNN-*.md`
- Code change: <commit hash or PR link>
|