Đọc đúng tín hiệu latency, quota và failover
Một cách thực dụng để phân biệt request chậm, provider suy giảm và route đang tự phục hồi.
Cập nhật
Một con số trung bình là chưa đủ#
Average latency dễ đọc nhưng có thể che giấu một nhóm request rất chậm. P95 cho biết 95 phần trăm request hoàn tất nhanh hơn ngưỡng nào; P99 giúp nhìn phần đuôi hiếm nhưng gây khó chịu nhất.
Hãy đọc latency cùng request count. P95 từ vài request không có độ tin cậy như P95 từ lưu lượng ổn định, và model tạo output dài đương nhiên có profile khác model trả lời ngắn.
Phân biệt ba loại quota#
- Plan quota là quyền sử dụng của user và phải được gateway cưỡng chế.
- Rate limit giới hạn tốc độ trong một cửa sổ thời gian ngắn.
- Provider quota là khả năng còn lại của connection upstream và chỉ là đầu vào cho router.
Client không cần biết credential hoặc quota chi tiết của từng provider. Nếu một connection cạn quota, router có thể loại nó khỏi candidate và chọn connection khác mà vẫn giữ nguyên public model ID.
Failover count không tự động là lỗi#
Failover thành công cho thấy hệ thống phục hồi được, nhưng số lượng tăng đột biến vẫn là tín hiệu cần điều tra. Hãy đối chiếu failover count với upstream status, latency, error category và route được cấu hình.
Retry count cũng không nên được xem tách biệt. Retry quá nhiều có thể khuếch đại sự cố upstream, tăng latency và tiêu thụ quota. Policy cần giới hạn attempt, backoff và loại status được retry.
Client nên phản ứng thế nào#
- Với 400, sửa request thay vì retry nguyên trạng.
- Với 401 hoặc 403 public, kiểm tra API key và permission; không suy đoán secret upstream.
- Với 429, tôn trọng Retry-After nếu có và áp dụng backoff có jitter.
- Với lỗi tạm thời 5xx, retry có giới hạn nếu operation an toàn.
- Với stream đã bắt đầu, không tự nối hai lần output vào cùng một câu trả lời.
Một dashboard có ích phải dẫn đến hành động#
Biểu đồ tốt không chỉ có màu xanh hoặc đỏ. Nó cần trả lời: ảnh hưởng tới model nào, bắt đầu lúc nào, route nào fallback, user có bị lỗi không, quota có được settle đúng không và sự cố đã phục hồi chưa.
Khi các tín hiệu được đọc cùng nhau, latency, quota và failover trở thành câu chuyện về vòng đời request thay vì ba widget rời rạc.