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

Fehlerbehebung AWS X-Ray

In diesem Thema werden häufige Fehler und Probleme aufgeführt, die bei der Verwendung der X-Ray-API, -Konsole oder -SDKs auftreten können. Wenn Sie auf ein Problem stoßen, das hier nicht aufgeführt ist, können Sie die Schaltfläche Feedback auf dieser Seite verwenden, um es zu melden.

Seiten für X-Ray-Ablaufverfolgungszuordnungen und Ablaufverfolgungsdetails

Die folgenden Abschnitte können hilfreich sein, wenn Sie Probleme mit der X-Ray-Trace-Übersicht und der Seite mit den Trace-Details haben:

Ich sehe nicht alle meine CloudWatch Protokolle

Wie Protokolle so konfiguriert werden, dass sie in der X-Ray-Ablaufverfolgungsübersicht und auf den Seiten mit den Ablaufverfolgungsdetails angezeigt werden, hängt vom Service ab.

  • API-Gateway-Protokolle werden angezeigt, wenn die Protokollierung in API Gateway aktiviert ist.

Nicht alle Service-Übersichtsknoten unterstützen die Anzeige der zugehörigen Protokolle. Anzeigen von Protokollen für die folgenden Knotentypen:

  • Lambda-Kontext

  • Lambda-Funktion

  • API Gateway-Stufe

  • Amazon-ECS-Cluster

  • Amazon-ECS-Instance

  • Amazon-ECS-Service

  • Amazon-ECS-Aufgaben

  • Amazon-EKS-Cluster

  • Amazon-EKS-Namespace

  • Amazon-EKS-Knoten

  • Amazon-EKS-Pod

  • Amazon-EKS-Service

Ich sehe nicht alle meine Alarme auf der X-Ray-Ablaufverfolgungskarte

Die X-Ray-Ablaufverfolgungszuordnung zeigt nur das Warnsymbol für einen Knoten an, wenn sich Alarme, die diesem Knoten zugeordnet sind, im ALARM-Status befinden.

Die Ablaufverfolgungszuordnung ordnet Alarme Knoten zu, die die folgende Logik verwenden:

  • Wenn der Knoten einen - AWS Service darstellt, werden alle Alarme mit dem diesem Service zugeordneten Namespace dem Knoten zugeordnet. Beispielsweise AWS::Kinesis ist ein Knoten vom Typ mit allen Alarmen verknüpft, die auf Metriken im CloudWatch Namespace basierenAWS/Kinesis.

  • Wenn der Knoten eine - AWS Ressource darstellt, werden die Alarme für diese spezifische Ressource verknüpft. Beispielsweise ist ein Knoten vom Typ AWS::DynamoDB::Table mit dem Namen „MyTable“ mit allen Alarmen verknüpft, die auf einer Metrik mit dem Namespace basieren AWS/DynamoDB und deren TableName Dimension auf festgelegt istMyTable.

  • Wenn der Knoten vom unbekannten Typ ist, der durch einen gestrichelten Rahmen um den Namen identifiziert wird, sind diesem Knoten keine Alarme zugeordnet.

Ich sehe einige AWS Ressourcen nicht auf der Trace-Map

Nicht jede AWS Ressource wird durch einen dedizierten Knoten dargestellt. Einige AWS Services werden durch einen einzelnen Knoten für alle Anfragen an den Service dargestellt. Die folgenden Ressourcentypen werden mit einem Knoten pro Ressource angezeigt:

  • AWS::DynamoDB::Table

  • AWS::Lambda::Function

    Lambda-Funktionen werden durch zwei Knoten dargestellt – einen für den Lambda-Container und einen für die Funktion. Dies hilft, Kaltstartprobleme mit Lambda-Funktionen zu identifizieren. Lambda-Container-Knoten werden auf dieselbe Weise mit Alarmen und Dashboards verknüpft wie Lambda-Funktionsknoten.

  • AWS::ApiGateway::Stage

  • AWS::SQS::Queue

  • AWS::SNS::Topic

Es gibt zu viele Knoten auf der Trace-Map

Verwenden Sie X-Ray-Gruppen, um Ihre Übersicht in mehrere Übersichten aufzuteilen. Weitere Informationen finden Sie unter Verwenden von Filterausdrücken mit Gruppen.

X-Ray SDK für Java

Fehler: Ausnahme im Thread „Thread-1“ com.amazonaws.xray.exceptions.SegmentNotFoundException: Untersegment mit dem Namen „AmazonSNS ': segment kann nicht gefunden werden.

Dieser Fehler weist darauf hin, dass das X-Ray-SDK versucht hat, einen ausgehenden Aufruf an aufzuzeichnen AWS, aber kein offenes Segment finden konnte. Dies kann in folgenden Situationen auftreten:

  • Ein Servlet-Filter ist nicht konfiguriert – Das X-Ray-SDK erstellt Segmente für eingehende Anforderungen mit einem Filter namens AWSXRayServletFilter. Konfigurieren Sie einen Servlet-Filter, um eingehende Anfragen zu instrumentieren.

  • Sie verwenden instrumentierte Clients außerhalb des Servlet-Codes – Wenn Sie einen instrumentierten Client verwenden, um Aufrufe im Startcode oder in einem anderen Code durchzuführen, der nicht als Antwort auf eine eingehende Anfrage ausgeführt wird, müssen Sie ein Segment manuell erstellen. Beispiele finden Sie unter Instrumentieren von Startup-Code.

  • Sie verwenden instrumentierte Clients in Worker-Threads – Wenn Sie einen neuen Thread erstellen, verliert der X-Ray-Recorder seinen Verweis auf das offene Segment. Sie können die Methoden getTraceEntity und setTraceEntity verwenden, um eine Referenz zum aktuellen Segment oder Untersegment zu erhalten (Entity) und sie innerhalb des Threads wieder an den Recorder zu übergeben. Ein Beispiel finden Sie unter Verwenden instrumentierter Clients in Auftragnehmer-Threads.

X-Ray SDK für Node.js

Problem: CLS funktioniert nicht mit Sequelize

Übergeben Sie den Namespace des X-Ray-SDK für Node.js mit der -clsMethode an Sequenzierung.

var AWSXRay = require('aws-xray-sdk'); const Sequelize = require('sequelize'); Sequelize.cls = AWSXRay.getNamespace(); const sequelize = new Sequelize(...);

Problem: CLS funktioniert nicht mit Bluebird

Verwenden Sie cls-bluebird, damit Bluebird mit CLS funktioniert.

var AWSXRay = require('aws-xray-sdk'); var Promise = require('bluebird'); var clsBluebird = require('cls-bluebird'); clsBluebird(AWSXRay.getNamespace());

Der X-Ray-Daemon

Problem: Der Daemon verwendet die falschen Anmeldeinformationen

Der Daemon verwendet das AWS SDK, um Anmeldeinformationen zu laden. Wenn Sie Anmeldeinformationen mit mehreren Methoden bereitstellen, wird die Methode mit der höchsten Priorität verwendet. Weitere Informationen finden Sie unter Ausführen des Daemons.