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.
Nachverfolgung
Die Ablaufverfolgung beinhaltet die spezielle Verwendung von Protokollierungsinformationen über die Prozesse eines Programms. Die Erkenntnisse aus den Protokollen können Technikern helfen, einzelne Transaktionen zu debuggen und Engpässe zu identifizieren. Die Ablaufverfolgung kann automatisch oder mithilfe manueller Instrumente aktiviert werden.
Da eine Anwendung in verschiedene Dienste integriert ist, ist es wichtig, die Leistung der Anwendung und der zugrunde liegenden Dienste zu ermitteln. Tracing funktioniert mit Traces und Spans. Ein Trace ist der komplette Anforderungsprozess, und jeder Trace besteht aus Spans. Eine Spanne ist ein markiertes Zeitintervall und bezeichnet die Aktivität innerhalb der einzelnen Komponenten oder Dienste eines Systems. Ablaufverfolgungen geben einen Überblick darüber, was passiert, wenn eine Anfrage an eine Anwendung gestellt wird.
Bewerbungsteam
Anwendungsentwickler instrumentieren ihre Anwendungen, indem sie Trace-Daten für eingehende und ausgehende Anfragen und andere Ereignisse innerhalb der Anwendung zusammen mit Metadaten zu jeder Anfrage senden. Um Traces zu generieren, muss eine Anwendung so instrumentiert sein, dass sie Traces generiert. Die Instrumentierung kann automatisch oder manuell erfolgen.
Automatische Instrumentierung
Mithilfe der automatischen Instrumentierung
Bei der Bibliotheksinstrumentierung werden nur minimale Änderungen am Anwendungscode vorgenommen, um vorgefertigte Instrumentierung hinzuzufügen. Die Instrumentierung zielt auf bestimmte Bibliotheken oder Frameworks ab, z. B. das AWS SDK, Apache HTTP-Clients oder SQL-Clients.
Manuelle Instrumentierung
Bei diesem Ansatz fügen Anwendungsentwickler der Anwendung an jedem Ort, an dem sie Trace-Informationen sammeln möchten, Instrumentierungscode hinzu. Verwenden Sie beispielsweise aspektorientierte Programmierung (AOP), um Ablaufverfolgungsdaten zu sammeln. AWS X-Ray Entwickler können SDKs zur Instrumentierung ihrer Anwendungen verwenden.
Sampling
Trace-Daten werden häufig in großen Mengen generiert. Es ist wichtig, über einen Mechanismus zu verfügen, mit dem festgelegt werden kann, ob die Trace-Daten exportiert werden sollen oder nicht. Bei der Probenahme wird bestimmt, welche Daten exportiert werden sollen. Dies geschieht in der Regel, um Kosten zu sparen. Durch die Anpassung der Stichprobenregeln können Sie die Menge der aufgenommenen Daten steuern. Sie können auch das Sampling-Verhalten ändern, ohne Ihren Code zu ändern und erneut bereitzustellen. Es ist wichtig, die Abtastrate zu kontrollieren, um die richtige Anzahl an Traces zu erzeugen.
Anwendungsentwickler können die Traces mit Anmerkungen versehen, indem sie Metadaten als Schlüssel-Wert-Paare hinzufügen. Die Anmerkungen bereichern die Traces und helfen, die Filterung im Backend zu verfeinern.
DevOps Team
DevOps Techniker werden häufig gebeten, eine Ablaufverfolgungsumgebung für den Anwendungsentwickler einzurichten, um Traces für Infrastruktur und Anwendungen zu visualisieren. Bei der Einrichtung der Ablaufverfolgungsumgebung werden Trace-Daten aus verschiedenen Quellen gesammelt und zur Visualisierung an einen zentralen Speicher gesendet.
Das Backend für die Nachverfolgung
Ein Tracing-Backend ist ein Dienst, der Daten über Anfragen sammelt AWS X-Ray , die Ihre Anwendung bedient. Es bietet Tools, mit denen Sie diese Daten anzeigen, filtern und Einblicke in sie gewinnen können, um Probleme und Optimierungsmöglichkeiten zu identifizieren. Für jede verfolgte Anfrage an Ihre Anwendung können Sie detaillierte Informationen zu der Anfrage und Antwort sowie zu anderen Aufrufen einsehen, die Ihre Anwendung an nachgelagerte AWS Ressourcen, Microservices, Datenbanken und Web-APIs sendet.
Automatisieren der Ablaufverfolgung
Da verschiedene Anwendungen unterschiedliche Tracing-Anforderungen haben, ist es wichtig, die Konfiguration und den Betrieb der Tracing-Infrastruktur zu automatisieren. Verwenden Sie IaC-Tools, um das Backend der Tracing-Infrastruktur bereitzustellen.
Verwenden Sie CD-Pipelines, um Folgendes zu automatisieren:
-
Stellen Sie die Tracing-Infrastruktur bei Bedarf bereit und bauen Sie sie ab, wenn sie nicht benötigt wird.
-
Stellen Sie die Ablaufverfolgungskonfiguration anwendungsübergreifend bereit.
Tools zur Nachverfolgung
AWS stellt die folgenden Dienste für die Ablaufverfolgung und die zugehörige Visualisierung bereit:
-
AWS X-Ray empfängt Traces von Ihrer Anwendung, zusätzlich zu Traces von AWS Diensten, die Ihre Anwendung verwendet und die bereits in X-Ray integriert sind. Es gibt mehrere SDKs, Agenten und Tools, mit denen Sie Ihre Anwendung für die Röntgenverfolgung instrumentieren können. Weitere Informationen finden Sie in der AWS X-Ray -Dokumentation.
Entwickler können AWS X-Ray SDKs auch verwenden, um Traces an X-Ray zu senden. AWS X-Ray stellt SDKs fürGo,Java, Node.jsPython, .NET und bereit. Ruby Jedes X-Ray-SDK bietet Folgendes:
-
Interceptors, die Sie Ihrem Code hinzufügen können, um eingehende HTTP-Anforderungen nachzuverfolgen.
-
Client-Handler zur Instrumentierung von AWS SDK-Clients, die Ihre Anwendung verwendet, um andere AWS Dienste aufzurufen
-
Ein HTTP-Client zur Instrumentierung von Aufrufen an andere interne und externe HTTP-Webdienste
X-Ray-SDKs unterstützen auch die Instrumentierung von Aufrufen von SQL-Datenbanken, automatische AWS SDK-Client-Instrumentierung und andere Funktionen. Anstatt Trace-Daten direkt an X-Ray zu senden, sendet das SDK JSON-Segmentdokumente an einen Daemon-Prozess, der auf UDP-Verkehr wartet. Der X-Ray-Daemon puffert Segmente in einer Warteschlange und lädt sie stapelweise auf X-Ray hoch. Weitere Informationen zur Instrumentierung Ihrer Anwendung mithilfe eines X-Ray-SDK finden Sie in der X-Ray-Dokumentation.
-
-
Amazon OpenSearch Service ist ein AWS verwalteter Service zum Ausführen und Skalieren von OpenSearch Clustern, der zum zentralen Speichern von Protokollen, Metriken und Traces verwendet werden kann. Das Beobachtbarkeits-Plug-In bietet ein einheitliche Erlebnis zum Erfassen und Überwachen von Metriken, Protokollen und Traces aus gängigen Datenquellen. Die Datenerfassung und -überwachung an einem zentralen Ort ermöglicht die vollständige Überwachung end-to-end Ihrer gesamten Infrastruktur. Informationen zur Implementierung finden Sie in der OpenSearch Servicedokumentation.
-
AWS Distro for OpenTelemetry (ADOT) ist eine AWS Distribution, die auf dem Projekt Cloud Native Computing Foundation (CNCF) basiert. OpenTelemetry ADOT bietet derzeit Unterstützung für automatische Instrumentierung für Java
und Python. Darüber hinaus unterstützt ADOT die automatische Instrumentierung von AWS Lambda Funktionen und ihren Downstream-Anfragen mithilfe Java von Node.js und Python Laufzeiten über ADOT Managed Lambda Layers. Entwickler können den ADOT-Collector verwenden, um Traces an verschiedene Backends zu senden, einschließlich Amazon AWS X-Ray OpenSearch Service. Ein Referenzbeispiel für die Instrumentierung Ihrer Anwendung mithilfe des ADOT SDK finden Sie in der Dokumentation.
Ein Referenzbeispiel für die Verwendung des ADOT SDK zum Senden von Daten an Amazon OpenSearch Service finden Sie in der OpenSearch Servicedokumentation. Ein Referenzbeispiel dafür, wie Sie Ihre auf Amazon EKS ausgeführte Anwendung instrumentieren können, finden Sie im Blogbeitrag Erfassung von Metriken und Traces mithilfe von Amazon EKS-Add-Ons für AWS Distro for OpenTelemetry
.