技能 distributed-tracing
📦

distributed-tracing

安全

使用 Jaeger 和 Tempo 实现分布式追踪

也可從以下取得: wshobson

当请求跨越多个服务时,调试微服务变得复杂。本技能提供代码示例和配置模式,使用 Jaeger 和 Tempo 实现分布式追踪,全面了解请求流程。

支援: Claude Codex Code(CC)
🥉 75 青銅
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「distributed-tracing」。 如何使用 Docker Compose 设置 Jaeger?

預期結果:

以下是 Jaeger 的基础 Docker Compose 配置:

```yaml
version: '3.8'
services:
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686" # UI
- "14268:14268" # Collector
```

这会启动 all-in-one Jaeger 镜像,UI 在端口 16686,收集器在端口 14268。在 http://localhost:16686 访问 UI。

正在使用「distributed-tracing」。 如何追踪 Python Flask 请求?

預期結果:

使用 OpenTelemetry 对 Flask 应用进行插桩。首先安装包:pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-jaeger opentelemetry-instrumentation-flask

然后添加初始化代码创建 tracer provider 并插桩 Flask。span 将自动发送到 Jaeger 收集器。

安全審計

安全
v1 • 2/24/2026

All 54 static findings are false positives. The static scanner misinterprets markdown documentation code blocks as executable code, YAML frontmatter as crypto algorithms, and standard OpenTelemetry API calls as reconnaissance. This skill is legitimate DevOps documentation for distributed tracing with Jaeger and Tempo. No actual security risks identified.

1
已掃描檔案
453
分析行數
0
發現項
1
審計總數
未發現安全問題
審計者: claude

品質評分

38
架構
100
可維護性
85
內容
50
社群
100
安全
100
規範符合性

你能建構什麼

SRE 调试生产问题

使用追踪 ID 跟踪跨服务的请求,识别生产环境中导致延迟或错误的微服务。

DevOps 实现可观测性

为现有服务添加 OpenTelemetry 插桩,并部署 Jaeger 进行集中式追踪收集。

开发者理解依赖关系

可视化服务依赖关系,了解请求在系统架构中的流转。

試試這些提示

基础 Jaeger 设置
如何使用 Docker Compose 部署 Jaeger 进行本地开发?
Python 插桩
展示如何使用 OpenTelemetry 对 Flask 应用进行插桩并将追踪发送到 Jaeger。
上下文传播
如何使用 HTTP 头在微服务之间传播追踪上下文?
生产环境采样
在生产环境中应该使用什么采样策略来减少追踪开销同时保持可见性?

最佳實務

  • 从 1-10% 的头部采样开始,然后根据流量进行调整
  • 添加有意义的 span 属性,如 user_id 和 request_id 以便过滤
  • 在所有服务间的 HTTP 头中传播追踪上下文

避免

  • 不要在生产环境中 100% 采样所有追踪,这会产生过大的开销
  • 避免为每个函数调用创建 span;专注于外部调用和数据库操作
  • 不要硬编码收集器端点;使用环境变量进行配置

常見問題

Jaeger 和 Tempo 有什么区别?
Jaeger 是带有自己存储的全栈追踪解决方案。Tempo 是 Grafana 的分布式追踪后端,使用 S3 等对象存储进行经济高效的长期追踪保留。
分布式追踪会增加多少开销?
正确配置的追踪增加不到 1% 的 CPU 开销。使用批处理 span 处理器和适当的采样率来最小化影响。
我可以将此技能与 AWS X-Ray 一起使用吗?
本技能专注于 Jaeger 和 Tempo。对于 AWS X-Ray,您将使用 AWS X-Ray SDK 而不是 OpenTelemetry 导出器。
支持哪些编程语言?
本技能包含 Python、Node.js 和 Go 的示例。OpenTelemetry 支持更多语言,包括 Java、.NET 和 Ruby。
如何将日志与追踪关联?
从当前 span 提取 trace_id 并将其包含在日志语句中。这允许您在日志系统中按追踪 ID 过滤日志。
我需要修改每个服务才能使追踪工作吗?
追踪仅显示已插桩服务的 span。但是,如果转发了头信息,上下文传播允许追踪即使通过未插桩的服务也能继续。

開發者詳情

檔案結構

📄 SKILL.md