AWS X-Ray-SDK für Java - 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.

AWS X-Ray-SDK für Java

Das X-Ray SDK for Java besteht aus einer Reihe von Bibliotheken für Java-Webanwendungen, die Klassen und Methoden zum Generieren und Senden von Ablaufverfolgungsdaten zum X-Ray-Daemon bereitstellen. Ablaufverfolgungsdaten enthalten Informationen zu eingehenden HTTP-Anforderungen, die von der Anwendung verarbeitet werden, sowie Aufrufen, die Anwendung an nachgelagerten Services mithilfe derAWSSDK, HTTP-Clients oder ein SQL-Datenbankkonnektor. Sie können Segmente auch manuell erstellen und Debug-Informationen Anmerkungen und Metadaten hinzufügen.

Das X-Ray SDK for Java ist ein Open-Source-Projekt. Sie können das Projekt auf GitHub verfolgen und Probleme und Pull-Anforderungen übermitteln: github.com/aws/aws-xray-sdk-java

Fügen Sie zunächst AWSXRayServletFilter als Servlet-Filter hinzu, um eingehende Anforderungen zu verfolgen. Ein Servlet-Filter erstellt ein Segment. Während das Segment geöffnet ist, können Sie die SDK-Client-Methoden nutzen, um dem Segment Informationen hinzuzufügen, Untersegmente zu erstellen und nachgelagerte Aufrufe rückzuverfolgen. Das SDK erfasst auch automatisch Ausnahmen, die Ihre Anwendung ausgibt, während das Segment geöffnet ist.

Ab Version 1.3 können Sie Ihre Anwendung mit aspekt-orientierter Programmierung (AOP) in Spring instrumentieren. Das bedeutet, dass Sie Ihre Anwendung instrumentieren können, während sie läuftAWS, ohne der Laufzeit Ihrer Anwendung Code hinzuzufügen.

Verwenden Sie als Nächstes das X-Ray SDK for Java, um IhreAWS SDK for Javaclients voneinschließlich des SDK Instrumentor Submodulsin Ihrer Build-Konfiguration. Wann immer Sie einen Downstream anrufenAWSService oder Ressource mit einem instrumentierten Client zeichnet SDK Informationen über den Aufruf in einem Untersegment auf.AWS-Services und die Ressourcen, auf die Sie innerhalb der Services zugreifen, erscheinen in der Service-Übersicht als nachgelagerte Knoten, um Ihnen bei der Identifikation von Fehlern und der Ablehnung von Problemen mit individuellen Verbindungen zu helfen.

Wenn Sie nicht alle Downstream-Anrufe anAWS-Services können Sie das Instrumentor-Untermodul weglassen und auswählen, welche -Clients instrumentiert werden sollen. Instrumentieren Sie einzelne Kunden durchHinzufügen einerTracingHandlerzu einemAWSSDK-Service-Client.

Andere X-Ray SDK for Java Submodule bieten Instrumentierung für nachgelagerte Aufrufe von HTTP-Web-APIs und SQL-Datenbanken. Sie haben folgende MöglichkeitenVerwenden Sie das X-Ray SDK for Java Java-Versionen vonHTTPClientundHTTPClientBuilderInstrumentiert im Apache HTTP-Submodul für Apache HTTP-Clients. Um SQL-Anfragen zu instrumentieren, fügen Sie der Datenquelle den SDK-Interceptor hinzu.

Nachdem Sie das SDK verwendet haben, können Sie das Verhalten nachKonfigurieren des Recorder- und Servlet-Filtersaus. Sie können Plugins zum Festhalten von Daten über die Datenverarbeitungsressourcen, auf denen Ihre Anwendung ausgeführt wird, hinzufügen, das Samplingverhalten durch Samplingregeln anpassen und Protokollebenen einrichten, um mehr oder weniger Informationen von dem SDK in Ihren Anwendungsprotokollen zu sehen.

Zeichnen Sie zusätzliche Informationen zu Anforderungen und den Aufgaben, die Ihre Anwendung ausführt, in Anmerkungen und Metadaten auf. Anmerkungen sind einfache Schlüsselwertpaare, die für die Verwendung mit Filterausdrücken indiziert werden, damit Sie nach Ablaufverfolgen mit bestimmten Daten suchen können. Metadateneinträge sind weniger einschränkend und können ganze Objekte und Arrays aufzeichnen – alle Daten, die in eine JSON zusammengefasst werden können.

Anmerkungen und Metadaten

