以券商核心交易系统为例,讲如何用炬鲸 OBSERVE 建立下单、风控、撮合、回报全链路的业务指标、分层采样与分级告警体系,把平均故障定位时间从小时级压到分钟级。
券商核心交易链路通常是:客户端 → 网关 → 风控 → 撮合 → 清算,中间还有行情、账户、报盘等多个系统。一次下单要穿过十几个服务,任何一环抖动都会放大成委托延迟甚至报单失败。传统监控只看每个服务自己的 CPU 和日志,链路一断就抓瞎,定位问题靠"逐个服务翻日志",平均半小时起步。
对交易系统,最值得盯的不是资源指标,而是业务指标:
这三个指标用 OBSERVE 的 PromQL 就能定义,配上分位数聚合:
histogram_quantile(0.99, sum(rate(order_latency_bucket[5m])) by (le))
交易系统是典型的高并发低延迟场景,全量采样存储扛不住。做法是分层采样:正常请求按 1% 采样,但标记了"大单"或"异常"的请求 100% 采集。OBSERVE 支持按 span 属性动态采样,把 order_amount > 1000000 或 reject_reason != '' 的链路全量保留。
排障时,先看告警里的 trace_id,点进火焰图定位到具体 span,再下钻看这条 span 关联的日志和 SQL。撮合超时、数据库锁等待、网络重传,一层层剥到根因,不用逐个服务翻日志。
交易系统的告警要分级、要可行动:
告警信息里带上 trace_id 和当时的服务拓扑,收到告警的人不用再问"现在什么情况"。
这套体系在一家券商跑通后,平均故障定位时间(MTTD)从 45 分钟降到 6 分钟,报单失败率下降 40%。关键经验是:先建业务指标再建链路,别一上来就铺全量追踪,那样成本高还抓不住重点。