跳至正文
← 全部技术洞察

TECHNICAL INSIGHTS / 技术洞察

.NET 服务没有异常日志,为什么仍然可能发生业务故障?

接口返回成功、进程也没有异常,但订单没有进入后续处理,说明技术成功与业务成功可能并不一致。监控需要观察业务是否推进,而不仅是有没有抛出异常。

为关键流程定义完成条件

例如任务已受理、消息已发送和订单已完成是不同阶段。选取少量重要流程,定义应该发生的状态变化与允许等待时间,避免把第一步成功当成整条链路完成。

同时看数量与状态分布

关注长时间停留在中间状态的业务、输入输出数量差异及异常比例。指标需要有明确口径,不能因为正常业务低峰就误报“没有订单”。必要时结合业务周期与历史规律判断。

给排查保留明细出口

聚合指标发现异常后,应能通过受控查询找到代表性业务记录。不要把每个订单 ID 放进指标标签,而是让指标、日志与业务状态记录分工协作。

验收静默失败

在测试环境让某个后续步骤被遗漏但不抛异常,检查业务监控能否发现。恢复后核对积压业务,而不是只看到错误率恢复为零就结束。

常见问题:业务指标应该由研发还是产品定义?

需要共同完成。业务方解释成功含义,研发确认数据来源与可实现的观测方式。

技术参考:OpenTelemetry:指标。具体接口与配置请结合使用版本核对。

将评估落实到你的系统

如果你的团队正遇到类似问题,可以从一条关键业务路径开始,整理现状、证据与约束,通过系统架构诊断明确优先级、候选方案和验证范围。