关于 distributed-tracing
此技能介绍如何使用 Jaeger 和 Tempo 为微服务实现分布式追踪,帮助团队分析请求延迟、服务依赖与故障,并涵盖采样、上下文传播和日志关联。
主要功能
- 01Jaeger 与 Tempo 追踪指南
- 02延迟与依赖分析
- 03采样和上下文传播
- 04追踪与日志关联
- 05追踪开销排查
适用场景
- 01调查请求延迟
- 02梳理服务依赖
- 03定位瓶颈和错误传播路径
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill distributed-tracing安装后在 Claude Code 中输入/distributed-tracing确认已加载。
附带文件references/details.md
详细介绍
分布式追踪
使用 Jaeger 和 Tempo 实现分布式追踪,以洞察微服务之间的请求流转。
目的
跨分布式系统追踪请求,以了解延迟、依赖关系和故障点。
何时使用
- 调试延迟问题
- 了解服务依赖关系
- 识别瓶颈
- 追踪错误传播
- 分析请求路径
详细模式与完整示例
详细的模式文档位于 references/details.md。当上述导航层级不够用时,请阅读该文件。
最佳实践
- 合理采样(生产环境中为 1-10%)
- 添加有意义的标签(user_id、request_id)
- 传播上下文,跨越所有服务边界
- 记录异常到 span 中
- 使用一致的命名来命名操作
- 监控追踪开销(CPU 影响 <1%)
- 设置告警以监控追踪错误
- 实现分布式上下文(baggage)
- 使用 span 事件记录重要里程碑
- 记录插桩标准
与日志记录的集成
关联日志
import logging
from opentelemetry import trace
logger = logging.getLogger(__name__)
def process_request():
span = trace.get_current_span()
trace_id = span.get_span_context().trace_id
logger.info(
"Processing request",
extra={"trace_id": format(trace_id, '032x')}
)
故障排查
没有出现追踪数据:
- 检查收集器端点
- 验证网络连接
- 检查采样配置
- 查看应用程序日志
延迟开销过高:
- 降低采样率
- 使用批量 span 处理器
- 检查导出器配置
相关技能
prometheus-configuration- 用于指标grafana-dashboards- 用于可视化slo-implementation- 用于延迟 SLO
评论
支持 Markdown