SuperAPI AI 工具集

FastAPI Observability

编程与开发

查看项目

更新于 10-16 03:36

技能介绍

用途:为 FastAPI 服务补齐生产级可观测性,覆盖结构化日志、Prometheus 指标、OpenTelemetry 链路追踪与健康检查,适用于用户要求添加日志、实现指标、添加追踪、配置 Prometheus、设置 OpenTelemetry、添加健康检查等场景。

主要能力:结构化日志基于 structlog,可切换 JSON(生产)与 Console(开发)输出,含请求日志中间件 RequestLoggingMiddleware,为每次请求生成 request_id 并写入 X-Request-ID 响应头,同时记录状态码、耗时与内容长度。指标基于 prometheus-fastapi-instrumentator 与 prometheus_client,暴露 /metrics 端点,内置请求计数、请求延迟直方图、活跃请求 Gauge、数据库查询延迟、缓存命中/未命中计数,并提供 track_db_query、track_cache 装饰器。追踪基于 OpenTelemetry,含 OTLP gRPC 导出器、FastAPI/HTTPX/Redis 自动埋点与自定义 Span。健康检查提供 /health、/health/ready(含 MongoDB 与 Redis 依赖检测,缓存失败记为 degraded)与 /health/live,不可用时返回 503。

使用方式:在应用工厂 create_app 中先调用 setup_logging,再创建 FastAPI 实例,调用 setup_metrics(app);当配置了 otlp_endpoint 时调用 setup_tracing(app, service_name, otlp_endpoint),最后添加 RequestLoggingMiddleware。日志中使用 get_logger,追踪中使用 get_tracer 或 tracer.start_as_current_span。

适用场景:需要集中日志、Prometheus 监控、分布式追踪与 Kubernetes 存活/就绪探针的 FastAPI 后端服务。

限制:资料未提供安装命令、依赖版本、具体配置项、部署环境要求、收费或价格信息;部分代码片段依赖数据库与缓存客户端等外部对象,需按现有项目结构调整。