跳至正文
← 全部技术洞察

TECHNICAL INSIGHTS / 技术洞察

为什么给指标加订单号,会让监控系统成本失控?

接口耗时指标如果按订单号、用户 ID 或完整 URL 分组,会产生大量不同的时间序列。字段看起来有助于排查,却可能让指标存储和查询难以承受。指标与日志应承担不同职责。

先看标签值能增长到多大

服务名、操作类型通常有受控范围,订单号则会随业务不断增加。还要考虑多个标签组合后的规模,不只是每个标签单独有多少值。一次评审就应讨论字段的增长边界。

指标表达总体状态

错误率、耗时和队列规模适合用指标观察;单笔订单细节更适合受控日志或链路。需要从指标进入具体证据时,可以利用工具支持的关联机制,而不是把所有业务标识都加入标签。

对路径和错误做有限分类

动态资源 ID 应与路由模板区分,异常消息也不宜直接作为无限变化的标签。分类规则需要保留业务解释能力,不能把所有错误合并成一个值后失去分析意义。

验收增长与查询成本

在代表性流量下统计时间序列数量、数据量和查询响应,确认新增字段没有造成异常增长。监控配置变更也应评审,不把它当成没有运行成本的附属代码。

常见问题:日志里就可以无限记录业务 ID 吗?

也需要考虑隐私、访问和保留成本,只是其存储与查询模型不同,不能因此忽略治理。

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

将评估落实到你的系统

如果你的 .NET 应用还缺少可重复的部署、观察或恢复流程,可以通过容器化与自动化交付服务梳理现状,约定实施内容、演练场景与运维交接方式。