跳转至

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 中间件,并添加了一些与路由相关的附加信息。

捕获请求和响应标头


本文总阅读量