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 for SDK Python è una libreria per applicazioni web Python che fornisce classi e metodi per generare e inviare dati di traccia al demone X-Ray. I dati di traccia includono informazioni sulle HTTP richieste in entrata servite dall'applicazione e sulle chiamate effettuate dall'applicazione ai servizi downstream utilizzando il AWS SDK client o un connettore di database. HTTP SQL Puoi anche possibile creare manualmente dei segmenti e aggiungere informazioni di debug in annotazioni e metadati.

Puoi scaricare il file con. SDK pip

$ pip install aws-xray-sdk

Se usi Django o Flask, inizia aggiungendo il SDK middleware alla tua applicazione per tracciare le richieste in arrivo. Il middleware crea un segmento per ogni richiesta tracciata e completa il segmento quando viene inviata la risposta. Mentre il segmento è aperto, puoi utilizzare i metodi del SDK client per aggiungere informazioni al segmento e creare sottosegmenti per tracciare le chiamate downstream. SDKInoltre, registra automaticamente le eccezioni generate dall'applicazione mentre 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'SDKX-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 ilSDK, è possibile 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 funzione Python strumentata in Lambda.

Successivamente, usa X-Ray SDK for Python per strumentare le chiamate downstream patchando le librerie dell'applicazione. SDKSupporta le seguenti librerie.

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

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

  • aiobotocore, aioboto3 — Versioni integrate nello strumento in modalità asincrona per client SDK Python.

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

  • httplib, http.client— HTTP Client di basso livello di Instrument e librerie di livello superiore che li utilizzano.

  • sqlite3— SQLite Client di strumenti.

  • mysql-connector-python— Strumento SQL I miei clienti.

  • pg8000— Interfaccia Postgre dello strumento Pure-Python. SQL

  • psycopg2— Adattatore per database Instrument Postgre. SQL

  • pymongo— Client Instrument MongoDB.

  • pymysql— Client PyMy SQL basati su strumenti per My SQL e MariadB.

Ogni volta che l'applicazione effettua chiamate verso AWS un SQL database o altri HTTP servizi, 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 utilizzareSDK, personalizzane il comportamento configurando il registratore e il middleware. È possibile aggiungere plug-in per registrare dati sulle risorse di calcolo che eseguono l'applicazione, personalizzare il comportamento di campionamento definendo regole di campionamento e impostare il livello di registro per visualizzare più o meno informazioni dai log dell'applicazione. SDK

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ò in cui è possibile serializzare. 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 raw con la console X-Ray o. 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 SDK classi e i metodi, vedere il AWS X-Ray SDKfor Python API Reference.

Requisiti

X-Ray SDK for 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 successive, per le versioni di Python 3.4.0 e precedenti

  • jsonpickle — 1.0.0 e versioni successive

  • setuptools — 40.6.3 e versioni successive

  • wrapt — 1.11.0 e versioni successive

Gestione delle dipendenze

X-Ray SDK for Python è disponibile da. pip

  • Packageaws-xray-sdk

SDKAggiungila come dipendenza nel tuo requirements.txt file.

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