使用适用于 Python 的 X-Ray 开发工具包生成定制子分段 - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用适用于 Python 的 X-Ray 开发工具包生成定制子分段

子段延伸追踪的segment,详细说明为了满足请求而完成的工作。每次您使用所分析客户端进行调用时,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()

当您在分段或者其他子分段中创建子分段时,适用于 Python 的 X-Ray 开发工具包会为其生成 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" } },