测验:分布式追踪
十个服务的 p99 都正常,用户页面却要 2 秒才能打开。为什么单靠指标无法解释?
- 因为指标采集周期太长
- 因为应该看 p95 而不是 p99
- 因为采样
- 因为指标是聚合值,无法还原单个请求的路径
在 W3C traceparent 中,哪个值会随每一跳改变?
- 头部最前面的版本字段
- 父 Span ID
- Trace ID
- 采样标志
只有同时具备 CLIENT Span 和 SERVER Span,才能算出哪项时间?
- DB 查询耗时
- 网络传输与排队耗时
- 垃圾回收耗时
- 序列化耗时
为什么 N+1 查询问题可能不会在指标中显现?
- 查询结果被缓存,实际上只执行了一次
- 日志级别过低,没有留下查询日志
- 单次查询只需 4ms,看起来仍处于正常延迟分布
- 有索引,每次查询都避免了全表扫描
追踪异常地短时,哪一项不是首先该怀疑的原因?
- 自动埋点未覆盖的自定义 HTTP 客户端
- 将工作交给线程池或 Worker 的代码
- 跨越消息队列的节点
- 缺少数据库索引
某个 Span 的自身耗时(self time)很大,意味着什么?
- 隐藏着自动埋点看不到的进程内工作
- 该 Span 与其子 Span 之间的网络很慢
- 被调用的子服务处理很慢
- 采样出错,遗漏了子 Span