mcpField
D
distributed-tracing

distributed-tracing

github.com/wshobson云与 DevOps41.9k10.9k 次安装2 周前更新
代码仓库

关于 distributed-tracing

此技能介绍如何使用 Jaeger 和 Tempo 为微服务实现分布式追踪,帮助团队分析请求延迟、服务依赖与故障,并涵盖采样、上下文传播和日志关联。

主要功能

  1. 01Jaeger 与 Tempo 追踪指南
  2. 02延迟与依赖分析
  3. 03采样和上下文传播
  4. 04追踪与日志关联
  5. 05追踪开销排查

适用场景

  1. 01调查请求延迟
  2. 02梳理服务依赖
  3. 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. 合理采样(生产环境中为 1-10%)
  2. 添加有意义的标签(user_id、request_id)
  3. 传播上下文,跨越所有服务边界
  4. 记录异常到 span 中
  5. 使用一致的命名来命名操作
  6. 监控追踪开销(CPU 影响 <1%)
  7. 设置告警以监控追踪错误
  8. 实现分布式上下文(baggage)
  9. 使用 span 事件记录重要里程碑
  10. 记录插桩标准

与日志记录的集成

关联日志
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