Trang này được dịch tự động. Bản gốc tiếng Anh là phiên bản chính thức. Đọc bằng tiếng Anh →
Chuyển đến nội dung chính

Sổ tay xử lý sự cố

Quy trình xử lý các sự cố thường gặp.

Sự cố kết nối​

Mất kết nối WebSocket​

Dấu hiệu: Mất kết nối WebSocket, không nhận được tin nhắn nào

Hành động:

  1. Triển khai tự động kết nối lại với exponential backoff
  2. Truy vấn các endpoint REST để bù lại các cập nhật bị bỏ lỡ
  3. Đăng ký lại tất cả các kênh sau khi kết nối lại

Phòng ngừa: Giám sát trạng thái kết nối và triển khai logic kết nối lại vững chắc

API Timeout​

Dấu hiệu: Các yêu cầu REST bị timeout hoặc trả về lỗi 5xx

Hành động:

  1. Thử lại với exponential backoff
  2. Kiểm tra endpoint health: GET /health
  3. Giảm tần suất yêu cầu nếu hệ thống đang quá tải

Phòng ngừa: Triển khai giới hạn tần suất yêu cầu và circuit breaker

Sự cố lệnh​

Tỷ lệ từ chối cao​

Dấu hiệu: Nhiều lệnh bị từ chối

Điều tra:

  1. Ghi log status và reason từ mọi phản hồi lệnh và mọi tin nhắn WebSocket order_updates. GET /orders?wallet=... mặc định trả về các lệnh đang mở và không kèm lý do từ chối
  2. Xem lại ký quỹ: GET /portfolio?wallet=...
  3. Kiểm tra giới hạn tài khoản: GET /risk/limits?wallet=...
  4. Xác nhận công cụ chưa đáo hạn: GET /instruments?currency=...

Hành động:

  • Nếu do ký quỹ: Giảm quy mô vị thế hoặc nạp thêm tài sản thế chấp
  • Nếu do tier: dùng vị thế long sẵn có để bao các lệnh bán, hoặc liên hệ Hypercall về việc thay đổi tier
  • Nếu đã đáo hạn: Sử dụng công cụ khác

Thiếu thông báo khớp lệnh​

Dấu hiệu: Lệnh đã khớp nhưng không nhận được thông báo khớp lệnh

Điều tra:

  1. Kiểm tra GET /fills?wallet=... để xem các lệnh đã khớp
  2. Xác nhận đã đăng ký kênh WebSocket fills
  3. Kiểm tra trạng thái kết nối WebSocket

Hành động:

  • Đăng ký lại kênh fills
  • Truy vấn endpoint REST để lấy các lệnh khớp bị bỏ lỡ
  • Đối chiếu lệnh khớp với trạng thái lệnh

Trạng thái lệnh bị lỗi thời​

Dấu hiệu: Trạng thái lệnh trên REST không khớp với WS

Điều tra:

  1. Kiểm tra trạng thái kết nối WebSocket
  2. Xác nhận bộ nhớ đệm lệnh được cập nhật
  3. So sánh trạng thái lệnh giữa REST và WS

Hành động:

  • Truy vấn REST sau khi WS kết nối lại để bắt kịp
  • Dùng REST làm nguồn dữ liệu chuẩn khi đối chiếu

Sự cố MMP​

MMP kích hoạt quá thường xuyên​

Dấu hiệu: Nhiều lệnh bị MMP hủy

Điều tra:

  1. Kiểm tra cấu hình MMP bằng một yêu cầu có chữ ký GET /mmp-config?wallet=...&currency=...
  2. Xem lại mô hình khớp lệnh và các chỉ số tích lũy
  3. Kiểm tra xem giới hạn có quá thấp không

Hành động:

  • Tăng giới hạn MMP (qty, delta, vega)
  • Tăng interval_ms để cho phép nhiều lệnh khớp hơn trong cửa sổ
  • Giảm tần suất báo giá

MMP không kích hoạt​

Dấu hiệu: Lệnh khớp vượt giới hạn nhưng MMP không kích hoạt

Điều tra:

  1. Xác nhận MMP đã bật bằng một yêu cầu có chữ ký GET /mmp-config?wallet=...&currency=...
  2. Kiểm tra mmp_enabled=true trên các lệnh
  3. Xác nhận currency khớp với tài sản cơ sở của lệnh

