AWS X-Ray SDK 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à.

AWS X-Ray SDK per Python

X-Ray SDK for Python è una libreria per applicazioni Python Web che fornisce classi e metodi per generare e inviare dati di traccia al demone X-Ray. I dati di traccia includono informazioni sulle richieste HTTP in entrata fornite dall'applicazione e sulle chiamate effettuate dall'applicazione ai servizi downstream utilizzando l' AWS SDK, i client HTTP o un connettore di database SQL. Puoi anche possibile creare manualmente dei segmenti e aggiungere informazioni di debug in annotazioni e metadati.

Puoi scaricare l'SDK tramite pip.

$ pip install aws-xray-sdk

Se utilizzi Django o Flask, per tracciare le richieste in entrata inizia aggiungendo il middleware dell'SDK alla tua applicazione. Il middleware crea un segmento per ogni richiesta tracciata e completa il segmento quando viene inviata la risposta. Fino a che il segmento è aperto, puoi usare i metodi del client dell'SDK per aggiungere informazioni al segmento e creare sottosegmenti per tracciare le chiamate a valle. L'SDK, inoltre, registra automaticamente le eccezioni sollevate dall'applicazione per il tempo durante il quale il segmento è aperto. Per altre applicazioni, puoi creare i segmenti manualmente.

Per le funzioni Lambda richiamate da un'applicazione o un servizio strumentato, Lambda legge l'intestazione di tracciamento e traccia automaticamente le richieste campionate. Per altre funzioni, puoi configurare Lambda per campionare e tracciare le richieste in arrivo. In entrambi i casi, Lambda crea il segmento e lo fornisce all'X-Ray SDK.

Nota

Su Lambda, l'SDK X-Ray è opzionale. Se non lo usi nella tua funzione, la mappa dei servizi includerà comunque un nodo per il servizio Lambda e uno per ogni funzione Lambda. Aggiungendo l'SDK, puoi utilizzare il codice della funzione per aggiungere sottosegmenti al segmento di funzione registrato da Lambda. Per ulteriori informazioni, consulta AWS Lambda e AWS X-Ray.

Vedi un Worker esempio di Python funzione strumentata in Lambda.

Successivamente, usa l'X-Ray SDK per Python per strumentare le chiamate downstream applicando patch alle librerie dell'applicazione. L'SDK supporta le seguenti librerie.

Librerie supportate
  • botocore, — Client per strumenti. boto3 AWS SDK for Python (Boto)

  • pynamodb— La versione del client Amazon DynamoDB di Instrument PynamoDB.

  • aiobotocore, aioboto3 — Versioni integrate di Instrument Asyncio di SDK per client Python.

  • requests, aiohttp — Client HTTP di alto livello dello strumento.

  • httplib, http.client— I client HTTP di basso livello dello strumento e le librerie di livello superiore che li utilizzano.

  • sqlite3— Client SQLite di Instrument.

  • mysql-connector-python— Client MySQL di Instrument.

  • pg8000— Interfaccia PostgreSQL dello strumento Pure-Python.

  • psycopg2— Adattatore per database PostgreSQL Instrument.

  • pymongo— Client Instrument MongoDB.

  • pymysql— Client basati su Instrument PyMy SQL per MySQL e MariaDB.

Ogni volta che l'applicazione effettua chiamate a AWS un database SQL o ad altri servizi HTTP, l'SDK registra le informazioni sulla chiamata in un sottosegmento. Servizi AWS e le risorse a cui accedi all'interno dei servizi vengono visualizzate come nodi a valle sulla mappa di traccia per aiutarti a identificare errori e problemi di limitazione sulle singole connessioni.

Dopo aver iniziato a utilizzare l'SDK, personalizzane il comportamento configurando il registratore e il middleware. Puoi aggiungere dei plugin per memorizzare i dati sulle risorse di elaborazione sulle quali è eseguita la tua applicazione, personalizzare il comportamento di campionamento definendo regole di campionatura e impostare il livello di log per visualizzare più o meno informazioni generate dall'SDK nei log dell'applicazione.

Registra ulteriori informazioni sulle richieste e sull'attività svolta dalla tua applicazione in annotazioni e metadati. Le annotazioni sono semplici coppie chiave-valore indicizzati per l'uso con espressioni filtro, in modo da poter cercare tracce che contengono dati specifici. Le immissioni di metadati sono meno restrittive e possono registrare interi oggetti e array, ovvero tutto ciò che può essere serializzato in JSON.

Annotazioni e metadata

Le annotazioni e i metadati sono testo arbitrario che aggiungi ai segmenti con X-Ray SDK. Le annotazioni vengono indicizzate per essere utilizzate con le espressioni di filtro. I metadati non sono indicizzati, ma possono essere visualizzati nel segmento non elaborato con la console X-Ray o l'API. Chiunque conceda l'accesso in lettura a X-Ray può visualizzare questi dati.

Quando disponi di una notevole quantità di client analizzati nel tuo codice, un singolo segmento per la richiesta può contenere un numero elevato di sottosegmenti, uno per ciascuna delle chiamate effettuate con un client analizzato. Puoi organizzare e raggruppare i sottosegmenti inglobando le chiamate del client sottosegmenti personalizzati. Puoi creare un sottosegmento personalizzato per un'intera funzione o per qualsiasi parte del codice. Puoi quindi memorizzare metadati e annotazioni nel sottosegmento invece di scrivere tutto all'interno del segmento padre.

Per la documentazione di riferimento per le classi e i metodi dell'SDK, consulta AWS X-Ray SDK for Python API Reference.

Requisiti

L'X-Ray SDK per Python supporta le seguenti versioni di linguaggio e libreria.

  • Python — 2.7, 3.4 e versioni successive

  • Django — 1.10 e versioni successive

  • Flask — 0.10 e versioni successive

  • aiohttp — 2.3.0 e versioni successive

  • AWS SDK for Python (Boto)— 1.4.0 e versioni successive

  • botocore — 1.5.0 e versioni successive

  • enum — 0.4.7 e versioni successive, per le versioni 3.4.0 e precedenti Python

  • jsonpickle — 1.0.0 e versioni successive

  • setuptools — 40.6.3 e versioni successive

  • wrapt — 1.11.0 e versioni successive

Gestione delle dipendenze

L'X-Ray SDK per Python è disponibile da. pip

  • Packageaws-xray-sdk

Aggiungi l'SDK come dipendenza nel file requirements.txt.

Esempio requirements.txt
aws-xray-sdk==2.4.2 boto3==1.4.4 botocore==1.5.55 Django==1.11.3

Se utilizzi Elastic Beanstalk per distribuire l'applicazione, Elastic Beanstalk installa automaticamente tutti i pacchetti. requirements.txt