系统架构设计师 · 高频练习

想优先保留错误和高延迟链路,为什么要等请求结束后再决定采样?

高级 单选题 第 1068 题 较难 系统架构设计师链路追踪尾部采样Head SamplingOpenTelemetry
题目

平台每天产生海量Trace,只能保存少部分。团队希望尽量保留出现错误、延迟超过3秒或经过关键支付服务的完整链路,而普通成功请求只抽取少量。较适合的采样方式是()。

A 在请求刚进入时随机决定,后续不再参考结果
B 收集链路完成信息后,根据错误、延迟和服务属性做尾部采样决策
C 关闭Trace ID,按单个日志文件大小随机删除
D 只保存平均延迟,永远不保留单条完整链路
题目类型:原创高频练习题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
正确答案
B
答案解析

错误状态和最终耗时通常要等链路接近完成后才能判断。尾部采样先缓冲Span,再按完整Trace的结果和属性决定保留,更适合优先捕获异常与慢请求。

选项分析

A

错误。这是典型头部采样,无法根据最终错误和总耗时精准选择。

B

正确。尾部采样能使用整条链的状态、时长和服务属性制定保留策略。

C

错误。没有Trace ID就无法把跨服务Span可靠关联成完整链路。

D

错误。平均值不能替代单条异常链路,排障需要调用顺序和上下文。

本题为什么容易错

“尾部”不是只采集调用链最后一个服务,而是把采样决定推迟到能够看到整条Trace结果之后。

先看结论

简短答案

想优先保留错误和高延迟链路,为什么要等请求结束后再决定采样,正确答案是 B(收集链路完成信息后,根据错误、延迟和服务属性做尾部采样决策)。错误状态和最终耗时通常要等链路接近完成后才能判断。尾部采样先缓冲Span,再按完整Trace的结果和属性决定保留,更适合优先捕获异常与慢请求。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
在请求刚进入时随机决定,后续不再参考结果 本题干扰项 错误。这是典型头部采样,无法根据最终错误和总耗时精准选择。 看到该词不要急着选,先判断是否真正解决题干问题
收集链路完成信息后,根据错误、延迟和服务属性做尾部采样决策 本题正确答案 正确。尾部采样能使用整条链的状态、时长和服务属性制定保留策略。 看到题干核心场景时优先联想到它
关闭Trace ID,按单个日志文件大小随机删除 本题干扰项 错误。没有Trace ID就无法把跨服务Span可靠关联成完整链路。 看到该词不要急着选,先判断是否真正解决题干问题
只保存平均延迟,永远不保留单条完整链路 本题干扰项 错误。平均值不能替代单条异常链路,排障需要调用顺序和上下文。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 在请求刚进入时随机决定,后续不再参考结果:错误。这是典型头部采样,无法根据最终错误和总耗时精准选择。
  • 关闭Trace ID,按单个日志文件大小随机删除:错误。没有Trace ID就无法把跨服务Span可靠关联成完整链路。
  • 只保存平均延迟,永远不保留单条完整链路:错误。平均值不能替代单条异常链路,排障需要调用顺序和上下文。
复习

知识点详解

头部采样在Trace开始时决定是否采集或导出,简单且资源可控,但无法预知最终状态。尾部采样在收集一段时间的Span后,根据错误、持续时间、关键服务或属性决定保留,需要让同一Trace汇聚到可共同决策的位置,并配置等待时间、内存上限和过载策略。实践中也可组合使用,但前置丢弃的数据无法在尾部恢复。

备考速记

头部先抽签,不知道结局;尾部看完结果再留,信息多但成本高。

Head Sampling 在OpenTelemetry场景中的作用

若错误率只有0.1%,1%的随机头部采样可能漏掉绝大多数错误。尾部策略可以规定错误链路全部保留、超过3秒全部保留、普通成功链路再按1%抽样。

拓展

同类题怎么考

  • 根据保留错误或慢请求的需求选择尾部采样。
  • 识别尾部采样对Span汇聚、缓冲和决策等待的要求。
Head Sampling 在系统架构设计师软考中的考法

题目要求按最终错误、总耗时或完整调用路径筛选时,选尾部采样;只要求低成本固定比例并在入口决定时,才更像头部采样。

解题思路

题眼是“出现错误、延迟超过3秒”。请求刚进来时,这两件事都还没发生,头部随机采样只能碰运气。尾部采样等Span汇集后再看结果,可以把少见但重要的链路留下来,所以选 B。

考点定位

头部采样决策早、成本低,但不知道请求最后是否失败;尾部采样信息更完整,却增加缓冲、等待、内存和路由一致性成本。

易错提醒

  • 同一Trace的Span被发送到不同采样节点,无法完整聚合。
  • 决策等待时间过短,慢链路尚未结束就被丢弃。
  • 规则只保留错误,不保留高延迟成功请求和关键业务链路。

备考提示

  • 把采样决策点画在请求开始和请求结束两个位置。
  • 比较信息完整度、资源成本、决策延迟和部署复杂度。

你可能还想了解

  • 尾部采样为什么能保留错误链路?
  • 尾部采样需要等待多久?
  • 头部采样和尾部采样可以一起用吗?

本文小结

尾部采样在链路接近完成后,依据错误、总耗时和关键服务决定是否保留Trace,适合捕获少见异常,但需要缓冲和汇聚Span。