结合证券核心交易系统低延迟、强一致性的特点,讲清日志、链路、指标三信号如何分工,以及开盘高峰期的监控与告警策略和一次真实排障。
核心交易系统的特点很明确:延迟敏感(毫秒级)、并发峰值集中(开盘/收盘)、链路长(柜台 → 报盘 → 撮合 → 清算)、数据一致性要求高。传统"出问题翻日志"在这里行不通——日志本身可能拖慢交易主链路,而且开盘时没人有时间翻日志。
我们的思路是把可观测性拆成"在线"和"离线"两套:在线信号要求低开销、可实时查询,用于实时告警和快速定位;离线信号用于事后复盘和合规留痕。
开盘前 15 分钟把采样率临时调高到 30%,开盘结束后降回 5%,用 OBSERVE 的动态采样规则自动切换。告警阈值按"相对基线"而不是固定值:CPU、队列深度用同比上周同时段的值做基线,超过基线 2 倍才告警,避免开盘天然高峰误报。
告警分级:P0(下单链路不可用、延迟超阈值)电话 + 短信,P1(降级、队列积压)短信 + 群通知,P2(资源水位)仅记录。
某交易日开盘 5 分钟,报盘网关延迟从 3ms 涨到 40ms。告警触发后,值班工程师直接从 Trace 面板按延迟排序,发现 90% 的慢请求都卡在风控服务的"名单校验"这一步;再点进对应 span 看日志,发现校验缓存未命中率从 1% 涨到 90%——原因是上游数据同步任务在开盘前失败,缓存没预热。定位到根因用时约 40 秒,回退到前一天快照后恢复。