Sự cố: gom cảnh báo liên quan thành một việc có người phụ trách
Luật sự cố gom cảnh báo monitor, uptime, SLO và lỗi; nhận xử lý, ghi chú, chờ hồi phục rồi tự đóng, mở lại khi tái phát; PagerDuty và incident.io nhận một trang cho mỗi sự cố.
Trong bài này
Một sự cố gom các cảnh báo liên quan thành một việc có người chịu trách nhiệm. Khi job đêm bị lỗi rồi quá giờ, bạn nhận một sự cố — INC-12 · Nightly billing — có cả hai cảnh báo liên kết, mỗi nơi nhận chỉ một tin, và một chỗ để nhận xử lý, ghi chú và đóng. Sự cố chỉ tự đóng khi mọi thứ liên kết đã khoẻ ổn định một thời gian.
Mở Sự cố trong workspace. Viewer xem được; member nhận xử lý, giao việc, ghi chú và đóng; admin sửa luật sự cố.
Cảnh báo thành sự cố thế nào#
Cảnh báo → Luật sự cố quyết định cảnh báo nào mở sự cố và cảnh báo liên quan gom vào ra sao. Mỗi workspace có sẵn một luật:
| Thiết lập | Mặc định |
|---|---|
| Loại | Cảnh báo monitor, uptime, SLO và issue lỗi |
| Mức | Trung bình trở lên |
| Gom theo | Cùng nguồn và môi trường — cùng monitor, uptime check, SLO hoặc issue trong cùng môi trường |
| Cửa sổ | 30 phút |
| Chờ hồi phục | 15 phút |
Các luật được xét theo thứ tự; luật bật đầu tiên khớp với cảnh báo sẽ được dùng. Bạn có thể giới hạn luật theo project và môi trường, hoặc gom theo project và môi trường để mọi cảnh báo của một app trên production về chung một sự cố.
Cảnh báo đã vào sự cố không gửi tin riêng. Nơi nhận được báo về sự cố: mở, mở lại, tăng mức, leo thang và đã xong. Khi không có luật khớp (hoặc luật đang tắt), cảnh báo vẫn gửi từng cái như trước — xem Cảnh báo.
Cảnh báo bị khung bảo trì tắt tiếng cũng không vào sự cố (khung bảo trì).
Trạng thái#
| Trạng thái | Nghĩa là |
|---|---|
| Đang mở | Còn ít nhất một cảnh báo liên kết đang báo và chưa ai nhận |
| Đã nhận | Có người nhận xử lý (Nhận xử lý, phím tắt A); người đó thành người phụ trách nếu chưa có ai |
| Theo dõi hồi phục | Mọi cảnh báo liên kết đã hồi phục; Belvador chờ hết thời gian chờ hồi phục rồi mới đóng |
| Đã xong | Đã đóng. Đã xác minh khi khoẻ suốt thời gian chờ; Chưa xác minh khi có người đóng tay |
Cảnh báo mới trong lúc Theo dõi hồi phục đưa sự cố về Đang mở mà không gửi lại tin "mở".
Cảnh báo liên quan trong cửa sổ sau khi sự cố đã xong (và tối đa 24 giờ sau) sẽ mở lại sự cố, kèm tin "mở lại". Muộn hơn thì mở sự cố mới với số mới.
Cùng một cảnh báo đến hai lần (node gửi lại, giao trùng) không bao giờ mở sự cố thứ hai; hai cảnh báo đến cùng lúc vẫn chỉ mở một.
Đóng thủ công cần lý do; lý do được giữ trên dòng thời gian và gửi kèm tin "đã xong".
Mức độ#
Mức của sự cố là mức cao nhất trong các cảnh báo còn đang báo; mức đỉnh được giữ lại. Khi mức tăng (ví dụ một monitor critical gia nhập), nơi nhận được một tin "tăng mức" cho mỗi mức. Sự cố critical và high luôn gửi ngay, kể cả trong giờ yên tĩnh.
Tin nhắn và công cụ trực#
| Sự kiện | Ai nhận |
|---|---|
| Mở, mở lại, tăng mức | Nơi nhận của luật cảnh báo đã khớp |
| Leo thang | Nơi nhận leo thang của chính sách thông báo |
| Đã nhận | Chỉ PagerDuty, để trang gọi ngừng réo |
| Đã xong | Mọi nơi đã được báo khi mở |
PagerDuty và incident.io nhận một cảnh báo cho mỗi sự cố (trigger, acknowledge, resolve cùng một khoá chống trùng), nên công cụ trực chỉ hiện một trang, không phải mỗi cảnh báo một trang. Trên trang sự cố, mục Giao tin hiện từng tin: Đã giao nghĩa là dịch vụ đã nhận; chỉ khi có người nhận xử lý mới tính là đã xác nhận.
Dòng thời gian và ghi chú#
Mọi thay đổi đều nằm trên dòng thời gian: mở, cảnh báo gia nhập hay hồi phục, đổi mức, ai nhận, đổi người phụ trách hay tiêu đề, chuyển dự phòng, leo thang, ghi chú và cách đóng. Ghi chú (tối đa 2.000 ký tự) hiện cho team dưới dạng chữ thường. Tên và tiêu đề đến từ app của bạn và luôn hiện dạng chữ, không bao giờ thành link hay markup.
Ảnh hưởng hiện số người dùng bị ảnh hưởng khi node báo về; Chưa biết không bao giờ có nghĩa là 0.
API và MCP#
Các thao tác trên cũng có trong REST API và MCP server:
| Lệnh | Làm gì |
|---|---|
GET /v1/incidents, GET /v1/incidents/{incident_id} | Liệt kê và đọc sự cố (liên kết, dòng thời gian, trạng thái giao tin) — scope incidents:read |
POST /v1/incidents/{incident_id}/ack | Nhận xử lý — scope incidents:write |
POST /v1/incidents/{incident_id}/resolve | Đóng kèm lý do |
POST /v1/incidents/{incident_id}/notes | Thêm ghi chú |
PATCH /v1/incidents/{incident_id} | Đổi tên hoặc người phụ trách |
GET/POST /v1/incident-rules, DELETE /v1/incident-rules/{rule_id} | Luật sự cố — scope alerts:read / alerts:write (admin) |
Token hành động theo vai trò hiện tại của chủ token: token của viewer đọc được nhưng không bao giờ nhận xử lý hay đóng sự cố.
Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev