StarLette¶
logfire.instrument_starlette()
方法将为对 Starlette 应用程序的每个请求创建一个跨度。
安装¶
使用 starlette
extra 安装 logfire
:
pip install 'logfire[starlette]'
rye add logfire -E starlette
poetry add 'logfire[starlette]'
用法¶
我们下面有一个最小的例子。请安装 Uvicorn 来运行它:
pip install uvicorn
您可以使用 python main.py
运行它:
main.py
import logfire
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
from starlette.requests import Request
from starlette.routing import Route
logfire.configure()
async def home(request: Request) -> PlainTextResponse:
return PlainTextResponse("Hello, world!")
app = Starlette(routes=[Route("/", home)])
logfire.instrument_starlette(app)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app)
logfire.instrument_starlette()
的关键字参数被传递给 OpenTelemetry Starlette Instrumentation 包的 StarletteInstrumentor.instrument_app()
方法,请在此处阅读更多相关信息。
问题
“OpenTelemetry ASGI中间件怎么样?如果您是一个更有经验的用户,您可能会想知道为什么我们不使用 OpenTelemetry ASGI 中间件。原因是 StarletteInstrumentor
实际上包装了 ASGI 中间件,并添加了一些与路由相关的附加信息。
捕获请求和响应标头¶
本文总阅读量次