用途:为 Python 应用添加可观测性能力,包括结构化日志、Prometheus 指标和分布式追踪,便于在生产环境排查问题、构建监控面板。
主要能力:
- 结构化日志:用 structlog 输出 JSON 日志,字段一致、机器可读,便于查询与告警;本地开发可用人类可读格式。
- 四大黄金信号:在每个服务边界跟踪延迟、流量、错误、饱和度。
- 关联 ID:为单个请求生成唯一 ID,贯穿所有日志与 span,实现端到端追踪,并可通过 X-Correlation-ID 头向下游服务传播。
- 有界基数:指标标签值必须有限,避免用 user_id 等无界值导致存储成本爆炸。
- 语义化日志级别:DEBUG 用于开发诊断,INFO 用于请求生命周期,WARNING 用于可恢复异常,ERROR 用于需关注的失败;不要把预期行为记为 ERROR。
- 计时上下文管理器:复用 timed_operation 统一记录操作耗时与错误。
- OpenTelemetry 追踪:配置 TracerProvider 与 OTLP 导出器,用 span 包裹订单处理等操作。
使用方式:安装 structlog、prometheus_client、opentelemetry 等库;在应用启动时调用 configure_logging;用中间件设置关联 ID;用装饰器或上下文管理器采集指标与耗时;用 tracer.start_as_current_span 包裹关键逻辑。
适用场景:为 Web 服务添加日志与指标、跨服务追踪请求链路、调试生产问题、构建可观测性面板。
限制:资料未提供具体安装命令、版本要求、收费信息或平台支持范围;OpenTelemetry API 仍在演进,需查阅官方 Python 文档获取最新用法。