Instrumentierung Ihrer Anwendung für AWS X-Ray - 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.

Instrumentierung Ihrer Anwendung für AWS X-Ray

Die Instrumentierung Ihrer Anwendung umfasst das Senden von Trace-Daten für eingehende und ausgehende Anfragen und andere Ereignisse innerhalb Ihrer Anwendung sowie Metadaten zu jeder Anfrage. Es gibt verschiedene Instrumentierungsoptionen, aus denen Sie je nach Ihren speziellen Anforderungen wählen oder diese kombinieren können:

  • auto Instrumentierung — Instrumentierung Ihrer Anwendung ohne Codeänderungen, typischerweise durch Konfigurationsänderungen, Hinzufügen eines Agenten für automatische Instrumentierung oder andere Mechanismen.

  • Bibliotheksinstrumentierung — Nehmen Sie minimale Änderungen am Anwendungscode vor, um vorgefertigte Instrumentierung hinzuzufügen, die auf bestimmte Bibliotheken oder Frameworks wie das AWS SDK, Apache HTTP-Clients oder SQL-Clients abzielt.

  • Manuelle Instrumentierung — fügen Sie Ihrer Anwendung an jeder Stelle, an die Sie Trace-Informationen senden möchten, Instrumentierungscode hinzu.

Es gibt mehrere SDKs, Agenten und Tools, mit denen Sie Ihre Anwendung für das X-Ray-Tracing instrumentieren können.

Instrumentierung Ihrer Anwendung mit der Distro für AWS OpenTelemetry

The AWS Distro for OpenTelemetry (ADOT) ist eine AWS Distribution, die auf dem Projekt Cloud Native Computing Foundation (CNCF) basiert. OpenTelemetry OpenTelemetry bietet einen einzigen Satz von Open-Source-APIs, -Bibliotheken und -Agenten zur Erfassung verteilter Traces und Metriken. Bei diesem Toolkit handelt es sich um eine Distribution von OpenTelemetry Upstream-Komponenten wie SDKs, Agenten für automatische Instrumentierung und Collectors, die von getestet, optimiert, gesichert und unterstützt werden. AWS

Mit ADOT können Techniker ihre Anwendungen einmal instrumentieren und korrelierte Metriken und Traces an mehrere AWS Überwachungslösungen wie Amazon CloudWatch und Amazon AWS X-Ray OpenSearch Service senden.

Die Verwendung von X-Ray mit ADOT erfordert zwei Komponenten: ein OpenTelemetry SDK, das für die Verwendung mit X-Ray aktiviert ist, und das AWS Distro for OpenTelemetry Collector, das für die Verwendung mit X-Ray aktiviert ist. Weitere Informationen zur Verwendung der AWS Distribution für OpenTelemetry AWS X-Ray und andere finden Sie in der AWS-Services Dokumentation zur AWS Distribution. OpenTelemetry

Weitere Informationen zur Sprachunterstützung und -verwendung finden Sie unter AWS Observability on. GitHub

Anmerkung

Sie können den CloudWatch Agenten jetzt verwenden, um Metriken, Protokolle und Traces von Amazon EC2 EC2-Instances und lokalen Servern zu sammeln. CloudWatch Agentenversion 1.300025.0 und höher können Traces von OpenTelemetryoder X-Ray-Client-SDKs sammeln und an X-Ray senden. Wenn Sie den CloudWatch Agenten anstelle des AWS Distro for OpenTelemetry (ADOT) Collector oder des X-Ray-Daemons zum Sammeln von Traces verwenden, können Sie die Anzahl der verwalteten Agenten reduzieren. Weitere Informationen finden Sie unter dem Thema CloudWatch Agent im CloudWatch Benutzerhandbuch.

ADOT umfasst Folgendes:

ADOT bietet derzeit Unterstützung für automatische Instrumentierung für Java und Python. Darüber hinaus ermöglicht ADOT die automatische Instrumentierung von AWS Lambda-Funktionen und ihren Downstream-Anfragen mithilfe von Java-, Node.js- und Python-Laufzeiten über ADOT Managed Lambda Layers.

