Production engineering guide for incident postmortem templates covering patterns, implementation strategies, and operational best practices.
This page describes reusable templates for documenting incident postmortems. These templates are designed to guide structured analysis of incidents, from initial detection through resolution and follow-up actions. They apply when teams need to capture the sequence of events, root causes, and remediation steps in a consistent format that supports learning and process improvement.
The following sections form the foundation of an incident postmortem:
Each section has a defined purpose and expected content. The format ensures that critical details are not omitted during the postmortem process.
The executive summary should be a concise one-paragraph overview of the incident. It must include:
INC-2024-001)Example structure:
On 2024-03-15 at 14:30 UTC, a service degradation occurred in the payment processing pipeline due to a misconfigured database connection pool. The incident lasted approximately 45 minutes and affected 87% of transaction requests. The root cause was identified as an incorrect value in a configuration parameter that reduced the maximum number of concurrent connections from 100 to 10. Key actions included restoring the correct configuration and implementing automated validation checks.
The timeline section records all significant events during the incident, including:
Each entry should include:
Example format:
14:30:12 UTC | Alerting system | Database connection pool exceeded threshold
14:31:05 UTC | SRE team | Initial investigation started
14:35:22 UTC | DevOps engineer | Checked configuration files
14:40:11 UTC | SRE team | Configuration restored
14:45:00 UTC | Monitoring system | Alert cleared
The impact section documents what was affected and how severely. Include:
Example:
Affected components:
- Payment gateway service
- User authentication service
- Database cluster
Metrics showing degradation:
- Response time increased from 100ms to 3500ms
- Error rate rose to 87%
- Database connection pool utilization peaked at 95%
User impact:
- 87% of transaction requests failed
- Users unable to log in or complete purchases
The root cause analysis section identifies the underlying issue. It must include:
Example:
Direct cause:
Configuration parameter `max_connections` was changed from 100 to 10 in the application settings.
Contributing factors:
- No automated validation for critical configuration parameters
- Change was deployed without review by senior SREs
- Monitoring did not alert on connection pool exhaustion
Evidence:
- Configuration file changes log showed modification at 14:15 UTC
- Database logs indicated connection timeouts starting at 14:28 UTC
- Application logs reported "connection pool exhausted" errors
This section documents the actions taken to resolve the incident. List each step in chronological order:
Example:
1. Identified configuration parameter `max_connections` as incorrect
2. Restored original value of 100 in configuration management system
3. Restarted affected services to pick up new configuration
4. Verified database connection pool behavior
5. Confirmed service stability
The follow-up actions section lists items that must be completed after the incident. These are typically:
Example:
1. Implement automated validation for all critical configuration parameters
2. Add check for `max_connections` in deployment pipeline
3. Update SRE runbook to include configuration review step
4. Create new alert for database connection pool utilization above 80%
For incidents caused by incorrect settings or configurations:
For incidents involving hardware, network, or platform outages:
For incidents where performance dropped without full failure:
Postmortems should be reviewed by:
Review checklist:
All postmortems should be stored in version control with:
incident-2024-001.md)Example git workflow:
git checkout -b postmortem/incident-2024-001
# Make changes to markdown file
git add incident-2024-001.md
git commit -m "Add postmortem for INC-2024-001"
git push origin postmortem/incident-2024-001
The most common silent failure in incident reporting is incomplete timeline data. The system may record alerts but not the human actions that followed. This leads to incorrect root cause assumptions.
Example of what fails:
Teams often conflate "impact" and "resolution steps." Impact should describe what was broken, while resolution steps describe how it was fixed.
Postmortems are often reviewed without checking:
Templates can be customized but must maintain core structure. Customization options include:
Customizations must not:
Postmortems should be organized in a consistent directory structure:
/incidents/
/2024/
/03/
incident-2024-001.md
incident-2024-002.md
/04/
incident-2024-003.md
Templates support automation through:
Example markdown linting command:
markdownlint -c .markdownlint.yaml incident-2024-001.md
Templates should be updated based on:
Update frequency should be quarterly or as needed based on incident trends.
This page was rewritten on 16 October 2026. It replaced a templated version that was not specific to its own title. How these pages are written and checked. If anything here is wrong, tell us at [email protected] and we will correct it.
We use cookies for analytics (Google Analytics) and advertising (Google AdSense) to improve your experience and support free content. Privacy Policy