AWS X-Ray-Konzepte - 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-Konzepte

AWS X-Ray erhält Daten von Services als Segmente. X-Ray gruppiert dann Segmente mit einer gemeinsamen Anfrage inSpurenaus. X-Ray verarbeitet die Spuren zur Erzeugung einesService-Grafikbietet eine visuelle Darstellung Ihrer Anwendung.

Segmente

Die Datenverarbeitungsressourcen, die Ihre Anwendungslogik ausführen, senden Daten zu ihrer Arbeit als Segment. Ein Segment enthält den Namen der Ressource, Details zu der Anforderung und Details zu den erledigten Aufgaben. Wenn zum Beispiel eine HTTP-Anforderung Ihre Anwendung erreicht, können Daten über Folgendes erfasst werden:

  • Der host— Hostname, Alias oder IP-Adresse

  • Anfrage— Methode, Clientadresse, Pfad, Benutzeragent

  • Die Antwort— Status, Inhalt

  • Erledigte Aufgaben— Start- und Endzeiten, Untersegmente

  • Probleme, die auftretenFehler, Störungen und Ausnahmeneinschließlich automatischer Erfassung von Ausnahme-Stacks.


        Segmentieren von Daten für Scorekeep

Das X-Ray-SDK sammelt Informationen von Anforderungs- und Antwort-Headern, den Code in Ihrer Anwendung und Metadaten überAWSRessourcen, auf denen es läuft. Sie können auswählen, welche Daten gesammelt werden, indem Sie Ihre Anwendungskonfiguration oder den Code ändern, um eingehende Anforderungen, nachgelagerte Anforderungen zu instrumentieren undAWSSDK-Clients.

Weitergeleitete Anfragen

Wenn ein Load Balancer oder ein anderer Vermittler eine Anfrage an Ihre Anwendung weiterleitet, übernimmt X-Ray die Client-IP von derX-Forwarded-ForHeader in der Anforderung statt von der Quell-IP im IP-Paket. Die Client-IP, die für eine weitergeleitete Anfrage aufgezeichnet wird, kann gefälscht werden und sollte daher nicht vertrauenswürdig sein.

Sie können das X-Ray-SDK verwenden, um zusätzliche Informationen wieAnmerkungen und Metadaten. Weitere Details über die Struktur und die Informationen, die in Segmenten und Untersegmenten aufgezeichnet werden, finden Sie unter AWS X-Ray-Segmentdokumente. Segmentdokumente können eine Größe von bis zu 64 kB haben.

Untersegmente

Ein Segment kann die Daten zu der geleisteten Arbeit in Untersegmente unterteilen. Untersegmente bieten detailliertere Zeitinformationen und Einzelheiten zu Downstream-Aufrufen, die Ihre Anwendung getätigt hat, um die ursprüngliche Anforderung zu bearbeiten. Ein Untersegment kann zusätzliche Details zu einem Anruf an eine enthaltenAWSService, eine externe HTTP-API oder eine SQL-Datenbank. Sie können sogar beliebige Untersegmente definieren, um spezifische Funktionen oder Codezeilen in Ihrer Anwendung zu instrumentieren.


        Untersegmente bieten detailliertere Informationen.

Für Dienste, die keine eigenen Segmente senden, z. B. Amazon DynamoDB, verwendet X-Ray Untersegmente zur Erstellung von Untersegmentenabgeleitete Segmenteund Downstream-Knoten auf der Service-Map. Dadurch können Sie alle Ihre nachgelagerten Abhängigkeiten einsehen, auch wenn diese keine Ablaufverfolgung unterstützen oder externe Ressourcen sind.

Untersegmente geben die Ansicht eines nachgelagerten Aufrufs Ihrer Anwendung als Client wieder. Wenn der nachgelagerte Service ebenfalls instrumentiert ist, ersetzt das von ihm gesendete Segment das abgeleitete Segment, das aus dem Untersegment des vorgelagerten Clients generiert wurde. Der Knoten im Service-Diagramm verwendet immer Informationen vom Segment des Services, sofern verfügbar, während die Edge zwischen den beiden Knoten das Untersegment des nachgelagerten Services verwendet.

