监控与告警
做市商需要监控哪些内容、在哪些情况下触发告警。
健康检查
API 健康状态
端点:GET /health
响应:{"status":"ok"}
就绪状态:GET /ready 返回 {"status":"ready","components":[...]},其中每个组件带有 ready 标志。可借此区分"可访问但尚未开始服务"的 API 与健康的 API。
监控:每 30-60 秒检查一次
告警:若健康检查失败,API 服务器可能已宕机
WebSocket 连接
监控:跟踪 WebSocket 连接状态
告警:若连接断开,立即重连
最佳实践:重连时采用指数退避
订单监控
拒单率
指标:被拒订单所占百分比
告警:若拒单率 > 5%,请排查:
- 保证金问题
- 层级限制
- 已到期的合约
- 系统过载
成交率
指标:已成交订单所占百分比
告警:若成交率显著下降,请排查:
- 市场状况
- 报价竞争力
- 订单簿深度
订单延迟
指标:从下单到成交/确认的时间
告警:若延迟 > 1 秒,请排查:
- 系统过载
- 网络问题
- 引擎处理延迟
投资组合监控
保证金使用率
指标:根据 GET /portfolio?wallet=... 中的 margin_summary 计算保证金使用率。margin_summary.initial_margin 与 margin_summary.maintenance_margin 是扣除要求后的剩余空间,不是已占用的保证金。请按各模式下实际支撑保证金的基数计算使用率:
margin_summary.mode | 基数 | 初始保证金剩余空间 | 维持保证金剩余空间 |
|---|---|---|---|
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
基数小于或等于零时,按 100% 使用处理。
告警:若初始保证金使用率 > 80%,新订单接近被拒。若维持保证金使用率接近 100%,账户接近强平。可考虑:
- 减少仓位规模
- 追加抵押品
- 平仓
可用抵押品
指标:来自 GET /portfolio?wallet=... 的 available_balance。这是可用于新交易的抵押品,不是 USDC 现金余额。期权标记价格、永续合约盈亏和保证金要求都会在没有现金变动的情况下改变它。可提取金额请使用 withdrawable_usdc。
告警:若可用抵押品低于阈值,请降低风险或存入资金
MMP 监控
MMP 触发
指标:每小时 MMP 触发次数
告警:若 MMP 频繁触发,可考虑:
- 提高 MMP 限额
- 降低报价频率
- 复盘成交模式
MMP 撤单率
指标:被 MMP 撤销的订单所占百分比
告警:若 MMP 撤单率 > 10%,请检查 MMP 配置
系统监控
API 响应时间
指标:P50、P95、P99 响应时间
告警:若 P95 > 500ms,请排查系统负载
WebSocket 消息速率
指标:WebSocket 每秒消息数
告警:若消息速率激增,请排查:
- 市场波动
- 系统过载
- 消息处理延迟
推荐告警
- 健康检查失败:API 服务器宕机
- 拒单率过高:> 5% 的订单被拒
- 成交率过低:< 50% 的订单成交(视具体情况而定)
- 保证金使用率过高:已使用 > 80% 的保证金
- MMP 触发:每小时 > 5 次触发
- WebSocket 断开:连接丢失
- 延迟过高:P95 > 500ms
监控工具
推荐:
- 使用健康检查端点进行可用性监控
- 跟踪 WebSocket 连接状态
- 通过订单/成交对账确保准确性
- 跟踪投资组合保证金
现状:暂无内置监控仪表盘。请使用外部工具(例如 Prometheus、Grafana)。