Verfolgung von SQL-Abfragen mit dem X-Ray-SDK SDK for 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.

Verfolgung von SQL-Abfragen mit dem X-Ray-SDK SDK for Java

Instrumentieren Sie SQL-Datenbankabfragen, indem Sie Ihrer Datenquellenkonfiguration das X-Ray-SDK für Java JDBC-Interceptor hinzufügen.

  • PostgreSQLcom.amazonaws.xray.sql.postgres.TracingInterceptor

  • MySQLcom.amazonaws.xray.sql.mysql.TracingInterceptor

Diese Interceptors befinden sich im aws-xray-recorder-sql-postgres- bzw. aws-xray-recorder-sql-mysql-Untermodul. Sie implementieren org.apache.tomcat.jdbc.pool.JdbcInterceptor und sind mit Tomcat-Verbindungspools kompatibel.

Anmerkung

Aus Sicherheitsgründen zeichnen die SQL Interceptors die SQL-Abfrage selbst innerhalb von Teilsegmenten nicht auf.

Für Spring fügen Sie der Eigenschaftendatei einen Interceptor hinzu und erstellen Sie die Datenquelle mit dem DataSourceBuilder von Spring Boot.

Beispiel src/main/java/resources/application.properties – PostgreSQL-JDBC-Interceptor

spring.datasource.continue-on-error=true spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=create-drop spring.datasource.jdbc-interceptors=com.amazonaws.xray.sql.postgres.TracingInterceptor spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL94Dialect

Beispiel src/main/java/myapp/WebConfig.java – Datenquelle

import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import javax.servlet.Filter; import javax.sql.DataSource; import java.net.URL; @Configuration @EnableAutoConfiguration @EnableJpaRepositories("myapp") public class RdsWebConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { logger.info("Initializing PostgreSQL datasource"); return DataSourceBuilder.create() .driverClassName("org.postgresql.Driver") .url("jdbc:postgresql://" + System.getenv("RDS_HOSTNAME") + ":" + System.getenv("RDS_PORT") + "/ebdb") .username(System.getenv("RDS_USERNAME")) .password(System.getenv("RDS_PASSWORD")) .build(); } ... }

Rufen Sie für Tomcat ansetJdbcInterceptorsin der JDBC-Datenquelle mit einer Referenz zur X-Ray-SDK SDK for Java Java-Klasse.

Beispiel src/main/myapp/model.java – Datenquelle

import org.apache.tomcat.jdbc.pool.DataSource; ... DataSource source = new DataSource(); source.setUrl(url); source.setUsername(user); source.setPassword(password); source.setDriverClassName("com.mysql.jdbc.Driver"); source.setJdbcInterceptors("com.amazonaws.xray.sql.mysql.TracingInterceptor;");

Die Tomcat JDBC-Datenquellenbibliothek ist im X-Ray-SDK SDK for Java enthalten, Sie können sie jedoch als bereitgestellte Abhängigkeit deklarieren, um zu dokumentieren, dass Sie sie verwenden.

Beispiel pom.xml – JDBC-Datenquelle

<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>