欧克威资讯网okwsh.com

沿着线索往下读

欧克威资讯网
技术 · 开发实战

一个可观测后端的最小实现:日志、指标与追踪怎么取舍

三件套不必一次上齐。先解决能定位问题的那一件,再补齐其余。

2026-10-19编辑部约 2 分钟 4 条留言

先问要回答什么问题

可观测性建设常见的误区是先买工具再想用途。更有效的顺序是先列出真实问题:接口变慢时怎么定位、错误率上升时怎么归因、容量不足时怎么提前发现。问题清单决定了记录什么数据。

对多数中小规模服务而言,结构化日志能回答其中大部分问题,成本也低。把请求标识、用户标识、耗时、状态码、依赖调用结果写进同一行日志,排查时就能顺着一条链路看完整个请求。

指标用于发现,日志用于解释

指标的价值在于趋势与告警,采样成本低,适合长期保存。日志的价值在于细节,适合短期保存、按需检索。两者分工清楚,就不必把所有信息都塞进指标。

常见做法是给每个接口记录请求量、错误率与分位延迟,再给依赖调用单独记一组。分位延迟比平均值有用得多,平均值会把长尾掩盖掉。

追踪要解决上下文传递

分布式追踪的核心是把同一次请求的上下文带到每个服务。实现上通常依赖请求头传递标识,再在服务内部注入到日志与指标标签里。

落地时的难点是异步任务。消息队列消费、定时任务没有原始请求头,需要在消息体里携带标识,否则链路会在中间断掉。

从小处开始

一个可行的起步方案是:统一日志格式、加请求标识、给关键接口打点、给慢查询加埋点。这四件事做完,多数线上问题都能在十分钟内定位。

之后再考虑采样策略与长期存储。可观测性不是一次性工程,随着系统复杂度增长逐步补齐,比一开始铺得过大更容易维持。

一个具体的日志字段设计

建议至少包含:时间戳、请求标识、路由、方法、状态码、耗时、上游耗时、用户标识的哈希值、错误码。字段命名保持一致,便于聚合查询。

注意不要记录完整的请求体与身份信息。脱敏应该在写入日志之前完成,而不是在查询时处理。

本文由欧克威资讯网编辑部整理撰写,观点仅供参考;转载请注明来源与链接。

读者留言

共 4 条 · 精选展示
冯
冯溪2026-10-20

这篇可以收藏,结构化日志部分值得反复看。

林
林致远2026-10-21

同意文中对结构化日志的判断,别照搬结论就行。

杜
杜若2026-10-22

写得不夸张,把结构化日志的边界说清楚了,难得。

夜
夜读的人2026-10-20

结构化日志这段最有价值,比泛泛而谈的解读好读。补充一句,文中的情况因人而异,别直接照搬。

延伸阅读