AWSX-Ray-SDK für Node.js - 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.

AWSX-Ray-SDK für Node.js

Das X-Ray-SDK für Node.js ist eine Bibliothek für Express-Webanwendungen und Node.js Lambda-Funktionen, die Klassen und Methoden zum Generieren und Senden von Ablaufverfolgungsdaten zum X-Ray-Daemon bereitstellen. Ablaufverfolgungsdaten umfassen Informationen zu eingehenden HTTP-Anforderungen, die von der Anwendung verarbeitet werden, sowie Aufrufe, die die Anwendung an nachgelagerte Services mit derAWSSDK- oder HTTP-Clients.

Anmerkung

Das X-Ray-SDK für Node.js ist ein Open-Source-Projekt. Sie können das Projekt auf GitHub verfolgen und Probleme und Pull-Anforderungen übermitteln: github.com/aws/aws-xray-sdk-node

Wenn Sie Express nutzen, beginnen Sie, indem Sie das SDK als Middleware auf Ihrem Anwendungsserver hinzufügen, um eingehende Anforderungen zu verfolgen. Der Middleware erstellt für jede verfolgte Anforderung ein Segment und vervollständigt das Segment, nachdem die Antwort gesendet wurde. Während das Segment geöffnet ist, können Sie die SDK-Client-Methoden nutzen, um dem Segment Informationen hinzuzufügen, Untersegmente zu erstellen und nachgelagerte Aufrufe rückzuverfolgen. Das SDK erfasst auch automatisch Ausnahmen, die Ihre Anwendung ausgibt, während das Segment geöffnet ist.

Für Lambda-Funktionen, die von einer instrumentierten Anwendung oder einem Dienst aufgerufen werden, liest LambdaAblaufverfolgungs-Headerund verfolgt gesampelte Anfragen automatisch. Für andere Funktionen können SieKonfigurieren Sie Lambdaum eingehende Anforderungen zu prüfen und rückzuverfolgen. In beiden Fällen erstellt Lambda das Segment und stellt es dem X-Ray SDK zur Verfügung.

Anmerkung

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

Verwenden Sie als Nächstes das X-Ray-SDK für Node.js, umInstrumentieren Sie IhreAWSSDK für JavaScript in Node.js Clientsaus. Wann immer Sie einen Downstream anrufenAWSService oder Ressource mit einem instrumentierten Client erfasst das SDK Informationen über den Aufruf in einem Untersegment.AWS-Services und die Ressourcen, auf die Sie innerhalb der Services zugreifen, erscheinen in der Service-Übersicht als nachgelagerte Knoten, um Ihnen bei der Identifikation von Fehlern und der Ablehnung von Problemen mit individuellen Verbindungen zu helfen.

Das X-Ray-SDK für Node.js bietet auch eine Instrumentierung für nachgelagerte Aufrufe zu HTTP-Web-APIs und SQL-Anfragen an. Umhüllen Sie den HTTP-Client in der SDK-Erfassungsmethode, um Informationen zu ausgehenden HTTP-Anforderungen aufzuzeichnen. Für SQL-Clients verwenden Sie die Capture-Methode für Ihre Datenbank.

Die Middleware wendet Samplingregeln auf eingehende Anforderungen an, um zu ermitteln, welche Anforderungen rückverfolgt werden. Sie haben folgende MöglichkeitenKonfigurieren Sie das X-Ray-SDK für Node.jsum das Sampling-Verhalten anzupassen oder Informationen über dieAWSRechenressourcen, auf denen Ihre Anwendung ausgeführt wird.

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 einschränkend und können ganze Objekte und Arrays aufzeichnen – alle Daten, die in eine JSON zusammengefasst werden können.

Anmerkungen und Metadaten

Anmerkungen und Metadaten sind beliebiger Text, den Sie Segmenten mit dem X-Ray-SDK hinzufügen. Anmerkung werden für die Verwendung mit Filterausdrücken indiziert. Metadaten werden nicht indiziert, 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 anzeigen.

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 eine ganze Funktion oder eine Code-Abschnitt erstellen und Metadaten und Anmerkungen im Untersegment festhalten, anstatt alles im übergeordneten Segment aufzuzeichnen.

Eine Referenzdokumentation zu den SDK-Klassen und -Methoden finden Sie unter.AWS X-RaySDK für Node.js API-Referenzaus.

Voraussetzungen

Das X-Ray-SDK für Node.js erfordert Node.js und folgende Bibliotheken:

  • atomic-batcher— 1.0.2

  • cls-hooked— 4.2.2

  • pkginfo— 0.4.0

  • semver— 5.3.0

Das SDK zieht diese Bibliotheken bei der Installation in NPM ein.

AblaufverfolgungAWSSDK-Clients, das X-Ray-SDK für Node.js erfordert eine Mindestversion vonAWSSDK für JavaScript in Node.js.

  • aws-sdk— 2.15

Abhängigkeitsmanagement

Das X-Ray-SDK für Node.js ist von NPM verfügbar.

Installieren Sie das SDK für eine lokale Bereitstellung in Ihrem Projektverzeichnis mit npm.

~/nodejs-xray$ npm install aws-xray-sdk aws-xray-sdk@3.3.3 ├─┬ aws-xray-sdk-core@3.3.3 │ ├── @aws-sdk/service-error-classification@3.15.0 │ ├── @aws-sdk/types@3.15.0 │ ├─┬ @types/cls-hooked@4.3.3 │ │ └── @types/node@15.3.0 │ ├── atomic-batcher@1.0.2 │ ├─┬ cls-hooked@4.2.2 │ │ ├─┬ async-hook-jl@1.7.6 │ │ │ └── stack-chain@1.3.7 │ │ └─┬ emitter-listener@1.1.2 │ │ └── shimmer@1.2.1 │ └── semver@5.7.1 ├── aws-xray-sdk-express@3.3.3 ├── aws-xray-sdk-mysql@3.3.3 └── aws-xray-sdk-postgres@3.3.3

Verwenden Sie die --save-Option zum Speichern von SDK in Abhängigkeit von package.json in Ihrer Anwendung.

~/nodejs-xray$ npm install aws-xray-sdk --save aws-xray-sdk@3.3.3

Wenn Ihre Anwendung Abhängigkeiten hat, deren Versionen mit den Abhängigkeiten des X-Ray SDK in Konflikt stehen, werden beide Versionen installiert, um die Kompatibilität sicherzustellen. Weitere Informationen finden Sie unter.offizielle NPM-Dokumentation zur Abhängigkeitsauflösungaus.

Node.js-Beispiele

Arbeiten mit derAWS X-RaySDK für Node.js um eine end-to-end Ansicht von Anforderungen, während sie durch Ihre Node.js -Anwendungen gehen.