Tracciamento di query SQL con l'SDK X-Ray per Java - AWS X-Ray

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tracciamento di query SQL con l'SDK X-Ray per Java

Intercettori SQL

Instrumenta le query del database SQL aggiungendo l'intercettore X-Ray SDK for Java JDBC alla configurazione dell'origine dati.

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

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

Questi collettori si trovano rispettivamente nei sottomoduli aws-xray-recorder-sql-postgres e aws-xray-recorder-sql-mysql. Implementano org.apache.tomcat.jdbc.pool.JdbcInterceptor e sono compatibili con i pool di connessione di Tomcat.

Nota

Gli intercettori SQL non registrano la query SQL stessa all'interno dei sottosegmenti per scopi di sicurezza.

Nel caso di Spring, aggiungi il collettore in un file delle proprietà e compila la sorgente dati con il DataSourceBuilder di Spring Boot.

Esempio 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
Esempio src/main/java/myapp/WebConfig.java - Origine dati
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(); } ... }

Per Tomcat, richiamasetJdbcInterceptors l'origine dati JDBC con un riferimento alla classe X-Ray SDK for Java.

Esempio src/main/myapp/model.java - Origine dati
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;");

La libreria Tomcat JDBC Data Source è inclusa nell'X-Ray SDK for Java, ma puoi dichiararla come una dipendenza fornita dal documento che la usi.

Esempio pom.xml- Origine dati JDBC
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>

Decoratore nativo di tracciamento SQL

  • Aggiungi aws-xray-recorder-sdk-sqlalle tue dipendenze.

  • Decora l'origine dei dati, la connessione o la dichiarazione del tuo database.

    dataSource = TracingDataSource.decorate(dataSource) connection = TracingConnection.decorate(connection) statement = TracingStatement.decorateStatement(statement) preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql) callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)