Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Suivi des requêtes SQL avec le kit SDK X-Ray pour Java
Instruction SQL
Instrumentez les requêtes de base de données SQL en ajoutant le SDK X-Ray pour l'intercepteur JDBC Java à la configuration de votre source de données.
-
PostgreSQL –
com.amazonaws.xray.sql.postgres.TracingInterceptor
-
MySQL –
com.amazonaws.xray.sql.mysql.TracingInterceptor
Ces intercepteurs se trouvent respectivement dans les sous-modules aws-xray-recorder-sql-postgres et aws-xray-recorder-sql-mysql. Ils implémentent org.apache.tomcat.jdbc.pool.JdbcInterceptor
et sont compatibles avec les groupes de connexion Tomcat.
Note
Les intercepteurs SQL n'enregistrent pas la requête SQL elle-même dans les sous-segments à des fins de sécurité.
Pour Spring, ajoutez l'intercepteur dans un fichier de propriétés et créez la source de données avec le DataSourceBuilder
de Spring Boot.
Exemple src/main/java/resources/application.properties
- Intercepteur JDBC PostgreSQL
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
Exemple src/main/java/myapp/WebConfig.java
- Source de données
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();
}
...
}
Pour Tomcat, faites appelsetJdbcInterceptors
à la source de données JDBC en faisant référence à la classe X-Ray SDK for Java.
Exemple src/main/myapp/model.java
- Source de données
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 bibliothèque de sources de données Tomcat JDBC est incluse dans le SDK X-Ray pour Java, mais vous pouvez la déclarer en tant que dépendance fournie au document que vous utilisez.
Exemple pom.xml
- Source de données JDBC
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
Décorateur de suivi SQL natif
-
Ajoutez
aws-xray-recorder-sdk-sql
à vos dépendances. -
Décorez la source de données, la connexion ou l'instruction de votre base de données.
dataSource = TracingDataSource.decorate(dataSource) connection = TracingConnection.decorate(connection) statement = TracingStatement.decorateStatement(statement) preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql) callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)