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

Cẩm nang Xử lý Sự cố

Quy trình ứng phó với các vấn đề thường gặp.

Vấn đề Kết nối

Mất kết nối WebSocket

Triệu chứng: Kết nối WebSocket bị mất, không nhận được tin nhắn

Hành động:

  1. Triển khai tự động kết nối lại với exponential backoff
  2. Poll các endpoint REST để cập nhật các thay đổi 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

Triệu chứng: Các request 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 health endpoint: GET /health
  3. Giảm tần suất request nếu hệ thống quá tải

Phòng ngừa: Triển khai giới hạn tần suất request (throttling) và circuit breaker

Vấn đề về Lệnh

Tỷ lệ Từ chối Lệnh Cao

Triệu chứng: Nhiều lệnh bị từ chối

Điều tra:

  1. Kiểm tra lý do từ chối qua GET /orders?wallet=...
  2. Xem lại ký quỹ: GET /portfolio?wallet=...
  3. Kiểm tra tier: GET /user-tier?wallet=...
  4. Xác minh các công cụ chưa đáo hạn: GET /instruments

Hành động:

  • Nếu là vấn đề ký quỹ: Giảm quy mô vị thế hoặc bổ sung tài sản thế chấp
  • Nếu là vấn đề tier: Nâng cấp lên tier2 hoặc đảm bảo các lệnh bán được cover
  • Nếu đã đáo hạn: Sử dụng các công cụ khác

Thiếu Thông báo Khớp lệnh

Triệu chứng: 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 minh việc đă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
  • Poll endpoint REST để lấy các lệnh khớp bị bỏ lỡ
  • Đối chiếu các lệnh khớp với trạng thái lệnh

Trạng thái Lệnh Không Đồng bộ

Triệu chứng: 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 minh cache 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:

  • Poll REST sau khi WS kết nối lại để cập nhật
  • Sử dụng REST làm nguồn dữ liệu chuẩn (source of truth) để đối chiếu

Vấn đề MMP

MMP Kích hoạt Quá Thường xuyên

Triệu chứng: Nhiều lệnh bị hủy bởi MMP

Điều tra:

  1. Kiểm tra cấu hình MMP: 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 các 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ổ thời gian
  • Giảm tần suất báo giá

MMP Không Kích hoạt

Triệu chứng: Các lệnh khớp vượt quá giới hạn nhưng MMP không kích hoạt

Điều tra:

  1. Xác minh MMP đã được bật: GET /mmp-config?wallet=...&currency=...
  2. Kiểm tra mmp_enabled=true trên các lệnh
  3. Xác minh loại tiền tệ khớp với tài sản cơ sở của lệnh

Hành động:

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

Vấn đề Ký quỹ

Ký quỹ Không đủ

Triệu chứng: 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 thất bại

Hành động:

  • Giảm quy mô vị thế
  • Bổ sung tài sản thế chấp (khi luồng nạp tiền được triển khai)
  • Đóng các 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

Triệu chứng: Lệnh bị từ chối với thông báo "No spot price available"

Điều tra:

  1. Kiểm tra kết nối feed giá spot của Hyperliquid
  2. Xác minh mã tài sản cơ sở là chính xác
  3. Kiểm tra xem feed giá spot có đang hoạt động không

Hành động:

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

Vấn đề Hệ thống

Độ trễ Cao

Triệu chứng: 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 request
  • Triển khai giới hạn tần suất request (throttling)
  • Liên hệ bộ phận hỗ trợ nếu vấn đề vẫn tiếp diễn

Giới hạn Tần suất (Rate Limiting)

Triệu chứng: Các request bị từ chối hoặc bị giới hạn

Hiện tại: Giới hạn tần suất được áp dụng theo từng ví. Xem Rate Limits để biết chi tiết.

Hành động:

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

Quy trình Khẩn cấp

Kill Switch

Hành động ngay lập tức:

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

Khôi phục:

  1. Xác minh tất cả cá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 vấn đề được giải quyết

Đối chiếu Dữ liệu

Sau sự cố:

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

Báo cáo Leo thang

Nếu vấn đề vẫn tiếp diễn:

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