OPS04-BP05 Implementierung einer Transaktionsverfolgung
Implementieren Sie Ihren Anwendungscode und konfigurieren Sie Ihre Workload-Komponenten so, dass sie als Ergebnis einzelner logischer Operationen Ereignisse auslösen, die über verschiedene Bereiche Ihres Workloads hinweg konsolidiert werden. Erstellen Sie Karten, um zu sehen, wie Traces über Ihren Workload und Ihre Services ablaufen. Gewinnen Sie Erkenntnisse über die Beziehungen zwischen Komponenten und identifizieren und analysieren Sie Probleme. Verwenden Sie die erfassten Informationen, um zu bestimmen, wann eine Reaktion erforderlich ist, und um Sie bei der Identifizierung der Faktoren zu unterstützen, die zu einem Problem beitragen.
Gewünschtes Ergebnis:
-
Sammeln Sie Transaktions-Traces über Ihren Workload hinweg, um Erkenntnisse über die Beziehungen zwischen den Komponenten zu gewinnen.
-
Erstellen Sie Karten, um besser zu verstehen, wie Transaktionen und Ereignisse in Ihrem Workload ablaufen.
Typische Anti-Muster:
-
Sie haben eine serverlose Microservices-Architektur implementiert, die mehrere Konten umfasst. Ihre Kunden melden vorübergehende Leistungsprobleme. Sie sind nicht in der Lage, herauszufinden, welche Funktion oder Komponente verantwortlich ist, weil Ihnen eine Transaktionsverfolgung fehlt.
-
In Ihrem Workload gibt es einen Leistungsengpass. Da Ihnen die Transaktionsverfolgung fehlt, können Sie die Beziehung zwischen Ihren Anwendungskomponenten nicht ermitteln und den Engpass nicht identifizieren.
-
Die für Traces verwendete ID ist nicht global eindeutig, was bei der Analyse des Workload-Verhaltens zu einer Tracing-Kollision führt.
Vorteile der Nutzung dieser bewährten Methode:
-
Das Verständnis des Transaktionsablaufs innerhalb Ihres Workloads liefert Erkenntnisse über das erwartete Verhalten Ihrer Workload-Transaktionen.
-
Sie können Abweichungen vom erwarteten Verhalten Ihres Workloads erkennen und bei Bedarf darauf reagieren.
-
Sie können Transaktionen anhand ihrer eindeutigen generierten ID lokalisieren – unabhängig davon, wo sie generiert wurden.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: niedrig
Implementierungsleitfaden
Entwickeln Sie Ihre Anwendung und Ihren Workload so, dass Sie Informationen zum Transaktionsfluss über Systemkomponenten hinweg erhalten. Zu den Daten, die in die Transaktionen aufgenommen werden müssen, gehören eine global eindeutige Transaktions-ID, die Transaktionsphase, die aktive Komponente und die Dauer bis zum Abschluss der Aktivität. Mithilfe dieser Informationen können Sie feststellen, was gerade bearbeitet wird, was bereits abgeschlossen wurde und welche Ergebnisse die abgeschlossenen Aktivitäten haben.
Kundenbeispiel
Bei AnyCompany Retail wird für alle Transaktionen eine global eindeutige UUID generiert. Diese UUID wird während der Transaktionen zwischen den Microservices weitergegeben. Die UUID wird verwendet, um Transaktions-Traces zu erstellen, wenn Benutzer mit dem Workload interagieren. Mit den Traces wird eine Karte der Workload-Topologie erstellt, die zur Fehlerbehebung bei Workload-Problemen und zur Verbesserung der Leistung verwendet wird.
Implementierungsschritte
-
Instrumentieren Sie die Anwendungen in Ihrem Workload so, dass sie Transaktionsprotokolle generieren. Dazu können Sie eine eindeutige ID für jede Transaktion generieren und die ID zwischen Anwendungen weitergeben.
-
Sie können die Auto-Instrumentierung in der AWS Distro for OpenTelemetry
verwenden, um Traces in Ihre bestehenden Anwendungen zu implementieren, ohne Ihren Anwendungscode zu ändern.
-
-
Generieren Sie Karten der Topologie Ihrer Anwendung. Verwenden Sie diese Karten, um die Leistung zu verbessern, Erkenntnisse zu gewinnen und die Fehlersuche zu erleichtern.
-
Mit AWS X-Ray können Sie Karten der Anwendungen in Ihrem Workload erstellen.
-
Grad des Aufwands für den Implementierungsplan: mittel. Die Implementierung von Transaktions-Traces kann einen moderaten Entwicklungsaufwand erforderlich machen.
Ressourcen
Zugehörige bewährte Methoden:
-
OPS04-BP01 Implementieren einer Anwendungstelemetrie - Die Anwendungstelemetrie umfasst die Transaktionsverfolgung und -verarbeitung und muss zuerst implementiert werden.
Zugehörige Dokumente:
-
Discover application issues and get notifications with AWS X-Ray Insights
(Probleme in Anwendungen entdecken und Benachrichtigungen mit AWS X-Ray-Insights erhalten) -
How Wealthfront utilizes AWS X-Ray to analyze and debug distributed applications
(So nutzt Wealthfront AWS X-Ray, um verteilte Anwendungen zu analysieren und zu debuggen) -
New for AWS Distro for OpenTelemetry – Tracing Support is Now Generally Available
(Neu für AWS Distro for OpenTelemetry: Tracing-Support ist jetzt allgemein verfügbar)
Zugehörige Videos:
-
AWS re:Invent 2018: Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324)
(Umfassender Überblick zu AWS X-Ray: Überwachen moderner Anwendung (DEV324)) -
AWS re:Invent 2022 – Building observable applications with OpenTelemetry (BOA310)
(AWS re:Invent 2022 – Entwicklung überwachbarer Anwendungen mit OpenTelemetry (BOA310)) -
AWS re:Invent 2022 – Observability the open-source way (COP301-R)
(AWS re:Invent 2022 – Beobachtbarkeit nach dem Open-Source-Prinzip (COP301-R)) -
Capturing Trace Data with the AWS Distro for OpenTelemetry
(Erfassen von Trace-Daten mit der AWS Distro for OpenTelemetry) -
Optimize Application Performance with AWS X-Ray
(Anwendungsleistung mit AWS X-Ray steigern)
Zugehörige Beispiele:
-
AWS X-Ray Multi API Gateway Tracing Example
(AWS X-Ray Multi-API-Gateway Tracing-Beispiel)
Zugehörige Services: