This is an automated email from the ASF dual-hosted git repository.
impactcn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 69a950120b [feature] clickhouse support ttl (#5032)
69a950120b is described below
commit 69a950120b2e3e17ddc6101b010bfb87592a83d8
Author: Misaya295 <[email protected]>
AuthorDate: Thu Aug 17 18:08:35 2023 +0800
[feature] clickhouse support ttl (#5032)
* clickhouse support ttl
* clickhouse support ttl
* fix ci
---
db/init/mysql/schema.sql | 3 +++
db/init/og/create-table.sql | 3 +++
db/init/oracle/schema.sql | 7 +++++++
db/init/pg/create-table.sql | 3 +++
db/upgrade/2.6.0-upgrade-2.6.1-mysql.sql | 7 ++++++-
db/upgrade/2.6.0-upgrade-2.6.1-og.sql | 6 ++++++
db/upgrade/2.6.0-upgrade-2.6.1-oracle.sql | 13 +++++++++++++
db/upgrade/2.6.0-upgrade-2.6.1-pg.sql | 5 +++++
.../clickhouse/client/ClickHouseLogCollectClient.java | 8 +++++++-
.../clickhouse/config/ClickHouseLogCollectConfig.java | 18 ++++++++++++++++++
.../clickhouse/constant/ClickHouseLoggingConstant.java | 1 +
.../clickhouse/LoggingClickHousePluginTest.java | 3 +++
.../client/ClickHouseLogCollectClientTest.java | 2 +-
.../config/ClickHouseLogCollectConfigTest.java | 12 ++++++++++++
.../LoggingClickHousePluginDataHandlerTest.java | 2 +-
15 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/db/init/mysql/schema.sql b/db/init/mysql/schema.sql
index f743f8ef5b..f0f2db8b9e 100644
--- a/db/init/mysql/schema.sql
+++ b/db/init/mysql/schema.sql
@@ -1112,6 +1112,7 @@ INSERT INTO `plugin_handle` VALUES
('1529402613204172773', '38', 'username', 'us
INSERT INTO `plugin_handle` VALUES ('1529402613204172774', '38', 'password',
'password', 2, 3, 7,
'{\"required\":\"0\",\"defaultValue\":\"\",\"rule\":\"\"}', '2022-12-30
00:17:21.150', '2022-12-30 00:17:21.150');
INSERT INTO `plugin_handle` VALUES ('1529402613204172775', '38', 'engine',
'engine', 3, 3, 8,
'{\"required\":\"0\",\"defaultValue\":\"MergeTree\",\"rule\":\"\"}',
'2022-12-30 00:17:21.150', '2022-12-30 00:17:21.150');
INSERT INTO `plugin_handle` VALUES ('1529402613204172776', '38',
'clusterName', 'clusterName', 3, 3, 9,
'{\"required\":\"1\",\"defaultValue\":\"cluster\",\"rule\":\"\"}', '2022-12-30
00:17:21.150', '2022-12-30 00:17:21.150');
+INSERT INTO `plugin_handle` VALUES ('1529402613204172777', '38', 'ttl', 'ttl',
3, 3, 10, '{\"required\":\"0\",\"defaultValue\":\"30\"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
INSERT INTO `plugin_handle` VALUES ('1570590990341775360', '39', 'endpoint',
'casdoor endpoint', 2, 3, 0, '{\"required\":\"1\",\"rule\":\"\"}', '2022-09-27
12:00:00', '2022-09-27 12:00:00');
@@ -1842,6 +1843,8 @@ INSERT INTO `shenyu_dict` VALUES ('1572621912915369984',
'maskStatus', 'MASK_STA
INSERT INTO `shenyu_dict` VALUES ('1572621976689762304', 'maskStatus',
'MASK_STATUS_TRUE', 'mask', 'true', '', 0, 1, '2022-09-22 00:21:11.924',
'2022-09-22 00:21:11.924');
INSERT INTO `shenyu_dict` VALUES ('1572621976689762305', 'engine', 'engine',
'ReplacingMergeTree', 'ReplacingMergeTree', '', 0, 1, '2022-09-22
00:21:11.924', '2022-09-22 00:21:11.924');
INSERT INTO `shenyu_dict` VALUES ('1572621976689762306', 'engine', 'engine',
'MergeTree', 'MergeTree', '', 1, 1, '2022-09-22 00:21:11.924', '2022-09-22
00:21:11.924');
+INSERT INTO `shenyu_dict` VALUES ('1572621976689762310', 'engine', 'engine',
'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '', 2, 1,
'2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO `shenyu_dict` VALUES ('1572621976689762311', 'engine', 'engine',
'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01 11:14:15',
'2023-08-16 11:15:14');
INSERT INTO `shenyu_dict` VALUES ('1630761573833920512', 'mapType', 'mapType',
'all', 'all', '', 1, 1, '2023-03-01 10:47:11', '2023-03-01 10:47:11');
INSERT INTO `shenyu_dict` VALUES ('1630761984393367552', 'mapType', 'mapType',
'field', 'field', '', 1, 1, '2023-03-01 10:48:49', '2023-03-01 10:48:49');
INSERT INTO `shenyu_dict` VALUES ('1679002911061737472', 'discoveryMode',
'DISCOVERY_MODE', 'zookeeper',
'{"baseSleepTimeMilliseconds":"1000","maxRetries":"3","maxSleepTimeMilliseconds":"1000","connectionTimeoutMilliseconds":"1000","sessionTimeoutMilliseconds":"1000","namespace":"","digest":null}',
'discoery mode to link zookeeper', 0, 1,'2023-03-01 10:48:49', '2023-03-01
10:48:49');
diff --git a/db/init/og/create-table.sql b/db/init/og/create-table.sql
index fea2d79ad8..b0b198478f 100644
--- a/db/init/og/create-table.sql
+++ b/db/init/og/create-table.sql
@@ -1231,6 +1231,7 @@ INSERT INTO "public"."plugin_handle" VALUES
('1529403902783524998', '38', 'port'
INSERT INTO "public"."plugin_handle" VALUES ('1529403902783524999', '38',
'database', 'database', 2, 2, 0,
'{"required":"0","defaultValue":"shenyu-gateway","placeholder":"database"}',
'2022-06-30 21:00:00', '2022-06-30 21:00:00');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172800', '38',
'username', 'username', 2, 2, 0,
'{"required":"0","defaultValue":"foo","placeholder":"username"}', '2022-06-30
21:00:00', '2022-06-30 21:00:00');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172801', '38',
'password', 'password', 2, 2, 0,
'{"required":"0","defaultValue":"bar","placeholder":"password"}', '2022-06-30
21:00:00', '2022-06-30 21:00:00');
+INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172777', '38',
'ttl', 'ttl', 3, 3, 10, '{"required":"0","defaultValue":"30"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172802', '8',
'loadBalance', 'loadStrategy', 3, 2, 3,
'{"defaultValue":"roundRobin","rule":""}', '2022-06-30 21:00:00', '2022-06-30
21:00:00');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172803', '10',
'flowRuleMaxQueueingTimeMs', 'flowRuleMaxQueueingTimeMs', 1, 2, 6,
'{"required":"0","defaultValue":"500"}', '2022-06-30 21:00:00', '2022-06-30
21:00:00');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172804', '10',
'flowRuleWarmUpPeriodSec', 'flowRuleWarmUpPeriodSec', 1, 2, 6,
'{"required":"0","defaultValue":"10"}', '2022-06-30 21:00:00', '2022-06-30
21:00:00');
@@ -2061,6 +2062,8 @@ INSERT INTO "public"."shenyu_dict" VALUES
('1572621912915369984', 'maskStatus',
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762304',
'maskStatus', 'MASK_STATUS_TRUE', 'mask', 'true', '', 0, 1, '2022-09-22
00:21:11.924', '2022-09-22 00:21:11.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762305', 'engine',
'engine', 'ReplacingMergeTree', 'ReplacingMergeTree', '', 0, 1, '2022-09-22
00:21:11.924', '2022-09-22 00:21:11.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762306', 'engine',
'engine', 'MergeTree', 'MergeTree', '', 1, 1, '2022-09-22 00:21:11.924',
'2022-09-22 00:21:11.924');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762310', 'engine',
'engine', 'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '',
2, 1, '2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762311', 'engine',
'engine', 'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01
11:14:15', '2023-08-16 11:15:14');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762307',
'loadBalance', 'LOAD_BALANCE', 'leastActive', 'leastActive', 'leastActive', 3,
1, '2023-01-17 18:02:52.924', '2023-01-17 18:02:52.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1630761573833920512', 'mapType',
'mapType', 'all', 'all', '', 1, 1, '2023-03-01 10:47:11', '2023-03-01
10:47:11');
INSERT INTO "public"."shenyu_dict" VALUES ('1630761984393367552', 'mapType',
'mapType', 'field', 'field', '', 1, 1, '2023-03-01 10:48:49', '2023-03-01
10:48:49');
diff --git a/db/init/oracle/schema.sql b/db/init/oracle/schema.sql
index d071f998a4..81a7751493 100644
--- a/db/init/oracle/schema.sql
+++ b/db/init/oracle/schema.sql
@@ -1092,6 +1092,11 @@ VALUES ('1545812228228259841', 'engine', 'engine',
'ReplacingMergeTree', 'Replac
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
VALUES ('1545812228228259842', 'engine', 'engine', 'MergeTree', 'MergeTree',
'', 1, 1);
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
+values ('1572621976689762310', 'engine', 'engine',
'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '', 2, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
+VALUES ('1572621976689762311', 'engine', 'engine', 'ReplicatedMergeTree',
'ReplicatedMergeTree', '', 3, 1);
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ INTO SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
VALUES ('1545812228228259843', 'loadBalance', 'LOAD_BALANCE', 'leastActive',
'leastActive', 'leastActive', 3, 1);
@@ -1972,6 +1977,8 @@ values ('1518229897214468261', '38', 'engine', 'engine',
3, 3, 8, '{"required":"
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type))
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT,
EXT_OBJ)
VALUES ('1529402613204172862', '38', 'clusterName', 'clusterName', 3, 3, 9,
'{"required":"1","defaultValue":"cluster"}');
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type))
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT,
EXT_OBJ)
+values ('1529402613204172777', '38', 'ttl', 'ttl', 3, 3, 10,
'{\"required\":\"0\",\"defaultValue\":\"30\"}');
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type))
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT,
EXT_OBJ)
VALUES ('1529402613204172863', '43', 'projectId', 'projectId', 2, 3, 0,
'{"required":"1","rule":""}');
diff --git a/db/init/pg/create-table.sql b/db/init/pg/create-table.sql
index 7a60b18e49..3472e3a5e5 100644
--- a/db/init/pg/create-table.sql
+++ b/db/init/pg/create-table.sql
@@ -1264,6 +1264,7 @@ INSERT INTO "public"."plugin_handle" VALUES
('1529402613204172833', '38', 'usern
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172834', '38',
'password', 'password', 2, 3, 7, '{"required":"1","defaultValue":""}',
'2023-01-02 00:17:21.150', '2023-01-02 00:17:21.150');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172835', '38',
'engine', 'engine', 3, 3, 8, '{"required":"0","defaultValue":"MergeTree"}',
'2023-01-02 00:17:21.150', '2023-01-02 00:17:21.150');
INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172836', '38',
'clusterName', 'clusterName', 3, 3, 9,
'{"required":"1","defaultValue":"cluster"}', '2023-01-02 00:17:21.150',
'2023-01-02 00:17:21.150');
+INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172737', '38',
'ttl', 'ttl', 3, 3, 10, '{"required":"0","defaultValue":"30"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
INSERT INTO "public"."plugin_handle" VALUES ('1570590990341775360', '39',
'endpoint', 'casdoor endpoint', 2, 3, 0, '{"required":"1","rule":""}',
'2022-09-16 09:50:46', '2022-09-16 09:50:46');
@@ -2060,6 +2061,8 @@ INSERT INTO "public"."shenyu_dict" VALUES
('1572621912915369984', 'maskStatus',
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762304',
'maskStatus', 'MASK_STATUS_TRUE', 'mask', 'true', '', 0, 1, '2022-09-22
00:21:11.924', '2022-09-22 00:21:11.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762305', 'engine',
'engine', 'ReplacingMergeTree', 'ReplacingMergeTree', '', 0, 1, '2022-09-22
00:21:11.924', '2022-09-22 00:21:11.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762306', 'engine',
'engine', 'MergeTree', 'MergeTree', '', 1, 1, '2022-09-22 00:21:11.924',
'2022-09-22 00:21:11.924');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762310', 'engine',
'engine', 'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '',
2, 1, '2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762311', 'engine',
'engine', 'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01
11:14:15', '2023-08-16 11:15:14');
INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762307',
'loadBalance', 'LOAD_BALANCE', 'leastActive', 'leastActive', 'leastActive', 3,
1, '2023-01-17 18:02:52.924', '2023-01-17 18:02:52.924');
INSERT INTO "public"."shenyu_dict" VALUES ('1630761573833920512', 'mapType',
'mapType', 'all', 'all', '', 1, 1, '2023-03-01 10:47:11', '2023-03-01
10:47:11');
INSERT INTO "public"."shenyu_dict" VALUES ('1630761984393367552', 'mapType',
'mapType', 'field', 'field', '', 1, 1, '2023-03-01 10:48:49', '2023-03-01
10:48:49');
diff --git a/db/upgrade/2.6.0-upgrade-2.6.1-mysql.sql
b/db/upgrade/2.6.0-upgrade-2.6.1-mysql.sql
index 19c0446058..fd724059e3 100755
--- a/db/upgrade/2.6.0-upgrade-2.6.1-mysql.sql
+++ b/db/upgrade/2.6.0-upgrade-2.6.1-mysql.sql
@@ -15,5 +15,10 @@
-- limitations under the License.
-- this file works for MySQL.
-
INSERT INTO `shenyu_dict` VALUES ('1629402613195884213', 'operator',
'OPERATOR', 'isBlank', 'isBlank', 'isBlank', 10, 1, '2023-08-10 11:11:18',
'2023-08-10 11:11:18');
+
+--- clickhouse plugin
+INSERT INTO `plugin_handle` VALUES ('1529402613204172777', '38', 'ttl', 'ttl',
3, 3, 10, '{\"required\":\"0\",\"defaultValue\":\"30\"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
+INSERT INTO `shenyu_dict` VALUES ('1572621976689762310', 'engine', 'engine',
'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '', 2, 1,
'2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO `shenyu_dict` VALUES ('1572621976689762311', 'engine', 'engine',
'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01 11:14:15',
'2023-08-16 11:15:14');
+---- clickhouse plugin end
diff --git a/db/upgrade/2.6.0-upgrade-2.6.1-og.sql
b/db/upgrade/2.6.0-upgrade-2.6.1-og.sql
index 4f6a0e2685..dcedc40847 100644
--- a/db/upgrade/2.6.0-upgrade-2.6.1-og.sql
+++ b/db/upgrade/2.6.0-upgrade-2.6.1-og.sql
@@ -17,3 +17,9 @@
-- this file works for og.
INSERT INTO "public"."shenyu_dict" VALUES ('1629403902796107811', 'operator',
'OPERATOR', 'isBlank', 'isBlank', 'isBlank', 10, 1, '2023-08-10 11:11:18',
'2023-08-10 11:11:18');
+
+--- clickhouse plugin
+INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172777', '38',
'ttl', 'ttl', 3, 3, 10, '{"required":"0","defaultValue":"30"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762310', 'engine',
'engine', 'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '',
2, 1, '2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762311', 'engine',
'engine', 'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01
11:14:15', '2023-08-16 11:15:14');
+--- clickhouse plugin end
\ No newline at end of file
diff --git a/db/upgrade/2.6.0-upgrade-2.6.1-oracle.sql
b/db/upgrade/2.6.0-upgrade-2.6.1-oracle.sql
index 1c96892b4f..f6d1bc3dd5 100755
--- a/db/upgrade/2.6.0-upgrade-2.6.1-oracle.sql
+++ b/db/upgrade/2.6.0-upgrade-2.6.1-oracle.sql
@@ -18,3 +18,16 @@
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
values ('1618229897206079499', 'operator', 'OPERATOR', 'isBlank', 'isBlank',
'isBlank', 8, 1);
+
+--- clickhouse plugin
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type))
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT,
EXT_OBJ)
+values ('1529402613204172777', '38', 'ttl', 'ttl', 3, 3, 10,
'{\"required\":\"0\",\"defaultValue\":\"30\"}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
+values ('1572621976689762310', 'engine', 'engine',
'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '', 2, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name))
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT,
ENABLED)
+VALUES ('1572621976689762311', 'engine', 'engine', 'ReplicatedMergeTree',
'ReplicatedMergeTree', '', 3, 1);
+---- clickhouse plugin end
+
+
diff --git a/db/upgrade/2.6.0-upgrade-2.6.1-pg.sql
b/db/upgrade/2.6.0-upgrade-2.6.1-pg.sql
index ceb0afe48e..f8a33b745b 100755
--- a/db/upgrade/2.6.0-upgrade-2.6.1-pg.sql
+++ b/db/upgrade/2.6.0-upgrade-2.6.1-pg.sql
@@ -18,3 +18,8 @@
INSERT INTO "public"."shenyu_dict" VALUES ('1629403902796107811', 'operator',
'OPERATOR', 'isBlank', 'isBlank', 'isBlank', 10, 1, '2023-08-10 11:11:18',
'2023-08-10 11:11:18');
+--- clickhouse plugin
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762310', 'engine',
'engine', 'ReplicatedReplicatedMergeTree', 'ReplicatedReplicatedMergeTree', '',
2, 1, '2023-03-01 11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."shenyu_dict" VALUES ('1572621976689762311', 'engine',
'engine', 'ReplicatedMergeTree', 'ReplicatedMergeTree', '', 3, 1, '2023-03-01
11:14:15', '2023-08-16 11:15:14');
+INSERT INTO "public"."plugin_handle" VALUES ('1529402613204172737', '38',
'ttl', 'ttl', 3, 3, 10, '{"required":"0","defaultValue":"30"}', '2023-03-01
11:14:15', '2023-08-16 11:15:14');
+---- clickhouse plugin end
\ No newline at end of file
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClient.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClient.java
index bc1ccdf2bd..cb6e3538db 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClient.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClient.java
@@ -51,6 +51,11 @@ public class ClickHouseLogCollectClient extends
AbstractLogConsumeClient<ClickHo
private String database;
+ /**
+ * consume logs.
+ * @param logs logs
+ * @throws Exception exception
+ */
@Override
public void consume0(@NonNull final List<ShenyuRequestLog> logs) throws
Exception {
if (CollectionUtils.isNotEmpty(logs)) {
@@ -120,6 +125,7 @@ public class ClickHouseLogCollectClient extends
AbstractLogConsumeClient<ClickHo
public void initClient0(@NonNull final
ClickHouseLogCollectConfig.ClickHouseLogConfig config) {
final String username = config.getUsername();
final String password = config.getPassword();
+ final String ttl = config.getTtl().isEmpty() ? "30" : config.getTtl();
database = config.getDatabase();
endpoint = ClickHouseNode.builder()
.host(config.getHost())
@@ -130,7 +136,7 @@ public class ClickHouseLogCollectClient extends
AbstractLogConsumeClient<ClickHo
client = ClickHouseClient.builder().build();
ClickHouseRequest<?> request =
client.connect(endpoint).format(ClickHouseFormat.TabSeparatedWithNamesAndTypes);
request.query(String.format(ClickHouseLoggingConstant.CREATE_DATABASE_SQL,
database)).executeAndWait();
-
request.query(String.format(ClickHouseLoggingConstant.CREATE_TABLE_SQL,
database, config.getEngine())).executeAndWait();
+
request.query(String.format(ClickHouseLoggingConstant.CREATE_TABLE_SQL,
database, config.getEngine(), ttl)).executeAndWait();
request.query(String.format(ClickHouseLoggingConstant.CREATE_DISTRIBUTED_TABLE_SQL,
database, database, config.getClusterName(), database)).executeAndWait();
} catch (Exception e) {
LOG.error("inti ClickHouseLogClient error", e);
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfig.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfig.java
index 38c4c71ba6..e66336ed53 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfig.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfig.java
@@ -66,6 +66,24 @@ public class ClickHouseLogCollectConfig {
private String engine;
+ private String ttl;
+
+ /**
+ * get ttl.
+ * @return ttl
+ */
+ public String getTtl() {
+ return ttl;
+ }
+
+ /**
+ * set ttl.
+ * @param ttl ttl
+ */
+ public void setTtl(final String ttl) {
+ this.ttl = ttl;
+ }
+
/**
* get clusterName.
* @return clusterName
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/constant/ClickHouseLoggingConstant.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/constant/ClickHouseLoggingConstant.java
index a25fdc3ce1..1a570d7ae5 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/constant/ClickHouseLoggingConstant.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/main/java/org/apache/shenyu/plugin/logging/clickhouse/constant/ClickHouseLoggingConstant.java
@@ -52,6 +52,7 @@ public class ClickHouseLoggingConstant {
+ " path String\n"
+ ") ENGINE = %s()\n"
+ "ORDER BY
(timeLocal,clientIp,method,rpcType,upstreamIp,upstreamResponseTime)\n"
+ + " TTL toDateTime(timeLocal) + INTERVAL %s DAY \n"
+ ";";
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/LoggingClickHousePluginTest.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/LoggingClickHousePluginTest.java
index 849346b660..8fecd86751 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/LoggingClickHousePluginTest.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/LoggingClickHousePluginTest.java
@@ -87,6 +87,9 @@ public class LoggingClickHousePluginTest {
exchange.getAttributes().put(Constants.CONTEXT, shenyuContext);
}
+ /**
+ * test doExecute.
+ */
@Test
public void testDoExecute() {
Mockito.when(chain.execute(ArgumentMatchers.any())).thenReturn(Mono.empty());
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClientTest.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClientTest.java
index f307e4ff90..ba2a013e57 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClientTest.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/client/ClickHouseLogCollectClientTest.java
@@ -48,7 +48,7 @@ public class ClickHouseLogCollectClientTest {
public void setUp() {
clickHouseLogCollectClient = new ClickHouseLogCollectClient();
pluginData.setEnabled(true);
-
pluginData.setConfig("{\"host\":\"127.0.0.1\",\"port\":\"8123\",\"database\":\"shenyu-gateway\",\"username\":\"foo\",\"password\":\"bar\"}");
+
pluginData.setConfig("{\"host\":\"127.0.0.1\",\"port\":\"8123\",\"database\":\"shenyu-gateway\",\"username\":\"foo\",\"password\":\"bar\",
\"ttl\":\"30\"}");
clickHouseLogConfig =
GsonUtils.getInstance().fromJson(pluginData.getConfig(),
ClickHouseLogCollectConfig.ClickHouseLogConfig.class);
shenyuRequestLog.setClientIp("127.0.0.1");
shenyuRequestLog.setTimeLocal("2022-08-10 16:21:05.508");
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfigTest.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfigTest.java
index a292a350c5..66abadac34 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfigTest.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/config/ClickHouseLogCollectConfigTest.java
@@ -37,6 +37,7 @@ public class ClickHouseLogCollectConfigTest {
clickHouseLogConfig.setPort("8123");
clickHouseLogConfig.setUsername("foo");
clickHouseLogConfig.setPassword("bar");
+ clickHouseLogConfig.setTtl("30");
clickHouseLogConfig.setDatabase(GenericLoggingConstant.DEFAULT_SOURCE);
}
@@ -112,4 +113,15 @@ public class ClickHouseLogCollectConfigTest {
Assertions.assertEquals(GenericLoggingConstant.DEFAULT_SOURCE,
database);
}
+ @Test
+ public void testSetTTL() {
+ clickHouseLogConfig.setTtl("30");
+ Assertions.assertNull(null);
+ }
+
+ @Test
+ public void testGetTTL() {
+ final String ttl = clickHouseLogConfig.getTtl();
+ Assertions.assertEquals("30", ttl);
+ }
}
diff --git
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/handler/LoggingClickHousePluginDataHandlerTest.java
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/handler/LoggingClickHousePluginDataHandlerTest.java
index 97e73dab80..c94e34896b 100644
---
a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/handler/LoggingClickHousePluginDataHandlerTest.java
+++
b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/src/test/java/org/apache/shenyu/plugin/logging/clickhouse/handler/LoggingClickHousePluginDataHandlerTest.java
@@ -37,7 +37,7 @@ public final class LoggingClickHousePluginDataHandlerTest {
@Test
public void testHandlerPlugin() {
PluginData pluginData = new PluginData();
-
pluginData.setConfig("{\"host\":\"127.0.0.1\",\"port\":\"8123\",\"database\":\"shenyu-gateway\",\"username\":\"foo\",\"password\":\"bar\"}");
+
pluginData.setConfig("{\"host\":\"127.0.0.1\",\"port\":\"8123\",\"database\":\"shenyu-gateway\",\"username\":\"foo\",\"password\":\"bar\",
\"ttl\":\"30\"}");
pluginData.setEnabled(true);
pluginData.setId("37");
pluginData.setName("loggingClickHouse");