Tình huống: sự cố 3 giờ sáng, p99 checkout lên 4 giây Trung cấp
Thời gian đọc ước tính: 1 phút
Pager kêu lúc 3 giờ sáng: checkout chậm gấp 20 lần, lỗi đang tăng, và có một bản deploy từ 40 phút trước. Bạn đi qua bốn quyết định: hành động đầu tiên, cập nhật cho stakeholder, tìm nguyên nhân và viết postmortem.
- Đọc kỹ evidence trước khi bấm: CPU, event loop delay và
pg_stat_activityđã gợi ý gần hết. - Chọn sai thì đọc giải thích rồi Chọn lại; điểm chỉ tính lựa chọn đầu tiên ở mỗi bước.
Sự cố 3 giờ sáng: p99 checkout từ 200 ms lên 4 giây
Bạn là on-call backend của team checkout. Đêm nay chỉ có bạn và một người secondary đang được gọi dậy. Mọi mốc giờ dưới đây là UTC (03:07 giờ Việt Nam = 20:07 UTC).
Bước 1/4 · Pager kêu lúc 03:07
Alert burn rate SLO checkout. p99 đã từ 200 ms lên hơn 4 giây, lỗi 5xx đang tăng. Bạn đã ack, mở incident doc và declare SEV2, tự làm IC.
Thay đổi gần nhất: api v3.14 deploy lúc 19:27 UTC, 40 phút trước, thêm tính năng tích điểm loyalty khi thanh toán. Bản này không kèm migration.
- p99 bắt đầu leo
- 19:58 UTC
- CPU api
- 15%
- event loop delay p99
- 11 ms
- burn rate
- ~250x
-- pg_stat_activity lúc 20:08 UTC state | wait_event_type | wait_event | count ---------------------+-----------------+---------------+------ idle in transaction | Client | ClientRead | 41 active | Lock | transactionid | 118 idle | Client | ClientRead | 9 -- log api Error: timeout exceeded when trying to connect (pool 30/30 mỗi pod, waiting 300+)
Bạn làm gì?
Chơi xong, đọc Ứng cứu sự cố để có bảng “triệu chứng → nhìn gì → mitigate gì” và checklist on-call đầy đủ.