Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ablaufverfolgung von SQL-Abfragen mit dem X-Ray-SDK SDK for Java
SQL-Interzeptoren
Instrumentieren Sie SQL-Datenbankabfragen, indem Sie Ihrer Datenquellenkonfiguration den X-Ray SDK for Java JDBC Interceptor hinzufügen.
-
PostgreSQL –
com.amazonaws.xray.sql.postgres.TracingInterceptor
-
MySQL –
com.amazonaws.xray.sql.mysql.TracingInterceptor
Diese Interceptors befinden sich im aws-xray-recorder-sql-postgres- bzw. aws-xray-recorder-sql-mysql-Untermodul. Sie implementieren org.apache.tomcat.jdbc.pool.JdbcInterceptor
und sind mit Tomcat-Verbindungspools kompatibel.
Anmerkung
Aus Sicherheitsgründen zeichnen die SQL Interceptors die SQL-Abfrage selbst innerhalb von Teilsegmenten nicht auf.
Für Spring fügen Sie der Eigenschaftendatei einen Interceptor hinzu und erstellen Sie die Datenquelle mit dem DataSourceBuilder
von Spring Boot.
Beispiel 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
Beispiel src/main/java/myapp/WebConfig.java
– Datenquelle
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();
}
...
}
Rufen Sie für Tomcat die JDBC-Datenquelle mit einem VerweissetJdbcInterceptors
auf die Klasse X-Ray SDK for Java auf.
Beispiel src/main/myapp/model.java
– Datenquelle
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;")
;
Die Tomcat JDBC-Datenquellenbibliothek ist im X-Ray SDK for Java enthalten, aber Sie können sie als bereitgestellte Abhängigkeit deklarieren, um zu dokumentieren, dass Sie sie verwenden.
Beispiel pom.xml
– JDBC-Datenquelle
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
Nativer SQL-Tracing-Dekorator
-
Fügen
aws-xray-recorder-sdk-sql
Sie Ihre Abhängigkeiten hinzu. -
Dekoriere deine Datenquelle, Verbindung oder Anweisung in deiner Datenbank.
dataSource = TracingDataSource.decorate(dataSource) connection = TracingConnection.decorate(connection) statement = TracingStatement.decorateStatement(statement) preparedStatement = TracingStatement.decoratePreparedStatement(preparedStatement, sql) callableStatement = TracingStatement.decorateCallableStatement(callableStatement, sql)