Anmerkungen und Metadaten sind beliebiger Text, den Sie Segmenten mit dem X-Ray SDK hinzufügen. Anmerkung werden für die Verwendung mit Filterausdrücken indiziert. Metadaten werden nicht indiziert, können aber im Rohsegment mit der X-Ray-Konsole oder API angezeigt werden. Jeder, dem Sie Lesezugriff auf X-Ray gewähren, kann diese Daten anzeigen.

Wenn Sie viele instrumentierte Clients in Ihrem Code haben, kann ein einzelnes Anfragesegment viele Untersegmente enthalten, eines für jeden Aufruf mit einem instrumentierten Client. Sie können Untersegmente organisieren und gruppieren, indem Sie Client-Aufrufe in benutzerdefinierten Untersegmenten zusammenfassen. Sie können ein benutzerdefiniertes Untersegment für eine ganze Funktion oder eine Code-Abschnitt erstellen und Metadaten und Anmerkungen im Untersegment festhalten, anstatt alles im übergeordneten Segment aufzuzeichnen.

Untermodule

Sie können das X-Ray SDK for Java von Maven herunterladen. Das X-Ray SDK for Java ist nach Anwendungsfall in Untermodule aufgeteilt, mit einer Stückliste für die Versionsverwaltung:

Wenn Sie Maven oder Gradle verwenden, um Ihre Anwendung zu erstellen,Fügen Sie das X-Ray SDK for Java Ihrer Build-Konfiguration hinzuaus.

Referenzdokumentation zu den SDK-Klassen und -Methoden finden Sie unterAWS X-RayReferenz zu SDK for Java APIaus.

Voraussetzungen

Das X-Ray SDK for Java 8 oder höher erfordert Java 8 oder höher, Servlet API 3, dasAWSSDK und Jackson.

Das SDK hängt von den folgenden Bibliotheken zur Kompilierungs- und Laufzeit ab:

  • AWSSDK for Java Version 1.11.398 oder höher

  • Servlet API 3.1.0

Diese Abhängigkeiten werden in der pom.xml-Datei des SDK deklariert und automatisch eingefügt, wenn Sie Maven oder Gradle für die Build-Erstellung verwenden.

Wenn Sie eine Bibliothek verwenden, die im X-Ray SDK for Java enthalten ist, müssen Sie die mitgelieferte Version verwenden. Wenn Sie beispielsweise bereits zur Laufzeit von Jackson abhängen und für diese Abhängigkeit JAR-Dateien in Ihre Bereitstellung aufnehmen, müssen Sie diese JAR-Dateien entfernen, da das SDK JAR eigene Versionen von Jackson-Bibliotheken umfasst.

Abhängigkeitsmanagement

Das X-Ray SDK for Java ist bei Maven erhältlich:

  • Gruppecom.amazonaws

  • Artefaktaws-xray-recorder-sdk-bom

  • Version2.11.0

Wenn Sie Ihre Anwendung mit Maven erstellen, fügen Sie das SDK als Abhängigkeit in Ihrer pom.xml-Datei hinzu.

Beispiel pom.xml - Abhängigkeiten

<dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-bom</artifactId> <version>2.11.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-core</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-apache-http</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-aws-sdk</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-aws-sdk-instrumentor</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-sql-postgres</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-xray-recorder-sdk-sql-mysql</artifactId> </dependency> </dependencies>

Für Gradle fügen Sie das SDK als Kompilierungszeitabhängigkeit in Ihrer build.gradle-Datei hinzu.

Beispiel build.gradle – Abhängigkeiten

dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") compile("com.amazonaws:aws-java-sdk-dynamodb") compile("com.amazonaws:aws-xray-recorder-sdk-core") compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk") compile("com.amazonaws:aws-xray-recorder-sdk-aws-sdk-instrumentor") compile("com.amazonaws:aws-xray-recorder-sdk-apache-http") compile("com.amazonaws:aws-xray-recorder-sdk-sql-postgres") compile("com.amazonaws:aws-xray-recorder-sdk-sql-mysql") testCompile("junit:junit:4.11") } dependencyManagement { imports { mavenBom('com.amazonaws:aws-java-sdk-bom:1.11.39') mavenBom('com.amazonaws:aws-xray-recorder-sdk-bom:2.11.0') } }

Wenn Sie Elastic Beanstalk verwenden, um Ihre Anwendung bereitzustellen, können Sie Maven oder Gradle verwenden, um die Build-Erstellung bei jeder Bereitstellung für die Instance vorzunehmen, statt ein großes Archiv zu erstellen und hochzuladen, das alle Abhängigkeiten enthält. Für ein Beispiel, bei dem Gradle verwendet wird, sehen Sie sich die Beispielanwendung an.