인시던트 플레이북
일반적인 이슈에 대한 대응 절차입니다.
연결 이슈
WebSocket 연결 끊김
증상: WebSocket 연결 끊김, 메시지 수신 안 됨
조치:
- 지수 백오프(exponential backoff) 방식의 자동 재연결 구현
- REST 엔드포인트를 폴링하여 누락된 업데이트 확인
- 재연결 후 모든 채널 재구독
예방: 연결 상태를 모니터링하고 견고한 재연결 로직을 구현합니다
API 타임아웃
증상: REST 요청이 타임아웃되거나 5xx 오류 반환
조치:
- 지수 백오프 방식으로 재시도
- 헬스 엔드포인트 확인:
GET /health - 시스템 과부하 시 요청 빈도 감소
예방: 요청 스로틀링과 서킷 브레이커를 구현합니다
주문 이슈
높은 거부율
증상: 다수의 주문이 거부됨
조사:
GET /orders?wallet=...를 통해 거부 사유 확인- 증거금 검토:
GET /portfolio?wallet=... - 티어 확인:
GET /user-tier?wallet=... - 상품이 만기되지 않았는지 확인:
GET /instruments
조치:
- 증거금 문제인 경우: 포지션 규모를 줄이거나 담보 추가
- 티어 문제인 경우: tier2로 업그레이드하거나 커버된 매도 사용
- 만기된 경우: 다른 상품 사용
체결 누락
증상: 주문이 체결되었으나 체결 알림이 오지 않음
조사:
GET /fills?wallet=...에서 체결 내역 확인- WebSocket
fills채널 구독 확인 - WebSocket 연결 상태 확인
조치:
fills채널 재구독- REST 엔드포인트를 폴링하여 누락된 체결 확인
- 체결 내역과 주문 상태 대조
오래된 주문 상태
증상: REST의 주문 상태가 WS와 일치하지 않음
조사:
- WebSocket 연결 상태 확인
- 주문 캐시가 최신 상태인지 확인
- REST와 WS의 주문 상태 비교
조치:
- WS 재연결 후 REST를 폴링하여 최신 상태로 동기화
- 대조 작업 시 REST를 신뢰 가능한 원천(source of truth)으로 사용
MMP 이슈
MMP가 너무 자주 발동됨
증상: 다수의 주문이 MMP에 의해 취소됨
조사:
- MMP 설정 확인:
GET /mmp-config?wallet=...¤cy=... - 체결 패턴과 누적 지표 검토
- 한도가 너무 낮게 설정되었는지 확인
조치:
- MMP 한도 상향 (수량, 델타, 베가)
interval_ms를 늘려 윈도우 내 더 많은 체결 허용- 호가 제출 빈도 감소
MMP가 발동되지 않음
증상: 체결이 한도를 초과했으나 MMP가 발동되지 않음
조사:
- MMP가 활성화되어 있는지 확인:
GET /mmp-config?wallet=...¤cy=... - 주문에
mmp_enabled=true설정 여부 확인 - 통화가 주문의 기초자산과 일치하는지 확인
조치:
- 주문에 MMP 활성화:
mmp_enabled=true - 올바른 통화에 대해 MMP 설정
- 필요 시 한도 조정
증거금 이슈
증거금 부족
증상: "Insufficient margin" 오류와 함께 주문 거부
조사:
- 포트폴리오 확인:
GET /portfolio?wallet=... - 증거금 계산 검토
- 어느 시나리오에서 실패하는지 확인
조치:
- 포지션 규모 축소
- 담보 추가 (입금 플로우 구현 시)
- 포지션 청산으로 증거금 확보
- 최악의 경우 손실을 줄이기 위해 익스포저 헤지
현물 가격 누락
증상: "No spot price available" 오류와 함께 주문 거부
조사:
- Hyperliquid 현물 가격 피드 연결 상태 확인
- 기초자산 심볼이 올바른지 확인
- 현물 가격 피드가 정상 작동 중인지 확인
조치:
- 현물 가격 피드가 복구될 때까지 대기
- 가능한 경우 다른 기초자산 사용
- 문제가 지속되면 지원팀에 문의
시스템 이슈
높은 지연 시간
증상: API 응답이 느리거나 WebSocket 메시지 지연
조사:
- 시스템 부하 확인
- 응답 시간 모니터링
- 네트워크 연결 상태 확인
조치:
- 요청 빈도 감소
- 요청 스로틀링 구현
- 문제가 지속되면 지원팀에 문의
요청 제한 (Rate Limiting)
증상: 요청이 거부되거나 스로틀링됨
현황: 요청 제한은 지갑 단위로 적용됩니다. 자세한 내용은 요청 제한을 참고하세요.
조치:
Retry-After헤더를 확인하고 재시도 전 대기X-RateLimit-Remaining을 모니터링하여 한도 도달 방지- 가능한 경우 벌크 엔드포인트 사용
비상 절차
킬 스위치
즉시 조치:
- 모든 주문 취소:
DELETE /bulk_order또는DELETE /bulk_order_cloid - WebSocket 연결 해제
- 호가 시스템 중지
복구:
- 모든 주문이 취소되었는지 확인:
GET /orders?wallet=... - 포트폴리오 검토:
GET /portfolio?wallet=... - 근본 원인 조사
- 문제 해결 후 호가 재개
데이터 대조
인시던트 이후:
- REST 엔드포인트를 폴링하여 현재 상태 확인
- 주문 대조:
GET /orders?wallet=... - 체결 대조:
GET /fills?wallet=... - 포트폴리오 대조:
GET /portfolio?wallet=... - WebSocket 구독 재개
에스컬레이션
문제가 지속되는 경우:
- 액세스 시 제공된 알려진 이슈 및 스테이징 공지 검토
- 상세 절차는 런북 확인
- 다음 정보와 함께 지원팀에 문의:
- 지갑 주소
- 오류 메시지
- 타임스탬프
- 재현 단계