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

AWS X-Ray SDK for Python

X-Ray SDK for Python ist eine Bibliothek für Python-Webanwendungen, die Klassen und Methoden zum Generieren und Senden von Trace-Daten an den X-Ray-Daemon bereitstellt. Zu den Trace-Daten gehören Informationen über eingehende HTTP Anfragen, die von der Anwendung bedient werden, sowie über Aufrufe, die die Anwendung mithilfe von HTTP Clients oder einem SQL Datenbank-Connector an nachgeschaltete Dienste sendet. AWS SDK Sie können Segmente auch manuell erstellen und Debug-Informationen Anmerkungen und Metadaten hinzufügen.

Sie können das SDK mit herunterladenpip.

$ pip install aws-xray-sdk
Anmerkung

Das X-Ray SDK für Python ist ein Open-Source-Projekt. Du kannst das Projekt verfolgen und Issues und Pull-Requests einreichen unter GitHub: github.com/aws/ aws-xray-sdk-python

Wenn Sie Django oder Flask verwenden, fügen Sie Ihrer Anwendung zunächst die SDK Middleware hinzu, um eingehende Anfragen zu verfolgen. Der Middleware erstellt für jede verfolgte Anforderung ein Segment und vervollständigt das Segment, nachdem die Antwort gesendet wurde. Solange das Segment geöffnet ist, können Sie die Methoden des SDK Clients verwenden, um dem Segment Informationen hinzuzufügen und Untersegmente zu erstellen, um Downstream-Aufrufe zu verfolgen. Das zeichnet SDK auch automatisch Ausnahmen auf, die Ihre Anwendung auslöst, während das Segment geöffnet ist. Bei anderen Anwendungen können Sie Segmente manuell erstellen.

Bei Lambda-Funktionen, die von einer instrumentierten Anwendung oder einem Dienst aufgerufen werden, liest Lambda den Tracing-Header und verfolgt automatisch Sampling-Anfragen. Für andere Funktionen können Sie Lambda so konfigurieren, dass eingehende Anfragen abgefragt und verfolgt werden. In beiden Fällen erstellt Lambda das Segment und stellt es dem X-Ray SDK zur Verfügung.

Anmerkung

Auf Lambda SDK ist das X-Ray optional. Wenn Sie es nicht in Ihrer Funktion verwenden, enthält Ihre Service-Map immer noch einen Knoten für den Lambda-Service und einen für jede Lambda-Funktion. Durch Hinzufügen von können Sie Ihren Funktionscode instrumentierenSDK, um dem von Lambda aufgezeichneten Funktionssegment Untersegmente hinzuzufügen. Weitere Informationen finden Sie unter AWS Lambda und AWS X-Ray.

Ein Beispiel Worker für eine in Lambda instrumentierte Python-Funktion finden Sie unter.

Verwenden Sie als Nächstes X-Ray SDK für Python, um Downstream-Aufrufe zu instrumentieren, indem Sie die Bibliotheken Ihrer Anwendung patchen. Das SDK unterstützt die folgenden Bibliotheken.

Unterstützte Bibliotheken
  • botocore, boto3 — AWS SDK for Python (Boto) Instrumenten-Clients.

  • pynamodb— Instrumentieren Sie die Version des Amazon DynamoDB-Clients von PynamoDB.

  • aiobotocore, aioboto3Asyncio-integrierte Versionen von SDK für Python-Clients.

  • requests, aiohttp — Instrumentieren Sie hochrangige ClientsHTTP.

  • httplib, http.client— Instrumentieren Sie HTTP Low-Level-Clients und die übergeordneten Bibliotheken, die sie verwenden.

  • sqlite3— SQLite Instrumentenkunden.

  • mysql-connector-python— Instrument Meine SQL Kunden.

  • pg8000— Instrument Pure-Python SQL Postgre-Schnittstelle.

  • psycopg2— Instrument SQL Postgre-Datenbankadapter.

  • pymongo— Instrumentieren Sie MongoDB-Clients.

  • pymysql— PyMy SQL Instrumentenbasierte Clients für My SQL und MariaDB.

