Giám sát & Cảnh báo
Những gì nhà tạo lập thị trường cần giám sát và thiết lập cảnh báo.
Kiểm tra tình trạng (Health Checks)
Tình trạng API
Endpoint: GET /health
Phản hồi: {"status":"ok"}
Sẵn sàng (Readiness): GET /ready trả về {"status":"ready","components":[...]} với cờ ready cho từng thành phần. Hãy dùng endpoint này để phân biệt một API có thể kết nối nhưng chưa sẵn sàng phục vụ với một API hoạt động bình thường.
Giám sát: Kiểm tra mỗi 30-60 giây
Cảnh báo: Nếu health check thất bại, máy chủ API có thể đang ngừng hoạt động
Kết nối WebSocket
Giám sát: Theo dõi trạng thái kết nối WebSocket
Cảnh báo: Nếu kết nối bị ngắt, hãy kết nối lại ngay lập tức
Thực hành tốt nhất: Áp dụng exponential backoff khi kết nối lại
Giám sát lệnh
Tỷ lệ từ chối
Chỉ số: Tỷ lệ phần trăm lệnh bị từ chối
Cảnh báo: Nếu tỷ lệ từ chối > 5%, hãy kiểm tra:
- Vấn đề về ký quỹ
- Giới hạn theo cấp (tier)
- Công cụ đã đáo hạn
- Hệ thống quá tải
Tỷ lệ khớp lệnh
Chỉ số: Tỷ lệ phần trăm lệnh được khớp
Cảnh báo: Nếu tỷ lệ khớp lệnh giảm đáng kể, hãy kiểm tra:
- Điều kiện thị trường
- Mức độ cạnh tranh của báo giá
- Độ sâu sổ lệnh
Độ trễ lệnh
Chỉ số: Thời gian từ khi đặt lệnh đến khi khớp/xác nhận (ack)
Cảnh báo: Nếu độ trễ > 1s, hãy kiểm tra:
- Hệ thống quá tải
- Sự cố mạng
- Độ trễ xử lý của engine
Giám sát danh mục
Mức sử dụng ký quỹ
Chỉ số: mức sử dụng ký quỹ tính từ margin_summary trong GET /portfolio?wallet=.... margin_summary.initial_margin và margin_summary.maintenance_margin là dư địa (phần còn lại sau khi trừ yêu cầu), không phải ký quỹ đang dùng. Tính mức sử dụng so với cơ sở thực sự hỗ trợ ký quỹ ở từng chế độ:
margin_summary.mode | Cơ sở | Dư địa ký quỹ ban đầu | Dư địa ký quỹ duy trì |
|---|---|---|---|
portfolio | equity | initial_margin | maintenance_margin |
standard | standard_margin.cash_margin | standard_margin.initial_margin_headroom | standard_margin.maintenance_margin_headroom |
im_utilization = (basis - initial_margin_headroom) / basis
mm_utilization = (basis - maintenance_margin_headroom) / basis
Coi cơ sở bằng 0 hoặc âm là đã sử dụng 100%.
Cảnh báo: Nếu mức sử dụng ký quỹ ban đầu > 80%, lệnh mới sắp bị từ chối. Nếu mức sử dụng ký quỹ duy trì tiến gần 100%, tài khoản sắp bị thanh lý. Hãy cân nhắc:
- Giảm quy mô vị thế
- Bổ sung tài sản thế chấp
- Đóng bớt vị thế
Tài sản thế chấp khả dụng
Chỉ số: available_balance từ GET /portfolio?wallet=.... Đây là tài sản thế chấp khả dụng cho giao dịch mới, không phải số dư tiền mặt USDC. Giá mark quyền chọn, PnL perp và yêu cầu ký quỹ làm nó thay đổi mà không có dòng tiền nào. Để biết số tiền có thể rút, dùng withdrawable_usdc.
Cảnh báo: Nếu tài sản thế chấp khả dụng < ngưỡng, hãy giảm rủi ro hoặc nạp thêm tiền
Giám sát MMP
Số lần kích hoạt MMP
Chỉ số: Số lần MMP được kích hoạt mỗi giờ
Cảnh báo: Nếu MMP kích hoạt thường xuyên, hãy cân nhắc:
- Tăng giới hạn MMP
- Giảm tần suất báo giá
- Xem xét lại mô hình khớp lệnh
Tỷ lệ hủy do MMP
Chỉ số: Tỷ lệ phần trăm lệnh bị MMP hủy
Cảnh báo: Nếu tỷ lệ hủy do MMP > 10%, hãy xem xét lại cấu hình MMP
Giám sát hệ thống
Thời gian phản hồi API
Chỉ số: Thời gian phản hồi P50, P95, P99
Cảnh báo: Nếu P95 > 500ms, hãy kiểm tra tải hệ thống
Tần suất tin nhắn WebSocket
Chỉ số: Số tin nhắn mỗi giây trên WebSocket
Cảnh báo: Nếu tần suất tin nhắn tăng đột biến, hãy kiểm tra:
- Biến động thị trường
- Hệ thống quá tải
- Độ trễ xử lý tin nhắn
Cảnh báo khuyến nghị
- Health check thất bại: Máy chủ API ngừng hoạt động
- Tỷ lệ từ chối cao: > 5% lệnh bị từ chối
- Tỷ lệ khớp lệnh thấp: < 50% lệnh được khớp (tùy ngữ cảnh)
- Mức sử dụng ký quỹ cao: > 80% ký quỹ đã được sử dụng
- MMP kích hoạt: > 5 lần kích hoạt mỗi giờ
- Mất kết nối WebSocket: Kết nối bị ngắt
- Độ trễ cao: P95 > 500ms
Công cụ giám sát
Khuyến nghị:
- Endpoint health check để giám sát thời gian hoạt động (uptime)
- Theo dõi trạng thái kết nối WebSocket
- Đối chiếu lệnh/khớp lệnh để đảm bảo độ chính xác
- Theo dõi ký quỹ danh mục
Hiện tại: Chưa có dashboard giám sát tích hợp sẵn. Hãy sử dụng công cụ bên ngoài (ví dụ: Prometheus, Grafana).