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.
-
PostgreSQL –
com.amazonaws.xray.sql.postgres.TracingInterceptor
-
MySQL –
com.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-sql
alle 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)