Wenn Sie beispielsweise DynamoDB mit einem instrumentiertenAWSSDK-Client zeichnet das X-Ray-SDK ein Untersegment für diesen Aufruf auf. DynamoDB sendet kein Segment, somit enthalten das abgeleitete Segment in der Ablaufverfolgung, der DynamoDB-Knoten im Service-Diagramm und die Grenze zwischen Ihrem Service und DynamoDB Informationen aus dem Untersegment.


        Edge zwischen einer instrumentierten Anwendung und DynamoDB.

Wenn Sie einen weiteren instrumentierten Service mit einer instrumentierten Anwendung aufrufen, sendet der nachgelagerte Service ein eigenes Segment, um seine Ansicht desselben Aufrufs aufzuzeichnen, den der vorgelagerte Service in einem Untersegment aufgezeichnet hat. Im Service-Diagramm enthalten die Knoten beider Services Zeit- und Fehlerinformationen aus den Segmenten dieser Services, während die Edge zwischen ihnen Informationen aus dem Untersegment des vorgelagerten Services enthält.


        Eine instrumentierte Anwendung, die eine andere instrumentierte Anwendung aufruft.

Beide Ansichten sind nützlich, da der nachgelagerte Service genau aufzeichnet, wann die Verarbeitung der Anfrage gestartet und beendet wurde, und der vorgelagerten Service zeichnet die Umlauflatenz auf, einschließlich der Zeit für die Übertragung der Latenz zwischen den beiden Services.

Service-Diagramm

X-Ray verwendet die Daten, die Ihre Anwendung sendet, um eineService-Grafikaus. EACHAWSEine Ressource, die Daten an X-Ray sendet, wird in der Graphik als Service dargestellt. Grenzen verbinden die Services, die gemeinsam Anforderungen bearbeiten. Edges verbinden Clients mit Ihrer Anwendung und Ihre Anwendung mit den Downstream-Services sowie den verwendeten Ressourcen.

Servicenamen

Ein Segmentnamesollte mit dem Domainnamen oder dem logischen Namen des Dienstes übereinstimmen, der das Segment generiert. Dies wird jedoch nicht durchgesetzt. Jede Anwendung, die die Erlaubnis hatPutTraceSegmentskann Segmente mit einem beliebigen Namen senden.

Eine Service-Graphik ist ein JSON-Dokument, das Informationen zu den Services und Ressourcen enthält, aus denen Ihre Anwendung besteht. Die X-Ray-Konsole verwendet die Service-Graphik zur Erstellung einer Visualisierung oderService-Übersichtaus.


        Service-Übersicht

Für eine verteilte Anwendung kombiniert X-Ray-Knoten aus allen Services, die Anforderungen mit derselben Ablaufverfolgungs-ID verarbeiten, in einer einzelnen Service-Graphik. Der erste Service, den die Anforderung findet, fügt einen Nachverfolgungskopf hinzu, der zwischen dem Frontend und den davon aufgerufenen Services verteilt wird.

Beispielsweise führt Scorekeep eine Web-API aus, die einen Mikroservice (eine AWS Lambda-Funktion) aufruft, die mithilfe einer Node.js-Bibliothek einen zufälligen Namen generiert. Das X-Ray-SDK SDK for Java generiert die Ablaufverfolgungs-ID und fügt sie in Aufrufe an Lambda ein. Lambda sendet Nachverfolgungsdaten und übergibt die Ablaufverfolgungs-ID an die Funktion. Das X-Ray-SDK für Node.js verwendet ebenfalls die Ablaufverfolgungs-ID zum Senden von Daten. Infolgedessen werden Knoten für die API, den Lambda-Service und die Lambda-Funktion alle als separate, aber verbundene Knoten in der Service-Übersicht dargestellt.

Service-Diagrammdaten werden 30 Tage aufbewahrt.

Ablaufverfolgungen

Eine Ablaufverfolgungs-ID verfolgt den Weg einer Anforderung durch Ihre Anwendung. Eine Ablaufverfolgung sammelt alle von einer einzelnen Anforderung generierten Segmente. Diese Anforderung ist in der Regel eine HTTP GET- oder POST-Anforderung, die einen Load Balancer passiert, auf Ihren Anwendungscode trifft und nachgelagerte Aufrufe anderer generiertAWSDienste oder externe Web-APIs. Der erste unterstützte Service, mit dem die HTTP-Anforderungen interagiert, fügt der Anforderung einen Ablaufverfolgungs-ID-Kopf hinzu und verteilt ihn nachgeordnet weiter, um Latenz, Disposition und andere Daten der Anforderung nachzuverfolgen.


        Timeline-Ansicht einer Ablaufverfolgung, die alle von einer einzelnen Anforderungen generierten Segmente sammelt

Service-Diagrammdaten werden 30 Tage aufbewahrt.

Sampling

Um sicherzustellen, dass die Ablaufverfolgung effizient ist und gleichzeitig ein repräsentatives Samples der Anforderungen, die Ihre Anwendung verarbeitet, erfolgt, wendet das X-Ray-SDK eineProbenahmeAlgorithmus, um zu bestimmen, welche Anfragen verfolgt werden. Standardmäßig zeichnet das X-Ray-SDK die erste Anforderung pro Sekunde und fünf Prozent aller zusätzlichen Anforderungen auf.

Um zu vermeiden, dass bei den ersten Schritten Servicegebühren anfallen, ist die Standard-Samplingrate konservativ. Sie können X-Ray konfigurieren, um die Standard-Sampling-Regel zu ändern und zusätzliche Regeln zu konfigurieren, die Sampling basierend auf Eigenschaften des Service oder der Anforderung anwenden.

Sie können beispielsweise Samplings deaktivieren und alle Anfragen für Aufrufe verfolgen, die den Status ändern oder Benutzerkonten oder Transaktionen bearbeiten. Für große, schreibgeschützte Aufrufe wie Abfragen im Hintergrund, Zustandsprüfungen oder Anschlusswartung können Sie eine niedrige Samplingrate einstellen und erhalten dennoch genügend Daten, um auftretende Probleme zu erkennen.

Weitere Informationen finden Sie unter Konfigurieren von Samplingregeln in der X-Ray .

Ablaufverfolgungs-Header

Alle Anforderungen werden bis zu einem konfigurierbaren Minimum verfolgt. Wenn dieses Minimum erreicht ist, wird ein Prozentsatz der Anforderungen nachverfolgt, um unnötige Kosten zu vermeiden. Die Samplingentscheidung und die Ablaufverfolgungs-ID werden HTTP-Anforderungen in Ablaufverfolgungs-Headern mit der Bezeichnung X-Amzn-Trace-Id hinzugefügt. Der erste X-Ray-integrierte Service, auf den die Anforderung trifft, fügt einen Ablaufverfolgungs-Header hinzu, der vom X-Ray-SDK gelesen und in die Antwort aufgenommen wird.

Beispiel Ablaufverfolgungs-Header mit Stammablaufverfolgungs-ID und Samplingentscheidung

X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Sampled=1
Sicherheit des Ablaufverfolgungs-Headers

Ein Ablaufverfolgungs-Header kann aus dem X-Ray-SDK stammen,AWSService oder die Kundenanfrage. Ihre Anwendung kann X-Amzn-Trace-Id aus eingehenden Anforderungen entfernen, um Probleme zu vermeiden, die von Benutzern verursacht werden, die ihren Anforderungen Ablaufverfolgungs-IDs oder Samplingentscheidungen hinzufügen.

Der Ablaufverfolgungs-Header kann auch eine übergeordnete Segment-ID enthalten, wenn die Anforderung von einer instrumentierten Anwendung stammte. Wenn Ihre Anwendung beispielsweise eine nachgelagerte HTTP-Web-API mit einem instrumentierten HTTP-Client aufruft, fügt das X-Ray-SDK die ID des Segments für die ursprüngliche Anforderung dem Ablaufverfolgungs-Header der nachgelagerten Anforderung hinzu. Eine instrumentierte Anwendung, die die nachgelagerte Anforderung verarbeitet, kann die übergeordnete Segment-ID erfassen, um die beiden Anforderungen zu verbinden.

Beispiel Ablaufverfolgungs-Header mit Stammablaufverfolgungs-ID, übergeordnete Segment-ID und Samplingentscheidung

X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1

Filterausdrücke