Immer wenn Ihre Anwendung eine SQL Datenbank oder andere HTTP Dienste aufruft, SDK zeichnet sie Informationen über den Anruf in einem Untersegment auf. AWS AWS -Services und die Ressourcen, auf die Sie innerhalb der Services zugreifen, werden in der Trace-Map als Downstream-Knoten angezeigt, sodass Sie Fehler und Drosselungsprobleme bei einzelnen Verbindungen leichter identifizieren können.

Nachdem Sie den verwendet habenSDK, passen Sie sein Verhalten an, indem Sie den Rekorder und die Middleware konfigurieren. Sie können Plugins hinzufügen, um Daten über die Rechenressourcen aufzuzeichnen, auf denen Ihre Anwendung ausgeführt wird, das Sampling-Verhalten durch Definition von Sampling-Regeln anpassen und die Protokollebene so einstellen, dass mehr oder weniger Informationen aus den SDK Anwendungsprotokollen angezeigt werden.

Zeichnen Sie zusätzliche Informationen zu Anforderungen und den Aufgaben, die Ihre Anwendung ausführt, in Anmerkungen und Metadaten auf. Anmerkungen sind einfache Schlüsselwertpaare, die für die Verwendung mit Filterausdrücken indiziert werden, damit Sie nach Ablaufverfolgen mit bestimmten Daten suchen können. Metadateneinträge sind weniger restriktiv und können ganze Objekte und Arrays aufzeichnen — alles, in das serialisiert werden kann. JSON

Anmerkungen und Metadaten

Anmerkungen und Metadaten sind beliebiger Text, den Sie mit dem X-Ray SDK zu Segmenten hinzufügen. Anmerkungen werden für die Verwendung mit Filterausdrücken indexiert. Metadaten werden nicht indexiert, können aber im Rohsegment mit der X-Ray-Konsole oder API angezeigt werden. Jeder, dem Sie Lesezugriff auf X-Ray gewähren, kann diese Daten einsehen.

Wenn Sie viele instrumentierten Clients in Ihrem Code haben, kann ein einzelnes Anforderungssegmente viele Untersegmente enthalten, eines für jeden Aufruf mit einem instrumentierten Client. Sie können Untersegmente organisieren und gruppieren, indem Sie Client-Aufrufe in benutzerdefinierten Untersegmenten zusammenfassen. Sie können ein benutzerdefiniertes Untersegment für die gesamte Funktion oder einen beliebigen Bereich des Codes erstellen. Sie können dann Metadaten und Anmerkungen im Untersegment aufzeichnen, anstatt alles in das übergeordnete Segment zu schreiben.

Eine Referenzdokumentation zu den Klassen und Methoden SDK von finden Sie in der AWS X-Ray SDKAPIPython-Referenz.

Voraussetzungen

Das X-Ray SDK für Python unterstützt die folgenden Sprach- und Bibliotheksversionen.

  • Python — 2.7, 3.4 und neuer

  • Django — 1.10 und neuer

  • Flask — 0.10 und neuer

  • aiohttp — 2.3.0 und neuer

  • AWS SDK for Python (Boto)— 1.4.0 und neuer

  • botocore — 1.5.0 und neuer

  • enum — 0.4.7 und neuer, für Python-Versionen 3.4.0 und älter

  • jsonpickle — 1.0.0 und neuer

  • setuptools — 40.6.3 und neuer

  • wrapt — 1.11.0 und neuer

Abhängigkeitsmanagement

Das X-Ray SDK für Python ist erhältlich unterpip.

  • Packageaws-xray-sdk

Fügen Sie das SDK als Abhängigkeit zu Ihrer requirements.txt Datei hinzu.

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

Wenn Sie Elastic Beanstalk für die Bereitstellung Ihrer Anwendung verwenden, installiert Elastic Beanstalk alle Pakete automatisch. requirements.txt