gpt4 book ai didi

java - 我可以在没有 Tomcat 或 Spring 的情况下使用 AWS-XRay 跟踪 MySQL 查询吗?

转载 作者:行者123 更新时间:2023-12-03 02:44:04 25 4
gpt4 key购买 nike

我正在 AWS Lambda 中运行一些 SQL 查询,并希望利用 AWS-XRay 的跟踪功能来获取有关这些调用的更多详细信息。

This documentation显示了 Spring 和 Tomcat 的配置示例,但在我明显的无服务器且应该是轻量级的 Lambda 中使用这两种方法都没有意义。以下是我目前建立联系的方式:

public Connection getDatabaseConnection(String jdbcUrl, String dbUser, String dbPassword) throws SQLException
{
return DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);
}

try (Connection connection = getDatabaseConnection(getJdbcUrl(), getDbUser(), getDbPassword()))
{
try(ResultSet results = connection.createStatement().executeQuery("SELECT stuff FROM whatever LIMIT 1))
{
return (results.getLong(1));
}
}

有没有办法在我的用例中利用 AWS-XRay SQL 跟踪?

最佳答案

我认为一种方法是使用 MySQL 语句拦截器: https://github.com/spullara/mysql-connector-java/blob/master/src/main/java/com/mysql/jdbc/StatementInterceptor.java

您可以在 preProcess() 方法中使用 AWSXRay.beginSubsegment(),然后在 postProcess() 方法中使用 AWSXRay.endSubsegment()。

将是 AWS X-Ray SDK for Java 的一个很好的补充这是开源的。万一你让它工作了。

X-Ray 基于 spring 的实现引用:DataSource based intereceptor

您可以使用statementinterceptors属性作为连接URL的一部分来拦截语句,如下所述: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html

更新我的队友指出,StatementInterceptor 的新版本已经可用: https://github.com/spullara/mysql-connector-java/blob/master/src/main/java/com/mysql/jdbc/StatementInterceptorV2.java您可能想使用它。

关于java - 我可以在没有 Tomcat 或 Spring 的情况下使用 AWS-XRay 跟踪 MySQL 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49638813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com