ADOT SDKs für Java und Go unterstützen zentralisierte X-Ray-Sampling-Regeln. Wenn Sie Unterstützung für X-Ray-Sampling-Regeln in anderen Sprachen benötigen, sollten Sie die Verwendung eines AWS X-Ray SDK in Betracht ziehen.

Anmerkung

Sie können jetzt W3C-Trace-IDs an X-Ray senden. Standardmäßig OpenTelemetry haben Traces, die mit erstellt wurden, ein Trace-ID-Format, das auf der W3C Trace Context-Spezifikation basiert. Dies unterscheidet sich von dem Format für Trace-IDs, die mit einem X-Ray-SDK oder durch AWS Dienste, die in X-Ray integriert sind, erstellt werden. Um sicherzustellen, dass Trace-IDs im W3C-Format von X-Ray akzeptiert werden, müssen Sie AWS X-Ray Exporter Version 0.86.0 oder höher verwenden, die in ADOT Collector Version 0.34.0 und höher enthalten ist. Frühere Versionen des Exporters validieren Trace-ID-Zeitstempel, was dazu führen kann, dass W3C-Trace-IDs zurückgewiesen werden.

Instrumentierung Ihrer Anwendung mit SDKs AWS X-Ray

AWS X-Ray enthält eine Reihe sprachspezifischer SDKs, mit denen Sie Ihre Anwendung so ausstatten können, dass sie Traces an X-Ray sendet. 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 aufzurufen AWS-Services

  • 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.

Die folgenden sprachspezifischen SDKs werden bereitgestellt:

X-Ray bietet derzeit Unterstützung für automatische Instrumentierung für Java.

Wahl zwischen den AWS SDKs Distro for OpenTelemetry und X-Ray

Die in X-Ray enthaltenen SDKs sind Teil einer eng integrierten Instrumentierungslösung von AWS. Das AWS Distro for OpenTelemetry ist Teil einer umfassenderen Branchenlösung, bei der X-Ray nur eine von vielen Tracing-Lösungen ist. Sie können die end-to-end Ablaufverfolgung in X-Ray mit beiden Methoden implementieren, aber es ist wichtig, die Unterschiede zu verstehen, um den für Sie nützlichsten Ansatz zu finden.

Wir empfehlen, Ihre Anwendung mit der AWS Distribution zu instrumentieren, OpenTelemetry wenn Sie Folgendes benötigen:

  • Die Möglichkeit, Traces an mehrere verschiedene Tracing-Backends zu senden, ohne Ihren Code erneut instrumentieren zu müssen

  • Support für eine große Anzahl von Bibliotheksinstrumenten für jede Sprache, verwaltet von der Community OpenTelemetry

  • Vollständig verwaltete Lambda-Ebenen, die alles zusammenfassen, was Sie für die Erfassung von Telemetriedaten benötigen, ohne dass Codeänderungen erforderlich sind, wenn Sie Java, Python oder Node.js verwenden

    Anmerkung

    AWS Distro for OpenTelemetry bietet einen einfacheren Einstieg in die Instrumentierung Ihrer Lambda-Funktionen. Aufgrund der gebotenen Flexibilität OpenTelemetry benötigt Ihre Lambda-Funktion jedoch zusätzlichen Speicher, und bei Aufrufen kann es zu einer Erhöhung der Kaltstart-Latenz kommen, was zu zusätzlichen Kosten führen kann. Wenn Sie für niedrige Latenzzeiten optimieren und keine erweiterten Funktionen wie dynamisch konfigurierbare Back-End-Ziele benötigen OpenTelemetry, sollten Sie das AWS X-Ray-SDK zur Instrumentierung Ihrer Anwendung verwenden.

Wir empfehlen, ein X-Ray-SDK für die Instrumentierung Ihrer Anwendung zu wählen, wenn Sie Folgendes benötigen:

  • Eine eng integrierte Lösung aus einem einzigen Anbieter

  • Integration mit zentralisierten X-Ray-Probenregeln, einschließlich der Möglichkeit, Sampling-Regeln von der X-Ray-Konsole aus zu konfigurieren und sie automatisch auf mehreren Hosts zu verwenden, wenn Node.js, Python, Ruby oder .NET verwendet werden