Generieren benutzerdefinierter Untersegmente mit dem X-Ray-SDK für Python - AWS X-Ray

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Generieren benutzerdefinierter Untersegmente mit dem X-Ray-SDK für Python

Teilsegmente erweitern ein TraceAbschnittmit Details über die geleistete Arbeit, um eine Anfrage zu stellen. Jedes Mal, wenn Sie einen Aufruf mit einem instrumentierten Client erstellen, erfasst das X-Ray-SDK die in einem Untersegment generierten Informationen. Sie können zusätzliche Teilsegmente erstellen, um andere Teilsegmente zu gruppieren, die Leistung eines Codeabschnitts zu messen oder Anmerkungen und Metadaten aufzuzeichnen.

Um Untersegmente zu verwalten, verwenden Sie die Methoden begin_subsegment und end_subsegment.

Beispiel main.py — benutzerdefiniertes Untersegment

from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

Um ein Untersegment für eine synchrone Funktion zu erstellen, verwenden Sie den @xray_recorder.capture-Decorator. Sie können einen Namen für das Untersegment an die Erfassungsfunktion übergeben oder diesen weglassen und den Funktionsnamen verwenden.

Beispiel main.py — Funktionsuntersegment

from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

Verwenden Sie bei einer asynchronen Funktion den @xray_recorder.capture_async-Decorator und übergeben Sie einen asynchronen Kontext an den Recorder.

Beispiel main.py — Untersegment asynchrones Funktionsuntersegment

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()

Beim Erstellen eines Untersegments innerhalb eines Segments oder eines anderen Untersegments generiert das X-Ray-SDK für Python eine ID dafür und erfasst die Start- und Endzeit.

Beispiel Untersegment mit Metadaten

"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" } },