SuperAPI AI 工具集

python-observability

编程与开发

查看项目

更新于 10-15 23:48

技能介绍

用途:为 Python 应用添加可观测性,使生产环境出问题时无需重新部署即可定位“发生了什么、在哪里、为什么”。适用于添加结构化日志、用 Prometheus 采集指标、跨服务分布式追踪、在请求链中传播关联 ID、排查生产问题以及构建可观测性看板。

主要能力:一是结构化日志,用 structlog 输出带一致字段的 JSON 日志,便于机器查询与告警,本地开发可考虑人类可读格式;二是四大黄金信号,在每个服务边界跟踪延迟、流量、错误与饱和度;三是关联 ID,为单个请求在所有日志与 span 中贯穿唯一 ID,实现端到端追踪;四是有界基数,保持指标标签值有界,避免用户 ID 等无界标签导致存储成本爆炸。

使用方式:通过 structlog.configure 配置处理器链(合并上下文变量、添加日志级别、ISO 时间戳、异常格式化、JSON 渲染),在应用启动时初始化;用 ContextVar 保存关联 ID,在入口生成或读取 X-Correlation-ID 并绑定到上下文,出站请求通过请求头继续传递;用 prometheus_client 的 Counter、Histogram、Gauge 定义请求计数、延迟直方图、错误计数与资源使用指标,并用装饰器或上下文管理器统一计时与记录;用 OpenTelemetry 的 TracerProvider、BatchSpanProcessor 与 OTLP 导出器配置追踪,通过 start_as_current_span 创建嵌套 span 并设置属性。

限制与注意:OpenTelemetry 仍在快速演进,应查阅官方 Python 文档获取最新 API 模式与最佳实践;不要把预期行为记为 ERROR;指标标签避免无界值,如需按用户统计可改用日志查询、独立分析系统或按用户分层分桶;可观测性代码应与业务逻辑分离,并在集成测试中验证日志与指标,同时配置告警。资料未提供安装命令、收费与平台支持信息。