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
catatan
Pemberitahuan SDK/Daemon Pemeliharaan X-Ray - Pada 25 Februari 2026, AWS SDKs/Daemon X-Ray akan memasuki mode pemeliharaan, di mana AWS akan membatasi rilis X-Ray SDK dan Daemon untuk mengatasi masalah keamanan saja. Untuk informasi selengkapnya tentang garis waktu dukungan, lihatGaris waktu Dukungan X-Ray SDK dan Daemon. Kami merekomendasikan untuk bermigrasi ke OpenTelemetry. Untuk informasi lebih lanjut tentang migrasi ke OpenTelemetry, lihat Migrasi dari instrumentasi X-Ray ke instrumentasi. OpenTelemetry
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.PostgreSQL94Dialectcontoh 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 Penelusuran SQL Asli
-
Tambahkan
aws-xray-recorder-sdk-sqlke dependensi Anda. -
Hiasi sumber data database, koneksi, atau pernyataan Anda.
dataSource = TracingDataSource.decorate(dataSource) connection = TracingConnection.decorate(connection) statement = TracingStatement.decorateStatement(statement) preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql) callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)