- Entwickler-Tools›
- AWS X-Ray›
- Häufig gestellte Fragen
Häufig gestellte Fragen – AWS X-Ray
Themen der Seite
AllgemeinesAllgemeines
Was ist AWS X-Ray?
AWS X-Ray hilft Entwicklern dabei verteilte Anwendungen, die z. B. über eine MicroServices-Architektur verfügen, zu analysieren und zu debuggen. Mit X-Ray verstehen Sie, wie die Anwendung und die ihr zugrunde liegenden Services Prozesse ausführen, um die Ursachen von Leistungsproblemen und Fehlern zu identifizieren und zu beheben. X-Ray bietet eine End-to-End-Ansicht der Anforderungen auf Ihrem Weg durch Ihre Anwendungon und zeigt eine Übersicht der Komponenten, die Ihren Anwendungen zugrundeliegen. Sie können mit X-Ray beide Anwendungen in der Entwicklung und in der Produktion analysieren, von einfachen dreistufigen Anwendungen bis hin zu komplexen Microservices-Anwendungen, die aus Tausenden von Services bestehen.
Weshalb sollte ich X-Ray verwenden?
Wenn Sie aktuell verteilte Anwendungen erstellen und ausführen, müssen Sie sich auf einen Prozess pro Service oder Pro Ressource verlassen, um Anforderungen für Ihre Anwendung zu verfolgen, während dieser verschiedene Komponenten durchläuft, aus denen Ihre Anwendung besteht. Dieses Problem wird durch die verschiedenen Protokollformate und Speichermedien in den unterschiedlichen Frameworks, Services und Ressourcen weiter verkompliziert, die Ihre Anwendung ausführt oder verwendet. Auf diese Weise ist es schwierig, die verschiedenen Datenteile in Beziehung zu setzen und ein End-to-End-Bild einer Anforderung zu erstellen, das vom Zeitpunkt des Ursprungs beim Endbenutzer oder Service bis zum Zeitpunkt reicht, an dem Ihre Anwendung eine Antwort zurückgibt. X-Ray bietet ein benutzerzentriertes Modell anstatt eines servicezentrierten oder ressourcenzentrierten Modells zur Erfassung von Daten im Bezug auf Anforderungen, die an Ihre Anwendung gestellt werden. Mit diesem Modell können Sie ein benutzerzentriertes Bild von Anforderungen erstellen, während diese sich durch Services und Ressourcen bewegen. Durch Korrelieren und Zusammenfassen von Daten in Ihrem Namen ermöglicht X-Ray es Ihnen, sich auf die Verbesserung der Erfahrung für die Endbenutzer Ihrer Anwendung zu konzentrieren.
Was kann ich mit X-Ray tun?
X-Ray erleichtert Ihnen folgende Aufgaben:
- Erstellen einer Service-Map – Durch Nachverfolgen der Anforderungen an Ihre Anwendung kann X-Ray eine Map der Services erstellen, die von Ihrer Anwendung genutzt werden. Auf diese Weise erhalten Sie eine Ansicht der Verbindungen unter den Services in Ihrer Anwendung und können eine Abhängigkeitsstruktur erstellen, Latenzen oder Fehler bei der Arbeit mit verschiedenen AWS-Availability Zones oder -Regionen erkennen, Services ins Visier nehmen, die nicht wie erwartet arbeiten, usw.
- Erkennen von Problemen und Fehlern – X-Ray kann Probleme oder Fehler in Ihrem Anwendungscode automatisch hervorheben, indem es den Antwortcode für jede Anforderung an Ihre Anwendung analysiert. Dies ermöglicht eine problemlose Fehlerbehebung bei Anwendungscodes, ohne dass das Problem oder der Fehler reproduziert werden muss.
- Erstellen Ihrer eigenen Analyse- und Visualisierungs-Apps – X-Ray bietet einen Satz von Abfrage-APIs, mit denen Sie Ihre eigenen Analyse- und Visualisierungs-Apps erstellen können, welche die Daten verwenden, die von X-Ray aufgezeichnet werden.
Kernkonzepte
Was ist ein Trace?
Ein X-Ray-Trace ist ein Satz von Datenpunkten mit derselben Trace-ID. Wenn ein Kunde zum Beispiel eine Anforderung an Ihre Anwendung stellt, wird dieser Anforderung eine eindeutige Trace-ID zugewiesen. Wenn die Anforderung die Services in Ihrer Anwendung durchläuft, übermitteln die Services die Informationen zu dieser Anforderung unter Verwendung dieser eindeutigen Trace-ID an X-Ray zurück. Die von jedem Service in Ihrer Anwendung an X-Ray zurückgeleitete Informationen ist ein Segment und ein Trace ist eine Sammlung von Segmenten.
Was ist ein Segment?
Ein X-Ray-Segment verkapselt alle Datenpunkte für eine einzelne Komponente (zum Beispiel einen Autorisierungsservice) der verteilten Anwendung. Segmente umfassen systemdefinierte und benutzerdefinierte Daten in Form von Annotationen und bestehen aus einem oder mehreren Teilsegmenten, die Remote-Aufrufe von dem Service repräsentieren. Wenn Ihre Anwendung zum Beispiel als Antwort auf eine Anforderung einen Aufruf an eine Datenbank übermittelt, erstellt sie ein Segment für diese Anforderung, wobei ein Teilsegment den Datenbankaufruf und sein Ergebnis darstellt. Das Teilsegment kann folgende Daten enthalten: Abfrage, verwendete Tabelle, Zeitstempel und Fehlerstatus.
Was ist eine Annotation?
Bei einer X-Ray-Annotation handelt es sich um systemdefinierte oder benutzerdefinierte Daten, die mit einem Segment verknüpft sind. Ein Segment kann mehrere Annotationen enthalten. Systemdefinierte Annotationen umfassen Daten, die von AWS-Services zum Segment hinzugefügt wurden, während es sich bei benutzerdefinierten Annotationen um Metadaten handelt, die von einem Entwickler zu einem Segment hinzugefügt wurden. So kann ein von Ihrer Anwendung erstelltes Segment automatisch mit Regionsdaten für AWS-Serviceaufrufe versehen werden, während Sie sich möglicherweise entscheiden, die Regionsdaten für Nicht-AWS-Services selbst hinzuzufügen.
Was sind Fehler?
X-Ray-Fehler sind System-Annotationen, die für einen Aufruf mit einem Segment verknüpft sind, der zu einer Fehlerantwort führt. Der Fehler umfasst die Fehlermeldung, den Stack-Trace und weitere Informationen (zum Beispiel, Versions- oder Commit-ID) zur Zuordnung des Fehlers zu einer Quelldatei.
Was ist Sampling?
Zur Bereitstellung einer leistungsfähigen und kostengünstigen Erfahrung erfasst X-Ray nicht für jede Anforderung Daten, die an eine Anwendung gesendet wird. Stattdessen werden Daten für eine statistisch signifikante Anzahl von Anforderungen erfasst. X-Ray sollte nicht als Audit oder Compliance-Tool verwendet werden, da es nicht für die Vollständigkeit der Daten garantieren kann.
Was ist der X-Ray-Daemon?
Der X-Ray-Daemon sammelt Traces und sendet sie an den X-Ray-Dienst zur Aggregation, Analyse und Speicherung. Der Daemon erleichtert es Ihnen, Daten an den X-Ray-Service zu senden, anstatt die APIs direkt zu verwenden.
Verwenden von AWS X-Ray
Was sind die ersten Schritte mit X-Ray?
Sie können mit X-Ray starten, indem Sie die X-Ray-Sprache SDK in Ihre Anwendung integrieren und den X-Ray-Daemon installieren. Weitere Informationen finden Sie im X-Ray-Benutzerhandbuch.
Welche Arten von Anwendungen kann ich mit X-Ray verwenden?
X-Ray kann mit verteilten Anwendungen jeder Größe verwendet werden, um sowohl synchrone Anforderungen als auch asynchrone Ereignisse zu verfolgen und Fehler zu beheben. So kann X-Ray beispielsweise verwendet werden, um Webanforderungen zu verfolgen, die an eine Webanwendung gerichtet wurden, oder asynchrone Ereignisse zu verfolgen, die Amazon SQS-Warteschlangen verwenden.
Welche Arten von AWS-Services kann ich mit X-Ray verwenden?
Sie können X-Ray mit Anwendungen verwenden, die unter EC2, ECS, Lambda, Amazon SQS, Amazon SNS und Elastic Beanstalk ausgeführt werden. Zusätzlich erfasst das X-Ray-SDK automatisch Metadaten für API-Aufrufe an AWS-Services, welche das AWS SDK verwenden. Außerdem bietet das X-Ray-SDK Add-ons für MySQL- und PostgreSQL-Treiber.
Welche Code-Änderungen muss ich an meiner Anwendung vornehmen, um X-Ray zu verwenden?
Wenn Sie Elastic Beanstalk verwenden, benötigen Sie die sprachenspezifischen X-Ray-Bibliotheken in Ihrem Anwendungscode. Für Anwendungen, die auf anderen AWS-Services wie EC2 oder ECS laufen, müssen Sie den X-Ray-Daemon installieren und Ihren Anwendungscode instrumentieren.
Stellt X-Ray eine API zur Verfügung?
Ja, X-Ray bietet einen Satz von APIs zur Integration von Anforderungsdaten, zum Abfragen von Traces und zum Konfigurieren des Service. Sie können die X-Ray-API zur Erstellung von Analysen und zur Visualisierung von Anwendungen zusätzlich zu den von X-Ray bereitgestellten Anwendungen verwenden.
Protokolliert AWS X-Ray Ereignisse in AWS CloudTrail?
Ja. X-Ray protokolliert alle API-Aufrufe als Verwaltungsereignisse. Es protokolliert auch Aufrufe von Traces als Datenereignisse, einschließlich PutTraceSegments, GetTimeSeriesServiceStatistics und weitere APIs. Datenereignisse werden standardmäßig nicht protokolliert. Um Datenereignisse zu protokollieren, müssen Sie CloudTrail oder Ihren Ereignisdatenspeicher so konfigurieren, dass sie erfasst werden.
Regionen
In welchen Regionen ist X-Ray verfügbar?
Weitere Informationen finden Sie unter Regionale Produkte und Services.
Kann ich mit X-Ray Anforderungen von Anwendungen oder Services verfolgen, die über mehrere Regionen verteilt sind?
Ja, Sie können mit X-Ray Anforderungen von Anwendungen oder Services verfolgen, die über mehrere Regionen verteilt sind. Die X-Ray-Daten sind lokal in der verarbeiteten Region gespeichert, jedoch mit ausreichend Informationen, damit Client-Anwendungen in der Lage sind, die Daten zu kombinieren und eine globale Ansicht der Traces bereitzustellen. Die Region-Annotation für AWS-Services werden automatisch hinzugefügt, jedoch müssen Kunden benutzerdefinierte Services einsetzen, um die regionale Annotation hinzuzufügen und den regionsübergreifenden Support zu verwenden.
Handhabung von Daten
Wie lange dauert es, bis Trace-Daten in X-Ray verfügbar sind?
An X-Ray gesendete Trace-Daten stehen im Allgemeinen innerhalb von 30 Sekunden nach Eingang beim Service zum Abrufen und Filtern zur Verfügung.
Wie weit zurück kann ich die Trace-Daten abfragen? Wie lange speichert X-Ray Trace-Daten?
X-Ray speichert Daten für die letzten 30 Tage. Auf diese Weise können Sie Trace-Daten abfragen, die 30 Tage zurückliegen.
Warum werden manchmal Teil-Traces angezeigt?
X-Ray versucht nach besten Kräften, vollständige Trace-Informationen anzuzeigen. In einigen Situationen (bei Konnektivitätsproblemen, Verzögerungen beim Empfangen der Segmente usw.) ist es möglich, dass von den X-Ray-APIs bereitgestellte Trace-Informationen nur teilweise vorhanden sind. In solchen Fällen kennzeichnet X-Ray Traces als unvollständig oder teilweise vorhanden.
Meine Anwendungskomponenten werden in ihren eigenen AWS-Konten ausgeführt. Kann ich X-Ray verwenden, um Daten über AWS-Konten hinweg zu sammeln?
Ja, der X-Ray-Daemon kann eine Rolle übernehmen, um Daten in einem anderen Konto als dem, in dem er läuft, zu veröffentlichen. Auf diese Weise können Sie Daten von verschiedenen Komponenten Ihrer Anwendung in einem zentralen Konto veröffentlichen.