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.
Sections
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 basierenAWS/DynamoDB
und derenTableName
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
undsetTraceEntity
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 -cls
Methode 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.