金融系统的可观测性有两道硬约束:审计日志要完整留存防篡改,交易链路要秒级定位。本文给出交易链路端到端追踪、审计日志留存检索、告警分级与变更可观测的落地做法。
金融系统的可观测性有两条绕不开的硬约束:一是监管合规,审计日志必须完整留存、可追溯、防篡改;二是可用性,交易链路一旦抖动,损失按秒计算。这两条需求看似矛盾——一个要"留得住",一个要"查得快"——实际可以用同一套平台同时满足。下面拆开讲每条约束怎么落地。
支付、转账这类核心交易往往横跨网关、账户、风控、清算十几个服务。炬鲸 OBSERVE 通过 OpenTelemetry 在交易发起时注入 trace_id,整条链路从下单到清算全程可追踪:
SELECT trace_id, sum(cost_ms) AS total
FROM traces
WHERE api = 'POST /api/pay'
AND ts > now() - 10m
ORDER BY total DESC
一旦某笔交易超时,点开 trace 就能看到卡在哪个服务、哪一跳重试了几次,不必逐层翻日志。建议把交易单号 order_no 作为 span 属性写入,这样业务侧报"订单 8899123 扣款失败"时,直接用订单号反查整条链路。
监管通常要求关键操作日志留存 3 年以上。建议做法:
audit=1,与运行日志分离,避免被运行日志的保留期误删。金融系统发版风险高,建议把"变更"也纳入可观测:每次发布把版本号、灰度比例写进 span 属性,按版本维度对比错误率和 p95,灰度阶段发现异常就能立刻回切。发布后盯着"新版本错误率 vs 旧版本"这条曲线,比任何事后复盘都更早暴露问题。
对金融团队来说,收益很实在:审计一次通过、故障在客户察觉前定位。