使用X-Ray SDK for Python生成自定义子分段 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用X-Ray SDK for Python生成自定义子分段

子分段会扩展跟踪的分段并提供有关完成任务的详细信息,以便处理请求。每次您通过已分析的客户端进行调用时,X-Ray 开发工具包都将记录在子分段中生成的信息。您可以创建更多子分段以分组其他子分段、测量代码段的性能或记录注释和元数据。

要管理子分段,请使用 begin_subsegmentend_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" } },