Génération de sous-segments personnalisés avec le kit SDK X-Ray pour Python - AWS X-Ray

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Génération de sous-segments personnalisés avec le kit SDK X-Ray pour Python

Les sous-segments étendent une tracesegmentavec des détails sur le travail effectué pour répondre à une demande. Chaque fois que vous effectuez un appel avec un client instrumenté, le kit SDK X-Ray enregistre les informations générées dans un sous-segment. Vous pouvez créer des sous-segments supplémentaires pour regrouper d'autres sous-segments, pour mesurer les performances d'une section de code ou pour enregistrer des annotations et des métadonnées.

Pour gérer des sous-segments, utilisez les méthodes begin_subsegment et end_subsegment.

Exemple main.py Sous-segment personnalisé
from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

Pour créer un sous-segment pour une fonction synchrone, utilisez le décorateur @xray_recorder.capture. Vous pouvez transmettre un nom pour le sous-segment à la fonction de capture ou le laisser utiliser le nom de la fonction.

Exemple main.py Sous-segment de fonction
from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

Pour une fonction asynchrone, utilisez le décorateur @xray_recorder.capture_async et transmettez un contexte asynchrone à l'enregistreur.

Exemple main.py Sous-segment de fonction asynchrone
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()

Lorsque vous créez un sous-segment dans un segment ou un autre sous-segment, le kit SDK X-Ray pour Python lui génère un ID et enregistre l'heure de début et de fin.

Exemple Sous-segment avec des métadonnées
"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" } },