Hành động:

  • Bật MMP trên lệnh: mmp_enabled=true
  • Cấu hình MMP cho đúng currency
  • Điều chỉnh giới hạn nếu cần

Các yêu cầu đọc MMP có chữ ký gửi thời hạn và chữ ký GetMmpConfig trong header X-Hypercall-Expires-At-Ms và X-Hypercall-Signature.

Sự cố ký quỹ​

Không đủ ký quỹ​

Dấu hiệu: Lệnh bị từ chối với thông báo "Insufficient margin"

Điều tra:

  1. Kiểm tra danh mục: GET /portfolio?wallet=...
  2. Xem lại cách tính ký quỹ
  3. Kiểm tra kịch bản nào đang không đạt

Hành động:

  • Giảm quy mô vị thế
  • Nạp thêm tài sản thế chấp
  • Đóng vị thế để giải phóng ký quỹ
  • Phòng hộ mức độ phơi nhiễm để giảm khoản lỗ trong kịch bản xấu nhất

Thiếu giá spot​

Dấu hiệu: Lệnh bị từ chối với lý do bắt đầu bằng "Missing spot price for underlying"

Điều tra:

  1. Kiểm tra index_price của tài sản cơ sở trong GET /markets
  2. Xác nhận ký hiệu tài sản cơ sở là chính xác
  3. Kiểm tra trang trạng thái xem có sự cố oracle không

Hành động:

  • Chờ nguồn cấp giá spot phục hồi
  • Sử dụng tài sản cơ sở khác nếu có
  • Liên hệ bộ phận hỗ trợ nếu sự cố vẫn tiếp diễn

Sự cố hệ thống​

Độ trễ cao​

Dấu hiệu: Phản hồi API chậm hoặc tin nhắn WebSocket bị trễ

Điều tra:

  1. Kiểm tra tải hệ thống
  2. Giám sát thời gian phản hồi
  3. Kiểm tra kết nối mạng

Hành động:

  • Giảm tần suất yêu cầu
  • Triển khai giới hạn tần suất yêu cầu
  • Liên hệ bộ phận hỗ trợ nếu sự cố vẫn tiếp diễn

Giới hạn tần suất​

Dấu hiệu: Yêu cầu bị từ chối hoặc bị điều tiết

Hiện tại: Giới hạn tần suất được áp dụng theo từng ví, với các giới hạn riêng theo nguồn cho lệnh hủy, ủy quyền agent, ghi MMP và mô phỏng rủi ro. Xem Giới hạn tần suất để biết chi tiết.

Hành động:

  • Kiểm tra header Retry-After và chờ trước khi thử lại
  • Theo dõi X-RateLimit-Remaining để tránh chạm giới hạn
  • Sử dụng các endpoint bulk khi có thể

Quy trình khẩn cấp​

Kill Switch​

Hành động tức thì:

  1. Hủy tất cả lệnh: DELETE /bulk_order hoặc DELETE /bulk_order_cloid, tối đa 50 lệnh mỗi yêu cầu
  2. Ngắt kết nối WebSocket
  3. Dừng hệ thống báo giá

Khôi phục:

  1. Xác nhận tất cả lệnh đã bị hủy: GET /orders?wallet=...
  2. Xem lại danh mục: GET /portfolio?wallet=...
  3. Điều tra nguyên nhân gốc rễ
  4. Tiếp tục báo giá sau khi sự cố được khắc phục

Đối chiếu dữ liệu​

Sau sự cố:

  1. Truy vấn các endpoint REST để lấy trạng thái hiện tại
  2. Đối chiếu lệnh: GET /orders?wallet=...
  3. Đối chiếu lệnh khớp: GET /fills?wallet=...
  4. Đối chiếu danh mục: GET /portfolio?wallet=...
  5. Tiếp tục các đăng ký WebSocket

Chuyển cấp xử lý​

Nếu sự cố vẫn tiếp diễn:

  1. Xem lại các vấn đề đã biết và thông báo staging được cung cấp kèm quyền truy cập
  2. Kiểm tra Runbooks để biết quy trình chi tiết
  3. Liên hệ bộ phận hỗ trợ kèm theo:
    • Địa chỉ ví
    • Thông báo lỗi
    • Dấu thời gian
    • Các bước tái hiện lỗi