SLO: mục tiêu, ngân sách lỗi và thời gian không đo được
Đặt mục tiêu trên check uptime, monitor, heartbeat hoặc span; cách Belvador đếm tốt/xấu, độ phủ, trạng thái và dữ liệu nằm ở đâu.
Trong bài này
SLO (mục tiêu mức dịch vụ) là lời hứa về một thứ Belvador vốn đã đo: "checkout API trả lời được 99,9 % thời gian", "job xuất dữ liệu ban đêm thành công 99 % số lần", "95 % request GET /api/orders xong dưới 300 ms". Belvador đếm tốt và xấu trong một cửa sổ trượt, cho biết ngân sách lỗi còn bao nhiêu, và báo cho bạn khi ngân sách đang bị đốt quá nhanh — từ lâu trước khi nó cạn.
| Bạn muốn biết khi… | Dùng |
|---|---|
| Một trang hay API đang sập ngay lúc này | Check uptime |
| Một job không chạy hoặc bị lỗi | Monitor |
| Độ tin cậy qua nhiều tuần đang giảm, trước khi người dùng nhận ra | SLO (bài này) |
1. Tạo SLO#
Mở SLO → SLO mới và đi qua bốn bước.
Nguồn — thứ được đếm:
Nguồn Tốt Tổng Ai đếm Kiểm tra uptime · khả dụng lượt kiểm Hoạt động hoặc Suy giảm lượt kiểm có kết quả xác định Belvador, từ kết quả của check Kiểm tra uptime · độ trễ lượt kiểm trả lời trong ngưỡng của bạn lượt kiểm có kết quả xác định Belvador Monitor lần chạy kết thúc OK lần chạy OK, lỗi, quá giờ hoặc bị lỡ node của bạn Heartbeat hạn có ping đúng giờ hạn đã qua Belvador Span · khả dụng span SERVERkhông có trạng thái lỗispan SERVERcủa dịch vụ (và thao tác)node của bạn Span · độ trễ span SERVERnhanh hơn ngưỡngspan SERVERcủa dịch vụ (và thao tác)node của bạn Span chỉ đếm loại
SERVER, để một request không bị đếm hai lần qua span client và span nội bộ. SLO monitor hoặc span có thể giới hạn trong một môi trường; để trống là mọi môi trường.Thế nào là tốt — khả dụng, hoặc độ trễ với ngưỡng 1–60000 ms (chỉ cho kiểm tra uptime và span).
Mục tiêu — từ 90 % đến 99.99 %, trên cửa sổ trượt 7, 28, 30 ngày. Form hiện ngân sách tương ứng, ví dụ "Ngân sách lỗi: 43,2 phút mỗi 30 ngày" cho 99,9 %.
Cảnh báo — mức đốt nào được phép báo; xem Cảnh báo tốc độ đốt.
Belvador bắt đầu đo từ lúc bạn lưu; dữ liệu trước đó không được điền bù. SLO mới cần ít nhất 60 phút đã đo trước khi có kết luận. Số SLO một workspace được tạo tuỳ theo gói.
2. Ngân sách lỗi#
Ngân sách lỗi là phần xấu được phép: 1 − mục tiêu của cửa sổ. Cách tiêu ngân sách tuỳ nguồn, theo hai cách tính của OpenSLO:
Timeslices (kiểm tra uptime) — ngân sách là thời gian. 99,9 % trong 30 ngày cho phép 43,2 phút xấu; mỗi khoảng xấu tiêu đúng độ dài của nó.
Occurrences (monitor, heartbeat, span) — ngân sách là tỉ lệ sự kiện. 99 % cho phép 1 lần chạy xấu trong mỗi 100 lần.
Ngân sách còn hiện theo phần trăm và có thể âm khi SLO đã trượt. Đạt là tốt ÷ tổng trong cửa sổ, luôn làm tròn xuống, để một giá trị sát dưới mục tiêu không bao giờ trông như đã đạt.
3. Thời gian không rõ không bao giờ được tính là tốt#
Có những phút không thể đánh giá: node offline, một lượt uptime có quá ít vùng báo về, nguồn đang tạm dừng, hoặc không có gì chạy. Belvador bỏ những phút đó ra khỏi cả tốt lẫn tổng — chúng không bao giờ được tính là tốt.
Độ phủ là tỉ lệ cửa sổ Belvador đo được. Dưới 90 %, SLO hiện Chưa đủ dữ liệu thay vì một con số, và không gửi cảnh báo. Khoảng trống được vẽ thành khoảng trống trên biểu đồ ngân sách.
4. Trạng thái#
| Trạng thái | Ý nghĩa |
|---|---|
| Trong ngân sách | Đốt chậm hơn mọi ngưỡng cảnh báo |
| Đang đốt | Vượt ngưỡng đốt chậm (ticket) |
| Đốt nhanh | Vượt ngưỡng đốt nhanh (gọi khẩn) |
| Hết ngân sách | Cửa sổ không còn ngân sách |
| Chưa đủ dữ liệu | Độ phủ dưới 90 %, hoặc thời gian đã đo còn quá ít |
| Tạm dừng | Không đánh giá, không cảnh báo, đến thời điểm bạn chọn hoặc đến khi bạn tiếp tục |
5. Sửa SLO#
Mỗi lần lưu tạo một phiên bản mới, liệt kê trên trang SLO. Đổi tên, mô tả, mục tiêu, cửa sổ hay chính sách cảnh báo thì giữ nguyên lịch sử. Đổi thứ được đếm — nguồn, bộ lọc, chỉ số, ngưỡng độ trễ, hoặc có tính nguồn công khai hay không — thì ngân sách tính lại từ lúc đó, vì số đếm cũ không còn cùng ý nghĩa. Form cảnh báo trước khi bạn lưu.
SLO nhập từ tệp OpenSLO chỉ đổi được bằng cách nhập lại tệp.
6. Nguồn công khai#
Một số dữ liệu có thể được gửi bằng khoá vốn công khai — ví dụ check-in gửi bằng DSN trình duyệt. Bất kỳ ai đọc được trang của bạn đều có thể gửi giá trị giả và làm lệch SLO. Dữ liệu đó không được đếm trừ khi bạn bật Cho phép nguồn công khai cho SLO đó; SLO khi ấy mang nhãn cảnh báo.
7. Dữ liệu SLO nằm ở đâu#
Belvador giữ: định nghĩa và các phiên bản, và chỉ số đếm — với mỗi SLO và mỗi phút, bao nhiêu tốt và bao nhiêu được đếm. Số đếm theo phút giữ 3 ngày, theo giờ giữ 90 ngày. Cửa sổ đến 6 giờ được đánh giá bằng số đếm theo phút, cửa sổ dài hơn bằng số đếm theo giờ. Trạng thái và lịch sử cảnh báo được giữ cùng.
Không bao giờ gửi về Belvador: nội dung span, nội dung check-in hay bất cứ thứ gì khác trên node của bạn. Với SLO monitor và span, node chỉ nhận id và bộ lọc của SLO, đếm tại chỗ, rồi gửi
(id SLO, tốt, tổng)mỗi phút. Node không biết tên SLO.Span được đếm 3 phút sau khi mỗi phút kết thúc, để các lô đến muộn vẫn rơi đúng phút.
8. Chưa có ở phiên bản này#
Cửa sổ theo tháng dương lịch, SLO gộp nhiều nguồn, trọng số theo tỉ lệ lấy mẫu và lịch loại trừ chưa được hỗ trợ. Với bảo trì có kế hoạch, hãy tắt tiếng hoặc tạm dừng SLO.
Bài viết về chủ đề này
Tất cả bài viết- Observability cho team nhỏ: năm tín hiệu, theo đúng thứ tự cần dùngTeam nhỏ nên theo dõi gì trước: lỗi, job định kỳ, uptime từ bên ngoài, một SLO, rồi mới tới trace. Dựa trên bốn thí nghiệm, kèm chỗ mỗi tín hiệu bỏ sót.
- Burn rate trong SLO, giải thích dễ hiểu qua bốn sự cốBurn rate SLO giải thích bằng bốn sự cố giả lập chạy qua bộ đánh giá thật: cảnh báo đa cửa sổ mở, đóng lúc nào, và vì sao ngưỡng 5 phút kêu tới 16 lần.
Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev