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 empfängt Daten von Diensten als Segmente. X-Ray gruppiert dann Segmente, die eine gemeinsame Anfrage haben, in Traces. X-Ray verarbeitet die Traces, um ein Service-Diagramm zu generieren, das eine visuelle Darstellung Ihrer Anwendung bietet.
Konzepte
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
-
Die Anfrage — Methode, Clientadresse, Pfad, Benutzeragent
-
Die Antwort — Status, Inhalt
-
Die geleistete Arbeit — Start- und Endzeiten, Untersegmente
-
Auftretende Probleme — Fehler, Störungen und Ausnahmen, einschließlich der automatischen Erfassung von Ausnahmestapeln.
Das X-Ray SDK sammelt Informationen aus Anforderungs- und Antwort-Headern, dem Code in Ihrer Anwendung und Metadaten zu den AWS Ressourcen, auf denen es ausgeführt wird. Sie wählen die zu sammelnden Daten aus, indem Sie Ihre Anwendungskonfiguration oder Ihren Code so ändern, dass eingehende Anfragen, Downstream-Anfragen und AWS SDK-Clients berücksichtigt werden.
Weitergeleitete Anfragen
Wenn ein Load Balancer oder ein anderer Vermittler eine Anfrage an Ihre Anwendung weiterleitet, wird die X-Ray Client-IP aus dem X-Forwarded-For Header in der Anfrage und nicht aus der Quell-IP im IP-Paket übernommen. Die Client-IP, die für eine weitergeleitete Anfrage aufgezeichnet wird, kann gefälscht sein und sollte daher nicht als vertrauenswürdig eingestuft werden.
Sie können das X-Ray SDK verwenden, um zusätzliche Informationen wie Anmerkungen und Metadaten aufzuzeichnen. Weitere Details über die Struktur und die Informationen, die in Segmenten und Untersegmenten aufgezeichnet werden, finden Sie unter AWS X-Ray Dokumente segmentieren. Segmentdokumente können bis zu 64 kB groß sein.
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 Aufruf einer AWS-Service, einer externen HTTP-API oder einer SQL-Datenbank enthalten. Sie können sogar beliebige Untersegmente definieren, um spezifische Funktionen oder Codezeilen in Ihrer Anwendung zu instrumentieren.
Für Services, die keine eigenen Segmente senden, X-Ray verwendet Amazon DynamoDB Untersegmente, um abgeleitete Segmente und Downstream-Knoten auf der Trace-Map zu generieren. 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 instrumentierten AWS SDK-Client aufrufen, zeichnet das SDK ein Untersegment für diesen Aufruf auf X-Ray . DynamoDB sendet kein Segment, daher enthalten das abgeleitete Segment im Trace, der DynamoDB-Knoten im Service-Graph und die Kante zwischen Ihrem Service und DynamoDB alle Informationen aus dem Untersegment.
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.
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 ein Service-Diagramm zu generieren. Jede AWS Ressource, an die Daten gesendet werden, X-Ray wird als Dienst im Diagramm angezeigt. 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.
Namen der Dienste
Die Namen eines Segments name sollten mit dem Domänennamen oder dem logischen Namen des Dienstes übereinstimmen, der das Segment generiert. Dies wird jedoch nicht durchgesetzt. Jede Anwendung, die dazu berechtigt ist, PutTraceSegments kann 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 das Service-Diagramm, um eine Visualisierung oder Servicekarte zu generieren.
X-Ray Kombiniert bei einer verteilten Anwendung Knoten aller Dienste, die Anfragen mit derselben Trace-ID verarbeiten, in einem einzigen Dienstdiagramm. 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 Microservice (eine AWS Lambda Funktion) aufruft, um mithilfe einer Bibliothek einen zufälligen Namen zu generieren. Node.js Das X-Ray SDK für Java generiert die Trace-ID und bezieht sie in Lambda-Aufrufe ein. Lambda sendet Tracing-Daten und übergibt die Trace-ID an die Funktion. Das X-Ray SDK für verwendet die Trace-ID Node.js auch zum Senden von Daten. Daher werden Knoten für die API, den Lambda-Service und die Lambda-Funktion alle als separate, aber verbundene Knoten auf der Trace-Map angezeigt.
Die Daten des Service-Diagramms werden 30 Tage lang aufbewahrt.
Ablaufverfolgungen
Eine Ablaufverfolgungs-ID verfolgt den Weg einer Anforderung durch Ihre Anwendung. Eine Ablaufverfolgung sammelt alle von einer einzelnen Anforderung generierten Segmente. Bei dieser Anforderung handelt es sich in der Regel um eine HTTP GET- oder POST-Anforderung, die einen Load Balancer durchläuft, Ihren Anwendungscode trifft und Downstream-Aufrufe an andere AWS Dienste oder externe Web-APIs generiert. 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.
Informationen zur
Sampling
Um eine effiziente Ablaufverfolgung zu gewährleisten und eine repräsentative Stichprobe der Anfragen bereitzustellen, die Ihre Anwendung bearbeitet, wendet das X-Ray SDK einen Stichprobenalgorithmus an, um zu ermitteln, welche Anfragen nachverfolgt werden. Standardmäßig zeichnet das X-Ray SDK jede Sekunde die erste Anfrage und fünf Prozent aller weiteren Anfragen auf.
Um zu vermeiden, dass bei den ersten Schritten Servicegebühren anfallen, ist die Standard-Samplingrate konservativ. Sie können die standardmäßige Stichprobenregel so X-Ray konfigurieren, dass sie geändert wird, und zusätzliche Regeln konfigurieren, die das Sampling auf der Grundlage der Eigenschaften des Dienstes oder der Anfrage anwenden.
Beispielsweise möchten Sie möglicherweise das Sampling deaktivieren und alle Anfragen für Aufrufe verfolgen, die den Status oder die Verarbeitung von Benutzern oder Transaktionen ändern. 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.
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-integrated Dienst, auf den die Anfrage trifft, fügt einen Tracing-Header hinzu, der vom X-Ray SDK gelesen und in der Antwort enthalten ist.
Beispiel Ablaufverfolgungs-Header mit Stammablaufverfolgungs-ID und Samplingentscheidung
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1Sicherheit des Ablaufverfolgungs-Headers
Ein Tracing-Header kann aus der X-Ray SDK- AWS-Service, einer oder der Client-Anfrage stammen. 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 Downstream-HTTP-Web-API mit einem instrumentierten HTTP-Client aufruft, fügt das X-Ray SDK die Segment-ID für die ursprüngliche Anfrage zum Tracing-Header der Downstream-Anfrage 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=1Lineagekann von Lambda und anderen AWS-Services als Teil ihrer Verarbeitungsmechanismen an den Trace-Header angehängt werden und sollte nicht direkt verwendet werden.
Beispiel Tracing-Header mit Lineage
X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1;Lineage=25:a87bd80c:1Filterausdrücke
Selbst mit Sampling generiert eine komplexe Anwendung eine Fülle von Daten. Die AWS X-Ray Konsole bietet eine leicht zu navigierende Ansicht des Service-Diagramms. 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.
Gruppen
Durch die Erweiterung von Filterausdrücken wird X-Ray auch die Gruppenfunktion unterstützt. Mit einem Filterausdruck können Sie Kriterien definieren, nach denen Ablaufverfolgungen in der Gruppe akzeptiert werden sollen.
Sie können die Gruppe mit ihrem Namen oder mit dem Amazon-Ressourcennamen (ARN) aufrufen, um ein eigenes Servicediagramm, Trace-Zusammenfassungen und CloudWatch Amazon-Metriken zu generieren. Sobald eine Gruppe erstellt wurde, werden eingehende Traces mit dem Filterausdruck der Gruppe verglichen, während sie im X-Ray Service gespeichert sind. Metriken für die Anzahl der Traces, die den einzelnen Kriterien entsprechen, werden im CloudWatch Minutentakt 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 unterGruppen konfigurieren.
Anmerkungen und Metadaten
Wenn Sie Ihre Anwendung instrumentieren, zeichnet das X-Ray SDK Informationen über eingehende und ausgehende Anfragen, die verwendeten AWS Ressourcen und die Anwendung selbst auf. 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-Ray indexiert bis zu 50 Anmerkungen pro Trace.
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 im Fenster mit den Segment- oder Untersegmentdetails auf der Seite mit den Trace-Details in der Konsole anzeigen. CloudWatch
Fehler und Ausnahmen
X-Ray verfolgt Fehler, die in Ihrem Anwendungscode auftreten, und Fehler, die von nachgelagerten Diensten zurückgegeben werden. Fehler sind wie folgt kategorisiert.
-
Error— Client-Fehler (Fehler der Serie 400) -
Fault— Serverfehler (Fehler der Serie 500) -
Throttle— Drosselungsfehler (429 zu viele Anfragen)
Wenn eine Ausnahme auftritt, während Ihre Anwendung eine instrumentierte Anfrage bearbeitet, zeichnet das X-Ray SDK Details zur Ausnahme auf, einschließlich des Stack-Trace, falls verfügbar. Sie können Ausnahmen unter Segmentdetails in der X-Ray Konsole einsehen.