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 abzielt, z. B. die AWS SDK HTTP Apache-Clients oder SQL -Clients.

  • 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, die verwendet werden können, um Ihre Anwendung für die Röntgenverfolgung zu instrumentieren.

Instrumentierung Ihrer Anwendung mit der Distro für AWS OpenTelemetry

Die AWS Distribution für 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-DateienAPIs, Bibliotheken und Agenten zur Erfassung verteilter Traces und Metriken. Dieses Toolkit ist eine Distribution von OpenTelemetry Upstream-KomponentenSDKs, einschließlich Agenten für automatische Instrumentierung und Kollektoren, 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 OpenSearch Service senden. AWS X-Ray

Die Verwendung von X-Ray mit ADOT erfordert zwei Komponenten: eine, die für die Verwendung mit X-Ray OpenTelemetry SDKaktiviert ist, und die AWS Distro for OpenTelemetry Collector, die für die Verwendung mit X-Ray aktiviert ist. Weitere Informationen zur Verwendung der AWS Distribution für OpenTelemetry AWS X-Ray und andere AWS-Services finden Sie in der 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 EC2 Amazon-Instances und lokalen Servern zu sammeln. CloudWatch Agentenversion 1.300025.0 und höher können Traces von OpenTelemetryunserem X-Ray-Client SDKs sammeln und an X-Ray senden. Wenn Sie den CloudWatch Agenten anstelle des AWS Distro for OpenTelemetry (ADOT) Collectors 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.

ADOTbeinhaltet Folgendes:

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

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

Anmerkung

Sie können jetzt W3C-Trace an X-Ray IDs 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 TracesIDs, 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 wird, müssen Sie AWS X-Ray Exporter Version 0.86.0 oder höher verwenden, die in ADOTCollector 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 abgelehnt wird. IDs

Instrumentieren Sie Ihre Anwendung mit AWS X-Ray SDKs

AWS X-Ray enthält eine Reihe von sprachspezifischen SDKs Funktionen, mit denen Sie Ihre Anwendung so einrichten können, dass sie Traces an X-Ray sendet. Jedes X-Ray SDK bietet Folgendes:

  • Interzeptoren, die Sie Ihrem Code hinzufügen können, um eingehende Anfragen zu verfolgen HTTP

  • Client-Handler zur Instrumentierung von AWS SDK Clients, die Ihre Anwendung verwendet, um andere aufzurufen AWS-Services

  • Ein HTTPClient zur Instrumentierung von Aufrufen an andere interne und externe HTTP Webdienste

X-Ray unterstützt SDKs 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, SDK sendet der JSON Segmentdokumente an einen Daemon-Prozess, der auf den UDP Datenverkehr wartet. Der X-Ray-Daemon puffert Segmente in einer Warteschlange und lädt sie stapelweise auf X-Ray hoch.

Die folgenden sprachspezifischen Optionen sind verfügbar: SDKs

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

Wahl zwischen AWS Distro for OpenTelemetry und X-Ray SDKs

Die SDKs im Lieferumfang von X-Ray enthaltenen Geräte sind Teil einer eng integrierten Instrumentierungslösung, die von angeboten wird 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-Schichten, 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 AWS X-Ray SDK zur Instrumentierung Ihrer Anwendung verwenden.

Wir empfehlen die Wahl eines Röntgengeräts SDK für die Instrumentierung Ihrer Anwendung, wenn Sie Folgendes benötigen:

  • Eine eng integrierte Lösung aus einer Hand

  • 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 Sie Node.js, Python, Ruby oder verwenden. NET