스킬 python-observability-patterns
📊
Python 应用程序通常缺乏清晰的日志记录、指标和追踪功能,这使得在生产环境中的调试变得困难。本技能提供可直接使用的 structlog 模式、Prometheus 指标和 OpenTelemetry 分布式追踪。
지원: Claude Codex Code(CC)
1
스킬 ZIP 다운로드
2
Claude에서 업로드
설정 → 기능 → 스킬 → 스킬 업로드로 이동
3
토글을 켜고 사용 시작
테스트해 보기
"python-observability-patterns" 사용 중입니다. 为我的 FastAPI 端点添加 Prometheus 指标,按状态码追踪请求计数,按端点追踪延迟
예상 결과:
- 在模块级别定义指标:REQUEST_COUNT(Counter)带有标签 [method、endpoint、status],REQUEST_LATENCY(Histogram)带有桶 [0.01、0.05、0.1、0.5、1.0、5.0] 和标签 [method、endpoint]
- 创建在请求前后增加计数器并观察延迟的中间件
- 暴露 /metrics 端点,返回 generate_latest(),内容类型为 text/plain
보안 감사
안전v3 • 1/10/2026
This is a documentation-only skill containing observability patterns for Python. No executable code, network calls, file system access, or external commands. Purely informational content with example code snippets for legitimate devops patterns like structlog, Prometheus, and OpenTelemetry.
5
스캔된 파일
1,213
분석된 줄 수
0
발견 사항
3
총 감사 수
보안 문제를 찾지 못했습니다
감사자: claude 감사 이력 보기 →
품질 점수
59
아키텍처
100
유지보수성
83
콘텐츠
22
커뮤니티
100
보안
70
사양 준수
만들 수 있는 것
调试生产环境问题
添加关联 ID 和追踪,以便在分布式系统中快速识别错误的根本原因。
监控服务健康状况
为请求率、延迟和错误计数提供 Prometheus 指标,用于仪表板和告警。
追踪请求流程
实现分布式追踪,以可视化请求如何在微服务之间流动。
이 프롬프트를 사용해 보세요
基础日志设置
展示如何为生产环境配置 structlog,使用 JSON 输出和请求上下文绑定。
HTTP 指标
创建一个 FastAPI 中间件,用于记录请求计数、延迟直方图和活动连接数作为 Prometheus 指标。
分布式追踪
为调用外部 API 的 Python 服务设置 OpenTelemetry 追踪和上下文传播。
自定义 Span 装饰器
编写一个 Python 装饰器,使用 OpenTelemetry span 包装函数,并将异常记录为 span 事件。
모범 사례
- 对结构化日志使用语义化事件名称(例如,使用 'user_created' 而不是 'log_message_123')
- 在所有日志条目中包含 request_id 和 user_id 以便调试可追溯性
- 在记录前使用处理器过滤敏感数据(密码、令牌、API 密钥)
피하기
- 以纯文本形式记录敏感数据,如密码、令牌或个人身份信息
- 在 Prometheus 指标上使用高基数标签(user_id、request_id)
- 异常日志中缺少错误上下文,没有错误类型和堆栈跟踪
자주 묻는 질문
支持哪些 Python 版本?
Python 3.10 及更高版本。需要 structlog、opentelemetry-api 和 prometheus-client 包。
哪些可观测性后端可以使用这些模式?
OpenTelemetry 导出器支持 Jaeger、Tempo、Datadog 和云解决方案。Prometheus 指标可与任何 Prometheus 兼容的抓取目标配合使用。
这些模式能否与 FastAPI 集成?
可以。OpenTelemetry 的 FastAPI 检测包与此处显示的请求上下文和指标中间件模式配合使用。
数据会被发送到外部服务吗?
不能。本技能仅提供代码模式。您可以配置和控制导出日志和追踪的所有网络端点。
为什么我的指标显示高基数?
避免使用具有许多唯一值的标签,如 user_id 或 request_id。而应使用 method、endpoint 或 status 等标签。
这与其他日志库相比如何?
structlog 提供带有处理器的结构化日志记录。Prometheus-client 专注于指标。OpenTelemetry 提供分布式追踪。它们相互补充。