AWS X-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.

AWS X-Ray SDK für Node.js

X-Ray SDK for Node.js ist eine Bibliothek für Express-Webanwendungen und Node.js Lambda-Funktionen, 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 der ODER-Clients an nachgeschaltete Dienste sendet AWS SDK. HTTP

Anmerkung

The X-Ray SDK for Node.js ist ein Open-Source-Projekt, das für Node.js Versionen 14.x und höher unterstützt wird. Du kannst das Projekt verfolgen und Probleme und Pull-Requests einreichen unter GitHub: github.com/aws/ aws-xray-sdk-node

Wenn Sie Express verwenden, fügen Sie zunächst die SDK As-Middleware auf Ihrem Anwendungsserver 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 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.

Verwenden Sie als Nächstes das X-Ray SDK für Node.js, um Ihren AWS SDK für JavaScript in Node.js Clients zu instrumentieren. Immer wenn Sie einen Downstream AWS-Service oder eine Ressource mit einem instrumentierten Client aufrufen, SDK zeichnet der Client Informationen über den Anruf in einem Untersegment auf. 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.

Das X-Ray SDK for Node.js bietet auch Instrumentierung für Downstream-Aufrufe HTTP im Internet APIs und SQL Abfragen. Binden Sie Ihren HTTP Client in die SDK Capture-Methode ein, um Informationen über ausgehende HTTP Anrufe aufzuzeichnen. Verwenden Sie für SQL Clients die Capture-Methode für Ihren Datenbanktyp.

Die Middleware wendet Samplingregeln auf eingehende Anforderungen an, um zu ermitteln, welche Anforderungen rückverfolgt werden. Sie können X-Ray SDK for Node.js so konfigurieren, dass das Sampling-Verhalten angepasst oder Informationen über die AWS Rechenressourcen aufgezeichnet werden, 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 restriktiv und können ganze Objekte und Arrays aufzeichnen — also 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 eine ganze Funktion oder eine Code-Abschnitt erstellen und Metadaten und Anmerkungen im Untersegment festhalten, anstatt alles im übergeordneten Segment aufzuzeichnen.

Referenzdokumentation zu den Klassen und Methoden SDK von finden Sie in der APIReferenz AWS X-Ray SDK für Node.js.

Voraussetzungen

Das X-Ray SDK für Node.js benötigt Node.js und die folgenden Bibliotheken:

  • atomic-batcher— 1.0.2

  • cls-hooked— 4.2.2

  • pkginfo— 0,4,0

  • semver— 5,3,0

Der SDK holt sich diese Bibliotheken, wenn Sie ihn mit installieren. NPM

Um AWS SDK Clients zu verfolgen, benötigt X-Ray SDK for Node.js eine Mindestversion von AWS SDK for JavaScript in Node.js.

  • aws-sdk— 2.7.15

Abhängigkeitsmanagement

Das X-Ray SDK für Node.js ist erhältlich unterNPM.

Für die lokale Entwicklung installieren Sie das SDK 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, um das SDK als Abhängigkeit in Ihrer Anwendung zu speichern. package.json

~/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 SDK von X-Ray in Konflikt stehen, werden beide Versionen installiert, um die Kompatibilität sicherzustellen. Weitere Informationen finden Sie in der offiziellen NPM Dokumentation zur Auflösung von Abhängigkeiten.

Node.js-Beispiele

Verwenden Sie die Datei AWS X-Ray SDK für Node.js, um sich einen end-to-end Überblick über die Anfragen zu verschaffen, die in Ihren Node.js -Anwendungen verarbeitet werden.