ASGI框架的Sentry集成。
项目描述
sentry-asgi
ASGI框架的Sentry集成。
安装
pip install sentry-asgi
使用
from sentry_asgi import SentryMiddleware
import sentry_sdk
sentry_sdk.init(dsn=...)
app = ...
app = SentryMiddleware(app)
以下是一个使用Starlette的更完整的示例
import sentry_sdk
from sentry_asgi import SentryMiddleware
sentry_sdk.init(dsn=...)
app = Starlette()
@app.route("/")
def homepage(request):
raise ValueError("nope")
app.add_middleware(SentryMiddleware)
注意
Python版本支持
Sentry SDK需要Python 3.7的contextvars
支持,以便正确地将消息和日志与SentryMiddleware添加的请求上下文关联。
在3.6及以下版本中,SentryMiddleware可以很好地捕获和记录应用程序异常,但不会正确地将日志、消息或面包屑与在threadpool executor或子任务中运行的任何代码关联起来。
ASGI框架应确保任何thread pool executors 保留contextvar
上下文。
端点信息
建议框架在ASGI作用域中填充一个“端点”键,以指示应该由中间件记录哪个视图函数或类。