コンテンツにスキップ

スターレット

logfire.instrument_starlette() メソッドは、Starletteアプリケーションのリクエストごとにスパンを作成します。

インストール

starlette extraを使用して logfire をインストールします:

{{ install_logfire(extras=['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() のキーワードパラメーターは、OpenTelemetyStarletteInstrumentationパッケージの StarletteInstrumentor.instrument_app() メソッドに渡されます。詳細については、ここを参照してください。

問題

より経験豊富なユーザーであれば、なぜOpenTelemometry AS GIミドルウェアを使用しないのか疑問に思うかもしれません。

その理由は、StarletteInstrumentor が実際にAS GIミドルウェアをラップし、ルーティングに関連するいくつかの追加情報を追加したためです。

リクエストとレスポンスヘッダーのキャプチャ


本文总阅读量次