Điều kiện đạt của check uptime
Mã trạng thái, nội dung chứa, giá trị JSON, header, thời gian phản hồi và chứng chỉ TLS: cách viết, thứ tự đánh giá và lý do báo lỗi.
Check uptime HTTP chỉ đạt khi mọi điều kiện đều đúng. Thêm chúng ở mục Điều kiện đạt khi tạo hoặc sửa check — tối đa 10 điều kiện mỗi check. Không có biểu thức chính quy hay script: mỗi điều kiện là một phép so sánh đơn giản, nên một check có cùng ý nghĩa ở mọi vùng.
Check TCP không có điều kiện: đạt khi mở được kết nối trong thời gian chờ.
Mặc định#
Mã trạng thái — khi không có điều kiện mã trạng thái,
2xxlà đạt. Khi tắt Đi theo chuyển hướng,3xxcũng đạt, vì chính lệnh chuyển hướng là câu trả lời.Chứng chỉ TLS hợp lệ — được thêm sẵn cho mọi check mới. Với URL
https://, chứng chỉ phải được tin cậy và khớp tên host; chứng chỉ hết hạn, tự ký hoặc sai host làm lượt đó hỏng. Chỉ bỏ điều kiện này nếu bạn thật sự dùng chứng chỉ như vậy. Không ảnh hưởng tới URLhttp://.
Các điều kiện#
| Điều kiện | Đạt khi | Ví dụ |
|---|---|---|
| Mã trạng thái | Mã cuối cùng nằm trong danh sách mã hoặc dải (tính cả hai đầu) | 200-299, 304 |
| Nội dung chứa | Nội dung có đoạn chữ đó | "status":"ok" |
| Nội dung không chứa | Nội dung không có đoạn chữ đó | Maintenance |
| Giá trị JSON | Giá trị tại đường dẫn JSON có mặt, bằng một giá trị, hoặc đúng kiểu | /db/healthy bằng true |
| Header | Header phản hồi có mặt, bằng một giá trị, hoặc chứa một đoạn chữ | content-type chứa json |
| Thời gian phản hồi | Tổng thời gian dưới ngưỡng, tính bằng mili giây | dưới 2000 |
| Chứng chỉ TLS hợp lệ | Chứng chỉ được tin cậy và khớp tên host | — |
Chi tiết:
Điều kiện nội dung đọc 64 KB đầu của nội dung sau khi giải nén (
gzip,deflate,br; tối đa 1 MB sau giải nén). Phần sau đó không được xét. So khớp phân biệt hoa thường, trừ khi bạn chọn không phân biệt hoa thường. Yêu cầuHEADkhông có nội dung, nên điều kiện nội dung và JSON cầnGET.Giá trị JSON dùng đường dẫn JSON pointer (RFC 6901):
/data/items/0/idlàidcủa phần tử đầu tiên; viết~1thay cho/và~0thay cho~trong tên khoá. Bằng so chuỗi đúng như viết, còn mọi giá trị khác so theo dạng chữ JSON —true,3,null. Kiểu là một trongstring,number,boolean,object,array,null. Nội dung không phải JSON hợp lệ làm mọi điều kiện JSON hỏng.Tên header không phân biệt hoa thường; giá trị so đúng như máy chủ gửi.
Thời gian phản hồi là tổng DNS, kết nối, TLS, byte đầu và tải về, đo trên máy kiểm. Sau chuyển hướng là thời gian của bước cuối.
Đoạn chữ và giá trị dài tối đa 256 ký tự.
Thứ tự và lý do hỏng#
Điều kiện được kiểm theo thứ tự cố định; điều kiện hỏng đầu tiên quyết định lý do hiện ở trang check và trong cảnh báo. Lượt không nhận được câu trả lời thì hỏng sớm hơn, với lý do mạng.
| Thứ tự | Phần hỏng | Lý do hiển thị |
|---|---|---|
| — | Không có câu trả lời: DNS, kết nối, bắt tay TLS hoặc quá thời gian | không phân giải được DNS, không kết nối được, lỗi TLS, quá thời gian chờ |
| 1 | Mã trạng thái | mã trạng thái không như mong đợi |
| 2 | Chứng chỉ TLS hợp lệ | lỗi TLS |
| 3 | Header | kiểm tra header không đạt |
| 4 | Nội dung chứa / không chứa | nội dung không khớp |
| 5 | Giá trị JSON | kiểm tra JSON không đạt |
| 6 | Thời gian phản hồi | phản hồi quá chậm |
Vài kết quả là không rõ, không bao giờ là hỏng, vì chúng không nói gì về dịch vụ của bạn: chưa chạy — quá nhiều check cùng lúc tới một máy chủ, địa chỉ bị chặn (tên miền nay phân giải ra địa chỉ bị từ chối — hãy sửa đích) và lỗi máy kiểm tra. Xem Belvador quyết định thế nào.
Header của yêu cầu#
Bạn có thể gửi tối đa 10 header, ví dụ x-health-token mà endpoint của bạn cần. Không được đặt authorization, cookie, host, content-length, transfer-encoding, connection, te, upgrade và mọi header proxy-* hay sec-*. Giá trị header là một phần cấu hình check, mọi thành viên workspace đều đọc được — hãy dùng token chỉ dành cho kiểm tra sức khoẻ, không bao giờ dùng thông tin đăng nhập của người dùng. Khi chuyển hướng sang origin khác, header của bạn không được gửi tới đó.
Mọi yêu cầu đều có User-Agent: BelvadorUptime/<version> (+https://belvador.dev/docs/uptime/probes); xem Máy kiểm và IP.
Công thức mẫu#
| Mục tiêu | Điều kiện |
|---|---|
| Endpoint sức khoẻ tự báo trạng thái | Mã 200; giá trị JSON /status bằng ok |
| Trang không được hiện mẫu lỗi | Mã 200-299; nội dung không chứa Something went wrong |
| API phải luôn nhanh | Mã 200; thời gian phản hồi dưới 800 |
| Lệnh chuyển hướng phải giữ nguyên | Tắt đi theo chuyển hướng; mã 301; header location chứa https://www.example.com/ |
Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev