Generazione di sottosegmenti personalizzati con l'SDK X-Ray per Python - AWS X-Ray

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Generazione di sottosegmenti personalizzati con l'SDK X-Ray per Python

I sottosegmenti estendono una tracciasegmentocon dettagli sul lavoro svolto per soddisfare una richiesta. Ogni volta che si effettua una chiamata con un client strumentato, l'SDK X-Ray registra le informazioni generate in un sottosegmento. È possibile creare sottosegmenti aggiuntivi per raggruppare altri segmenti secondari, per misurare le prestazioni di una sezione di codice o per registrare annotazioni e metadati.

Per gestire i sottosegmenti, utilizza i metodi begin_subsegment e end_subsegment.

Esempio main.py — sottosegmento personalizzato
from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

Per creare un sottosegmento personalizzato per una funzione sincrona, utilizza il decoratore @xray_recorder.capture. Puoi passare un nome per il sottosegmento alla funzione di acquisizione o ometterlo per utilizzare il nome della funzione.

Esempio main.py sottosegmento funzione
from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

Per una funzione asincrona, utilizza il decoratore @xray_recorder.capture_async e passa un contesto async al registratore.

Esempio main.py — sottosegmento di funzione asincrona
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()

Quando crei un sottosegmento all'interno di un segmento o di un altro sottosegmento, l'SDK X-Ray per Python genera per esso un ID e memorizza l'ora di inizio e fine.

Esempio Sottosegmento con metadati
"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" } },