X-Ray SDK for Python を使用したカスタムサブセグメントの生成 - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

X-Ray SDK for Python を使用したカスタムサブセグメントの生成

サブセグメントは、トレースの セグメント をリクストに対応するために行われた作業の詳細で拡張します。計測済みクライアント内で呼び出しを行うたびに、X-Ray SDK によってサブセグメントに生成された情報が記録されます。追加のサブセグメントを作成して、他のサブセグメントをグループ化したり、コードセクションのパフォーマンスを測定したり、注釈とメタデータを記録したりできます。

サブセグメントを管理するには、begin_subsegment および end_subsegment メソッドを使用します。

例 main.py - カスタムサブセグメント
from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

同期関数のサブセグメントを作成するには、@xray_recorder.capture デコレータを使用します。サブセグメントの名前をキャプチャ関数に渡すことも、関数名を使用することもできます。

例 main.py - 関数サブセグメント
from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

非同期関数の場合、@xray_recorder.capture_async デコレータを使用し、非同期コンテキストをレコーダーに渡します。

例 main.py - 非同期関数サブセグメント
from aws_xray_sdk.core.async_context import AsyncContext from aws_xray_sdk.core import xray_recorder xray_recorder.configure(service='my_service', context=AsyncContext()) @xray_recorder.capture_async('## create_user') async def create_user(): ... async def main(): await myfunc()

セグメントまたは別のサブセグメント内にサブセグメントを作成する場合、X-Ray SDK for Python によってその ID が生成され、開始時刻と終了時刻が記録されます。

例 サブセグメントとメタデータ
"subsegments": [{ "id": "6f1605cd8a07cb70", "start_time": 1.480305974194E9, "end_time": 1.4803059742E9, "name": "Custom subsegment for UserModel.saveUser function", "metadata": { "debug": { "test": "Metadata string from UserModel.saveUser" } },