Generación de subsegmentos personalizados con el SDK de X-Ray para Python - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Generación de subsegmentos personalizados con el SDK de X-Ray para Python

Los subsegmentos amplían el segmento de un rastro con detalles sobre el trabajo realizado para atender una solicitud. Cada vez que usted realiza una llamada con un cliente instrumentado, el SDK de X-Ray registra la información generada en un subsegmento. Puede crear subsegmentos adicionales para agrupar otros subsegmentos, medir el rendimiento de una sección de código o registrar anotaciones y metadatos.

Para administrar los subsegmentos, utilice los métodos begin_subsegment y end_subsegment.

ejemplo main.py: subsegmento personalizado
from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

Para crear un subsegmento para una función síncrona, utilice el decorador @xray_recorder.capture. Puede transferir un nombre para el subsegmento a la función de captura o dejarlo para utilizar el nombre de la función.

ejemplo main.py: subsegmento de función
from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

Si se trata de una función asíncrona, utilice el decorador @xray_recorder.capture_async y pase un contexto asíncrono a la grabadora.

ejemplo main.py: subsegmento de función asíncrona
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()

Cuando crea un subsegmento dentro de un segmento o de otro subsegmento, el SDK de X-Ray para Python genera un ID para dicho subsegmento y registra la hora de inicio y la hora de finalización.

ejemplo Subsegmentos con metadatos
"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" } },