From 223f36c6cb08833cc018064d251a5b0fe3b8544c Mon Sep 17 00:00:00 2001 From: chenghua Date: Thu, 17 Mar 2022 14:43:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=A0=87=E7=AD=BE=E6=89=A9?= =?UTF-8?q?=E5=B1=95=EF=BC=9A=E6=96=B0=E5=A2=9Emysql=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E8=AE=BE=E7=BD=AE=20#18?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collector/collect/database/JdbcCommonCollect.java | 10 ++++++---- .../usthe/common/entity/job/protocol/JdbcProtocol.java | 4 ++++ manager/src/main/resources/define/app/mysql.yml | 5 +++++ manager/src/main/resources/define/param/mysql.yml | 8 +++++++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java b/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java index 1331b26..977157e 100644 --- a/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java +++ b/collector/src/main/java/com/usthe/collector/collect/database/JdbcCommonCollect.java @@ -52,9 +52,11 @@ public class JdbcCommonCollect extends AbstractCollect { } JdbcProtocol jdbcProtocol = metrics.getJdbc(); String databaseUrl = constructDatabaseUrl(jdbcProtocol); + //获取查询语句/获取链接最大超时时间 + int timeout = metrics.getJdbc().getTimeout().intValue(); try { Statement statement = getConnection(jdbcProtocol.getUsername(), - jdbcProtocol.getPassword(), databaseUrl); + jdbcProtocol.getPassword(), databaseUrl,timeout); switch (jdbcProtocol.getQueryType()) { case QUERY_TYPE_ONE_ROW: queryOneRow(statement, jdbcProtocol.getSql(), metrics.getAliasFields(), builder, startTime); @@ -95,7 +97,7 @@ public class JdbcCommonCollect extends AbstractCollect { } - private Statement getConnection(String username, String password, String url) throws Exception { + private Statement getConnection(String username, String password, String url,Integer timeout) throws Exception { CacheIdentifier identifier = CacheIdentifier.builder() .ip(url) .username(username).password(password).build(); @@ -106,7 +108,7 @@ public class JdbcCommonCollect extends AbstractCollect { try { statement = jdbcConnect.getConnection().createStatement(); // 设置查询超时时间10秒 - statement.setQueryTimeout(10); + statement.setQueryTimeout(timeout); // 设置查询最大行数1000行 statement.setMaxRows(1000); } catch (Exception e) { @@ -130,7 +132,7 @@ public class JdbcCommonCollect extends AbstractCollect { Connection connection = DriverManager.getConnection(url, username, password); statement = connection.createStatement(); // 设置查询超时时间10秒 - statement.setQueryTimeout(10); + statement.setQueryTimeout(timeout); // 设置查询最大行数1000行 statement.setMaxRows(1000); JdbcConnect jdbcConnect = new JdbcConnect(connection); diff --git a/common/src/main/java/com/usthe/common/entity/job/protocol/JdbcProtocol.java b/common/src/main/java/com/usthe/common/entity/job/protocol/JdbcProtocol.java index 19a4685..642326a 100644 --- a/common/src/main/java/com/usthe/common/entity/job/protocol/JdbcProtocol.java +++ b/common/src/main/java/com/usthe/common/entity/job/protocol/JdbcProtocol.java @@ -35,6 +35,10 @@ public class JdbcProtocol { * 数据库 */ private String database; + /** + * 超时时间 + */ + private Long timeout; /** * 数据库类型 mysql oracle ... */ diff --git a/manager/src/main/resources/define/app/mysql.yml b/manager/src/main/resources/define/app/mysql.yml index bbc3784..4083869 100644 --- a/manager/src/main/resources/define/app/mysql.yml +++ b/manager/src/main/resources/define/app/mysql.yml @@ -16,6 +16,10 @@ configmap: type: 2 - key: database type: 1 + - key: timeout + type: 0 + required: false + defaultValue: 3000 - key: url type: 1 # 指标组列表 @@ -61,6 +65,7 @@ metrics: username: ^_^username^_^ password: ^_^password^_^ database: ^_^database^_^ + timeout: ^_^timeout^_^ # SQL查询方式: oneRow, multiRow, columns queryType: columns # sql diff --git a/manager/src/main/resources/define/param/mysql.yml b/manager/src/main/resources/define/param/mysql.yml index bc1dd3a..a7e4fa1 100644 --- a/manager/src/main/resources/define/param/mysql.yml +++ b/manager/src/main/resources/define/param/mysql.yml @@ -27,4 +27,10 @@ param: - field: url name: URL type: text - required: false \ No newline at end of file + required: false + - field: timeout + name: 超时时间 + type: number + required: false + defaultValue: 3 + placeholder: '请输入mysql可接受的超时时间' \ No newline at end of file From 63d03c7ac651b82f6774779a8a9ecb9a4d0fa5c6 Mon Sep 17 00:00:00 2001 From: chenghua Date: Thu, 17 Mar 2022 14:46:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=A0=87=E7=AD=BE=E6=89=A9?= =?UTF-8?q?=E5=B1=95=EF=BC=9A=E6=96=B0=E5=A2=9Emysql=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E9=BB=98=E8=AE=A4=E7=A7=92=E6=95=B0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=20#18?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/src/main/resources/define/app/mysql.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/src/main/resources/define/app/mysql.yml b/manager/src/main/resources/define/app/mysql.yml index 4083869..951f0b5 100644 --- a/manager/src/main/resources/define/app/mysql.yml +++ b/manager/src/main/resources/define/app/mysql.yml @@ -19,7 +19,7 @@ configmap: - key: timeout type: 0 required: false - defaultValue: 3000 + defaultValue: 3 - key: url type: 1 # 指标组列表