目 录CONTENT

文章目录

Python之FastAPI的入门到精通系列:Logfire应用服务的可观测性链路追踪

Administrator
2025-11-19 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

Python之FastAPI的入门到精通系列:Logfire应用服务的可观测性链路追踪


代码地址[email protected]:FunkyGod/fastapi-demo.git
目标功能:教学和分享Python开发,将零开始写代码,学习编程技术;
范围包括:python语法、web构建、机器学习、深度学习、AI实践。


本篇主要内容:根据Logfire实现对应用服务的可观测性链路追踪

在FastAPI或者其他python框架里,通过Logfire实现对应用服务的可观测性链路追踪。它让你能够实时"看到"应用在生产环境中的运行状态,无需反复部署调试。实现“微服务架构下,一个请求可能跨越多个服务,追踪完整链路”等功能,高效地实现结构化日志、分布式追踪和性能监控

推荐理由:非常适合开发环境调试和链路追踪

logfire是什么?

Logfire 是由 Pydantic 团队开发的现代化可观测性平台,专为 Python 应用设计。Logfire 让每个 Python 开发者都能轻松获得生产环境的洞察力。

Logfire对程序影响较小

  1. logfire 包已安装并配置且启用了代理插桩(instrumentation),详细信息会发送到 Logfire。否则几乎没有开销,也不会发送任何数据。
  2. 基于 OpenTelemetry 的低开销设计,异步数据收集、批量发送遥测数据,智能采样策略。
  3. 放心地在生产环境使用 Logfire,而不用担心它会成为性能瓶颈。

logfire独到之处和优势

  1. Logfire 的仪表板与其所提供的功能相比十分简洁,很容易通过仪表UI界面查询到需要的信息;
  2. 从Python对象的丰富展示,到事件循环遥测,再到Python代码和数据库查询的性能分析,满足我们的运维需求
  3. Logfire 是基于 OpenTelemetry 的一个带有特定观点的封装工具,它允许利用现有的工具、基础设施对许多常见 Python 包的 instrumentation。
  4. 全面支持 OpenTelemetry 的所有信号(追踪、指标和日志)。

兼容opentelemetry

opentelemetry-python-contrib/instrumentation at main · open-telemetry/opentelemetry-python-contrib
对我们在应用程序里使用logfire是轻松容易的!!!
OpenTelemetry 是可观测性领域的事实标准,提供了统一的 API、SDK 和数据格式(如 Trace、Metric、Log 的规范),已被绝大多数云厂商、监控工具和开源项目支持。

OTel 定义了统一的 Trace、Metric、Log 数据模型(例如通过 trace_id 关联分布式追踪和日志),Logfire 兼容 OTel 后,可直接基于标准化数据进行处理、存储和分析,更容易实现 “可观测性三位一体”(日志、指标、追踪)的关联分析,提升用户对系统问题的排查效率。


如何在FastAPI里使用Logfire

在logfire以project维度开始实验

官方地址:https://logfire-us.pydantic.dev/
登录上去,新建一个项目,然后logfire会告诉我们,如何安装和使用它:

1、安装sdk: ud add logfire
2、生成token密钥
3、在代码里配置环境变量
4、开始在框架里使用logfire

在FastAPI对应用服务的可观测性链路追踪

安装logfire

11316@DESKTOP-QJ0UM8D MINGW64 /d/Code/fastapi-demo (master)
$ uv add logfire
Resolved 193 packages in 121ms
warning: The package `huggingface-hub==1.0.1` does not have an extra named `inference`
warning: The package `huggingface-hub==1.0.1` does not have an extra named `inference`
Audited 186 packages in 6ms

代码改造

本次演示以默认配置为例,如需追踪自己需要的信息,可结合官方文档和AI助手咨询:

# Use logfire to instrument the FastAPI app.
# This should be done before instrumenting any if settings.LOGFIRE_TOKEN:
    logfire.configure(
        token=settings.LOGFIRE_TOKEN,
        service_name=settings.LOGFIRE_SERVICE,
        environment=settings.LOGFIRE_ENVIRONMENT,
    )
    logfire.instrument_fastapi(app)

查看日志

Attempting to instrument FastAPI app while already instrumented
2025-11-18T13:49:05.074579939Z INFO:     Started server process [47]
2025-11-18T13:49:05.074627130Z INFO:     Waiting for application startup.
2025-11-18T13:49:05.075264877Z INFO:     Application startup complete.
2025-11-18T13:49:05.678326303Z Logfire project URL: https://logfire-us.pydantic.dev/*/fastapi-demo

验证logfire和UI看板

我们直接使用预置看板即可,主要快速演示:

Web Server Metrics Dashboard

这个看板提供 Web 服务性能概览,包括:

  • Requests:收到的请求总数
  • Exceptions:处理过程中遇到的异常数量
  • Trend Routes:频繁访问的路由或 API 的可视化趋势
  • 2XX Response Rate:成功响应(200 状态码)的百分比
  • Log Type Ratio:不同日志类型的分布(info、warning、error)

Basic System Metrics Dashboard

显示系统资源利用率指标,包括:

  • Number of Processes:系统上运行的进程总数
  • System CPU usage %:整个系统使用的处理能力百分比(所有 CPU 核心的平均值)
  • Process CPU usage %:单个进程使用的 CPU
  • Memory Usage %:系统当前使用的内存百分比
  • Swap Usage %:系统当前使用的交换空间百分比


刚刷到的朋友注意啦!若觉得内容有用,长按点赞!你的每次互动,都是我深夜码字的星光 🌟


腾讯云优惠超值活动

📢 云资源限时福利
有云服务器、CDN、对象存储、网络防护等需求的朋友,欢迎联系下方腾讯云官方销售 👇。
✔️ 内部专属折扣,价格更优
✔️ 量大可谈,支持定制方案
✔️ 技术咨询与售后无忧

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区