Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menelusuri kueri SQL dengan X-Ray SDK for Java
Pencegat SQL
Instrumen kueri basis data SQL dengan menambahkan X-Ray SDK for Java JDBC pencegat untuk konfigurasi sumber data Anda.
-
PostgreSQL –
com.amazonaws.xray.sql.postgres.TracingInterceptor
-
MySQL –
com.amazonaws.xray.sql.mysql.TracingInterceptor
Pencegat ini berada di aws-xray-recorder-sql-postgres dan submodul aws-xray-recorder-sql-mysql, masing-masing. Mereka menerapkan org.apache.tomcat.jdbc.pool.JdbcInterceptor
dan kompatibel dengan koneksi kolam Tomcat.
catatan
SQL pencegat tidak mencatat kueri SQL itu sendiri dalam subsegmen untuk tujuan keamanan.
Untuk Spring, tambahkan pencegat dalam file properti dan membangun sumber data dengan Spring Boot DataSourceBuilder
.
contoh src/main/java/resources/application.properties
- PostgreSQL JDBC pencegat
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
contoh src/main/java/myapp/WebConfig.java
- Sumber data
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();
}
...
}
Untuk Tomcat, panggilan setJdbcInterceptors
pada sumber data JDBC dengan referensi ke kelas X-Ray SDK for Java.
contoh src/main/myapp/model.java
- Sumber data
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;")
;
Pustaka Sumber Data JDBC Tomcat disertakan dalam X-Ray SDK for Java, tetapi Anda dapat mendeklarasikannya sebagai dependensi yang disediakan untuk dokumen yang Anda gunakan.
contoh pom.xml
- Sumber data JDBC.
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
Dekorator Pelacakan SQL Asli
-
Tambahkan
aws-xray-recorder-sdk-sql
ke dependensi Anda. -
Hiasi sumber data database Anda, koneksi, atau pernyataan.
dataSource = TracingDataSource.decorate(dataSource) connection = TracingConnection.decorate(connection) statement = TracingStatement.decorateStatement(statement) preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql) callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)