本文目录导读:

Sentry Python SDK 的配置非常简单,尤其对于常见的 Web 框架(如 Django、Flask、FastAPI),通常只需安装、初始化、添加 DSN(Data Source Name,数据源名称)三行核心代码即可开始捕获错误。
根据使用场景(基础监控 vs 高级功能)不同,复杂程度会有差异,下面分情况说明:
基础配置(2 分钟搞定)
对于大多数项目,配置步骤如下:
-
安装 SDK
pip install sentry-sdk
-
获取 DSN(在你的 Sentry 项目设置里找)
-
初始化(选择一种框架)
-
Django:在
settings.py中添加:import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration sentry_sdk.init( dsn="https://你的DSN@o...ingest.sentry.io/...", integrations=[DjangoIntegration()], # 可选:设置生产环境发送,开发环境不发送 traces_sample_rate=1.0, # 性能监控采样率 ) -
Flask:在创建 app 后添加:
import sentry_sdk from sentry_sdk.integrations.flask import FlaskIntegration sentry_sdk.init( dsn="你的DSN", integrations=[FlaskIntegration()], ) -
FastAPI / Starlette:
import sentry_sdk from sentry_sdk.integrations.starlette import StarletteIntegration from sentry_sdk.integrations.fastapi import FastApiIntegration sentry_sdk.init( dsn="你的DSN", integrations=[StarletteIntegration(), FastApiIntegration()], ) -
纯 Python 脚本(无框架):
import sentry_sdk sentry_sdk.init(dsn="你的DSN") # 之后代码中任何未捕获的异常都会被自动捕获
-
配置后效果:代码中任何未捕获的异常、logger.error() 的日志,都会自动上报到 Sentry 控制台。
高级配置(按需添加,也很简单)
如果需要精细化控制,Sentry 提供了大量可选参数,但都是配置式的,而不是复杂的代码逻辑。
sentry_sdk.init(
dsn="你的DSN",
# 环境区分
environment="production", # 或 "staging", "development"
# 发布版本号(方便定位是哪个版本出的问题)
release="myapp@1.0.0",
# 性能监控(自动记录请求耗时)
traces_sample_rate=0.2, # 0.2 表示 20% 的请求会被采样
# 忽略某些错误(比如用户取消的请求)
ignore_errors=[KeyboardInterrupt],
# 添加用户上下文(自动 attach 用户 ID)
before_send=lambda event, hint: event, # 可在这里过滤或修改事件
)
真正可能“复杂”的点(但很少需要)
-
自定义错误分组:Sentry 默认按异常类型和位置分组,但有时需要将逻辑相似的不同错误归为一组,这需要在 Sentry 后台的 Issue Grouping 里配置规则,属于界面操作,不涉及 SDK 代码改动。
-
性能监控(Performance):开启
traces_sample_rate后,SDK 会自动为 Django/Flask 视图、数据库查询、外部 HTTP 请求等生成 span(跨度),几乎零配置,如果你需要对特定函数手动加 span,也只需一行装饰器:from sentry_sdk import trace @trace def my_function(): pass -
与日志系统集成:Sentry 默认会接管
logging模块中WARNING及以上级别的日志,如果你只想将部分日志发给 Sentry,可以用LoggingIntegration控制:from sentry_sdk.integrations.logging import LoggingIntegration sentry_logging = LoggingIntegration( level=logging.INFO, # 捕获 info 及以上 event_level=logging.ERROR # error 及以上才创建 Issue )
| 场景 | 复杂度 | 操作量 |
|---|---|---|
| 基础错误捕获(开箱即用) | ⭐ 简单 | 安装 + 3行代码 |
| 加性能监控 | ⭐ 简单 | 加一个参数 traces_sample_rate |
| 定制过滤、用户信息 | ⭐⭐ 中等 | 加几个配置参数或回调函数 |
| 手动打点、自定义分组 | ⭐⭐⭐ 较复杂 | 需了解 API 和 Sentry 后台 |
一句话答案:如果你只是想让代码中的 Bug 自动上报到 Sentry 控制台,配置过程非常容易,三个核心要素(安装、DSN、框架集成)即可,所有高级功能都是通过声明式参数或装饰器实现的,没有复杂的继承或管道实现。