الملفات
ghaymah-exam-AhmedSaied-sre/q2-postmortem/postmortem-report.md

105 أسطر
2.5 KiB
Markdown

# Postmortem Report
## Incident Summary
On July 28, 2026, the application experienced repeated OOMKilled events, causing service interruption for approximately 45 minutes. During this period, users were unable to access the application.
---
## Timeline
- 10:00 AM - Application deployed successfully.
- 10:12 AM - Memory usage started increasing.
- 10:18 AM - First OOMKilled event occurred.
- 10:20 AM - Kubernetes restarted the container.
- 10:24 AM - Multiple OOMKilled events repeated.
- 10:45 AM - Monitoring system alerted the operations team.
- 11:00 AM - Memory limit increased and memory leak fixed.
- 11:03 AM - Service fully restored.
---
## Root Cause
The application contained a memory leak that caused continuous memory consumption. The container exceeded its memory limit, resulting in repeated OOMKilled events and continuous restarts.
---
## Recommendations
- Set appropriate memory requests and limits.
- Enable Horizontal Pod Autoscaler (HPA).
- Monitor memory usage continuously.
- Configure alerting before memory reaches critical levels.
- Perform load testing before production deployment.
---
# Auto Scaling Policy
## Objective
Prevent service interruption caused by high memory usage and repeated OOMKilled events.
## Scaling Policy
- Minimum Replicas: 2
- Maximum Replicas: 10
### Scale Out
Increase the number of containers when:
- CPU usage > 70% for 2 minutes.
- Memory usage > 75% for 2 minutes.
Increase by 2 replicas at a time.
### Scale In
Decrease the number of containers when:
- CPU usage < 40% for 10 minutes.
- Memory usage < 50% for 10 minutes.
Remove only one replica at a time.
### Additional Protection
- Configure memory requests and limits.
- Enable readiness and liveness probes.
- Prevent scheduling on unhealthy nodes.
---
# Early Detection Using Cloud Monitoring
The issue can be detected early using cloud monitoring tools by continuously monitoring application and infrastructure metrics.
## Metrics to Monitor
- Memory Usage
- CPU Usage
- Container Restarts
- OOMKilled Events
- Pod Status
- Application Response Time
## Alerts
Configure alerts when:
- Memory usage exceeds 80%.
- Container restarts more than 3 times within 5 minutes.
- OOMKilled event is detected.
- Response time exceeds 500 ms.
## Monitoring Tools
- Prometheus
- Grafana
- Kubernetes Metrics Server
- Cloud Monitoring Platform
These tools provide dashboards, real-time metrics, and alert notifications to help engineers respond before the service becomes unavailable.