Selbst mit Sampling generiert eine komplexe Anwendung eine Fülle von Daten. Die AWS X-Ray-Konsole bietet eine benutzerfreundliche Ansicht der Service-Grafik. Sie zeigt Status- und Leistungsinformationen, mit denen Sie Probleme und Möglichkeiten zur Optimierung Ihrer Anwendung ermitteln können. Für die erweiterte Ablaufverfolgung können Sie Details der Ablaufverfolgungen für einzelne Anforderungen anzeigen oder Filterausdrücke verwenden, um Ablaufverfolgungen in Bezug auf bestimmte Pfade oder Benutzer zu suchen.


        Anzeigen einzelner Ablaufverfolgungen für einzelne Anforderungen

Gruppen

X-Ray erweitert Filterausdrücke und unterstützt auch die Gruppenfunktion. Mit einem Filterausdruck können Sie die Kriterien definieren, nach denen Ablaufverfolgungen in der Gruppe akzeptiert werden sollen.

Sie können die Gruppe nach Name oder nach Amazon-Ressourcenname (ARN) aufrufen, um ein eigenes Service-Diagramm zu erstellen, Zusammenfassungen zu verfolgen undAmazon CloudWatch-Metriken. Sobald eine Gruppe erstellt wurde, werden eingehende Ablaufverfolgungen anhand der imX-RayService. Metrikenfür die NummerAblaufverfolgungen, die mit den einzelnen Kriterien übereinstimmen, werden jede Minute in CloudWatch veröffentlicht.

Durch das Aktualisieren des Filterausdrucks einer Gruppe werden die bereits aufgezeichneten Daten nicht geändert. Die Aktualisierung gilt nur für nachfolgende Ablaufverfolgungen. Dies kann dazu führen, dass im Diagramm neue und alte Ausdrücke zusammengeführt werden. Um dies zu vermeiden, löschen Sie die aktuelle Gruppe und erstellen Sie eine neue.

Anmerkung

Gruppen werden anhand der Anzahl der abgerufenen Ablaufverfolgungen, die dem Filterausdruck entsprechen, in Rechnung gestellt. Weitere Informationen finden Sie unter AWS X-Ray Preise.

Weitere Informationen zu Gruppen finden Sie unterKonfigurieren von Gruppen in der X-ay-Konsoleaus.

Anmerkungen und Metadaten

Wenn Sie Ihre Anwendung instrumentieren, zeichnet das X-Ray-SDK Informationen zu eingehenden und ausgehenden Anforderungen auf.AWSverwendete Ressourcen und die Anwendung selbst. Sie können dem Segmentdokument weitere Informationen hinzufügen, wie etwa Anmerkungen und Metadaten. Anmerkungen und Metadaten werden auf der Trace-Ebene aggregiert und können jedem Segment oder Teilsegment hinzugefügt werden.

Anmerkungen sind einfache Schlüssel-Wert-Paare, die zur Verwendung mit Filterausdrücken indiziert sind. Berücksichtigen Sie Anmerkungen, um Daten zur Gruppierung von Ablaufverfolgungen in der Konsole zu verwenden, oder wenn Sie die GetTraceSummaries-API aufrufen.

X-Rayindiziert bis zu 50 Anmerkungen pro Ablaufverfolgung.

Metadaten sind Schlüssel-Wert-Paare mit Werten aller Art (darunter Objekte und Listen), jedoch ohne Indizierung. Verwenden Sie Metadaten zum Aufzeichnen von Daten in der Ablaufverfolgung, die nicht zur Ablaufsuche erforderlich sind.

Sie können Anmerkungen und Metadaten in den Segment- oder Untersegment-Details in der X-Ray-Konsole anzeigen.


        Anmerkungen und Metadaten können in den Segment- oder Untersegment-Details in der X-Ray-Konsole angezeigt werden.

Fehler und Ausnahmen

X-Ray verfolgt Fehler, die in Ihrem Anwendungscode auftreten, und Fehler, die von nachgelagerten Services zurückgegeben werden. Fehler sind wie folgt kategorisiert.

  • Error— Client-Fehler (400er-Fehler)

  • Fault— Server-Fehler (500er-Fehler)

  • Throttle— Ablehnungsfehler (429 — Zu viele Anfragen)

Wenn eine Ausnahme auftritt, während Ihre Anwendung eine instrumentierte Anforderung verarbeitet, zeichnet das X-Ray-SDK Details über die Ausnahme auf, einschließlich Stacktrace, sofern verfügbar. Sie können Ausnahmen anzeigen unterSegmentdetailsin der X-Ray-Konsole.