Skip to content

Commit

Permalink
[type:feat]Add dynamically scale admin module (apache#5602)
Browse files Browse the repository at this point in the history
* remove .idea change

* revert

* revert

* revert

* revert

* ci

* ci

* ci

* add controller and service

* ci

* ci

* ci

* ci

* ci

* ci

* fix

* fix

* ci

* ci

* fix

* ci

* fix

* ci

* ci

* add upgrade sql

* change type for time

* ci

* ci

* ci

* ci

* ci

* ci

---------

Co-authored-by: Misaya295 <45778734+misaya295@users.noreply.github.com>
Co-authored-by: aias00 <rokkki@163.com>
  • Loading branch information
3 people authored Sep 30, 2024
1 parent 2111828 commit e33f551
Show file tree
Hide file tree
Showing 30 changed files with 4,524 additions and 7 deletions.
52 changes: 51 additions & 1 deletion db/init/mysql/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2371,10 +2371,60 @@ INSERT INTO `shenyu`.`permission` (`id`, `object_id`, `resource_id`, `date_creat
INSERT INTO `shenyu`.`permission` (`id`, `object_id`, `resource_id`, `date_created`, `date_updated`) VALUES ('1792779493541343266', '1346358560427216896', '1792749362445840485', '2024-06-25 20:00:00.000', '2024-06-25 20:00:00.000');
INSERT INTO `shenyu`.`permission` (`id`, `object_id`, `resource_id`, `date_created`, `date_updated`) VALUES ('1792779493541343267', '1346358560427216896', '1792749362445840486', '2024-06-25 20:00:00.000', '2024-06-25 20:00:00.000');

-- ----------------------------
-- Table structure for scale
-- ----------------------------
DROP TABLE IF EXISTS `scale_policy`;
CREATE TABLE IF NOT EXISTS `scale_policy`
(
`id` varchar(128) NOT NULL COMMENT 'primary key id',
`sort` int(0) NOT NULL COMMENT 'sort',
`status` int(0) NOT NULL COMMENT 'status 1:enable 0:disable',
`num` int COMMENT 'number of bootstrap',
`begin_time` datetime(3) COMMENT 'begin time',
`end_time` datetime(3) COMMENT 'end time',
`date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time',
`date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

INSERT INTO `shenyu`.`scale_policy` (`id`, `sort`, `status`, `num`, `begin_time`, `end_time`, `date_created`, `date_updated`) VALUES ('1', 1, 0, 10, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO `shenyu`.`scale_policy` (`id`, `sort`, `status`, `num`, `begin_time`, `end_time`, `date_created`, `date_updated`) VALUES ('2', 2, 0, 10, '2024-07-31 20:00:00.000', '2024-08-01 20:00:00.000', '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO `shenyu`.`scale_policy` (`id`, `sort`, `status`, `num`, `begin_time`, `end_time`, `date_created`, `date_updated`) VALUES ('3', 3, 0, NULL, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');

DROP TABLE IF EXISTS `scale_rule`;
CREATE TABLE IF NOT EXISTS `scale_rule`
(
`id` varchar(128) NOT NULL COMMENT 'primary key id',
`metric_name` varchar(128) NOT NULL COMMENT 'metric name',
`type` int(0) NOT NULL COMMENT 'type 0:shenyu 1:k8s 2:others',
`sort` int(0) NOT NULL COMMENT 'sort',
`status` int(0) NOT NULL COMMENT 'status 1:enable 0:disable',
`minimum` varchar(128) COMMENT 'minimum of metric',
`maximum` varchar(128) COMMENT 'maximum of metric',
`date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time',
`date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

DROP TABLE IF EXISTS `scale_history`;
CREATE TABLE IF NOT EXISTS `scale_history`
(
`id` varchar(128) NOT NULL COMMENT 'primary key id',
`config_id` int(0) NOT NULL COMMENT '0:manual 1:period 2:dynamic',
`num` int NOT NULL COMMENT 'number of bootstrap',
`action` int(0) NOT NULL COMMENT 'status 1:enable 0:disable',
`msg` text COMMENT 'message',
`date_created` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'create time',
`date_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'update time',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;


ALTER TABLE `shenyu`.`selector` ADD COLUMN `namespace_id` varchar(50) NULL COMMENT 'namespaceId' AFTER `match_restful`;

ALTER TABLE `shenyu`.`rule` ADD COLUMN `namespace_id` varchar(50) NULL COMMENT 'namespaceId' AFTER `match_restful`;

ALTER TABLE `shenyu`.`meta_data` ADD COLUMN `namespace_id` varchar(50) NULL COMMENT 'namespaceId';

ALTER TABLE `shenyu`.`app_auth` ADD COLUMN `namespace_id` varchar(50) NULL COMMENT 'namespaceId' AFTER `enabled`;
ALTER TABLE `shenyu`.`app_auth` ADD COLUMN `namespace_id` varchar(50) NULL COMMENT 'namespaceId' AFTER `enabled`;
74 changes: 73 additions & 1 deletion db/init/og/create-table.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2674,14 +2674,86 @@ INSERT INTO "public"."permission" VALUES ('1792779493541343266', '13463585604272
INSERT INTO "public"."permission" VALUES ('1792779493541343267', '1346358560427216896', '1792749362445840486', '2024-06-25 20:00:00.000', '2024-06-25 20:00:00.000');


-- ----------------------------
-- Table structure for scale
-- ----------------------------
DROP TABLE IF EXISTS "public"."scale_policy";
CREATE TABLE IF NOT EXISTS "public"."scale_policy"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"sort" int4 NOT NULL,
"status" int2 NOT NULL,
"num" int4 ,
"begin_time" timestamp(6) ,
"end_time" timestamp(6) ,
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_policy"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_policy"."sort" IS 'sort';
COMMENT ON COLUMN "public"."scale_policy"."status" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_policy"."num" IS 'number of bootstrap';
COMMENT ON COLUMN "public"."scale_policy"."begin_time" IS 'begin time';
COMMENT ON COLUMN "public"."scale_policy"."end_time" IS 'end time';
COMMENT ON COLUMN "public"."scale_policy"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_policy"."date_updated" IS 'update time';

INSERT INTO "public"."scale_policy" VALUES ('1', 1, 0, 10, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO "public"."scale_policy" VALUES ('2', 2, 0, 10, '2024-07-31 20:00:00.000', '2024-08-01 20:00:00.000', '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO "public"."scale_policy" VALUES ('3', 3, 0, NULL, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');

DROP TABLE IF EXISTS "public"."scale_rule";
CREATE TABLE "public"."scale_rule"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"metric_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"type" int4 NOT NULL,
"sort" int4 NOT NULL,
"status" int2 NOT NULL,
"minimum" varchar(128) COLLATE "pg_catalog"."default",
"maximum" varchar(128) COLLATE "pg_catalog"."default",
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_rule"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_rule"."metric_name" IS 'metric name';
COMMENT ON COLUMN "public"."scale_rule"."type" IS 'type 0:shenyu 1:k8s 2:others';
COMMENT ON COLUMN "public"."scale_rule"."sort" IS 'sort';
COMMENT ON COLUMN "public"."scale_rule"."status" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_rule"."minimum" IS 'minimum of metric';
COMMENT ON COLUMN "public"."scale_rule"."maximum" IS 'maximum of metric';
COMMENT ON COLUMN "public"."scale_rule"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_rule"."date_updated" IS 'update time';

DROP TABLE IF EXISTS "public"."scale_history";
CREATE TABLE "public"."scale_history"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"config_id" int4 NOT NULL,
"num" int4 NOT NULL,
"action" int4 NOT NULL,
"msg" text COLLATE "pg_catalog"."default",
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_history"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_history"."config_id" IS '0:manual 1:period 2:dynamic';
COMMENT ON COLUMN "public"."scale_history"."num" IS 'number of bootstrap';
COMMENT ON COLUMN "public"."scale_history"."action" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_history"."msg" IS 'message';
COMMENT ON COLUMN "public"."scale_history"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_history"."date_updated" IS 'update time';


ALTER TABLE "public"."selector" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."selector"."namespace_id" IS 'namespaceId';


ALTER TABLE "public"."rule" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."rule"."namespace_id" IS 'namespaceId';

ALTER TABLE "public"."meta_data" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."meta_data"."namespace_id" IS 'namespaceId';

ALTER TABLE "public"."app_auth" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."app_auth"."namespace_id" IS 'namespaceId';
COMMENT ON COLUMN "public"."app_auth"."namespace_id" IS 'namespaceId';
98 changes: 97 additions & 1 deletion db/init/oracle/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2859,14 +2859,110 @@ INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (permission(id)) */ INTO permission (id, o
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (permission(id)) */ INTO permission (id, object_id, resource_id) VALUES ('1792779493541343267', '1346358560427216896', '1792749362445840486');


-- ----------------------------
-- Table structure for scale
-- ----------------------------
create table scale_policy
(
id varchar(128) not null,
sort number not null,
status number not null,
num number,
begin_time timestamp(3),
end_time timestamp(3),
date_created timestamp(3) default SYSDATE not null,
date_updated timestamp(3) default SYSDATE not null,
PRIMARY KEY (id)
);
comment on column SCALE_POLICY.id
is 'primary key id';
comment on column SCALE_POLICY.sort
is 'sort';
comment on column SCALE_POLICY.status
is 'status 1:enable 0:disable';
comment on column SCALE_POLICY.num
is 'number of bootstrap';
comment on column SCALE_POLICY.begin_time
is 'begin time';
comment on column SCALE_POLICY.end_time
is 'end time';
comment on column SCALE_POLICY.date_created
is 'create time';
comment on column SCALE_POLICY.date_updated
is 'update time';

INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (scale_policy(id)) */ INTO scale_policy (id, sort, status, num, begin_time, end_time, date_created, date_updated) VALUES ('1', 1, 0, 10, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (scale_policy(id)) */ INTO scale_policy (id, sort, status, num, begin_time, end_time, date_created, date_updated) VALUES ('2', 2, 0, 10, '2024-07-31 20:00:00.000', '2024-08-01 20:00:00.000', '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (scale_policy(id)) */ INTO scale_policy (id, sort, status, num, begin_time, end_time, date_created, date_updated) VALUES ('3', 3, 0, NULL, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');

create table scale_rule
(
id varchar(128) not null,
metric_name varchar(128) not null,
type number not null,
sort number not null,
status number not null,
minimum varchar(128),
maximum varchar(128),
date_created timestamp(3) default SYSDATE not null,
date_updated timestamp(3) default SYSDATE not null,
PRIMARY KEY (id)
);
comment on column SCALE_RULE.id
is 'primary key id';
comment on column SCALE_RULE.metric_name
is 'metric name';
comment on column SCALE_RULE.type
is 'type 0:shenyu 1:k8s 2:others';
comment on column SCALE_RULE.sort
is 'sort';
comment on column SCALE_RULE.status
is 'status 1:enable 0:disable';
comment on column SCALE_RULE.minimum
is 'minimum of metric';
comment on column SCALE_RULE.maximum
is 'maximum of metric';
comment on column SCALE_RULE.date_created
is 'create time';
comment on column SCALE_RULE.date_updated
is 'update time';

create table scale_history
(
id varchar(128) not null,
config_id number not null,
num number not null,
action number not null,
msg clob,
date_created timestamp(3) default SYSDATE not null,
date_updated timestamp(3) default SYSDATE not null,
PRIMARY KEY (id)
);
comment on column SCALE_HISTORY.id
is 'primary key id';
comment on column SCALE_HISTORY.config_id
is '0:manual 1:period 2:dynamic';
comment on column SCALE_HISTORY.num
is 'number of bootstrap';
comment on column SCALE_HISTORY.action
is 'status 1:enable 0:disable';
comment on column SCALE_HISTORY.msg
is 'message';
comment on column SCALE_HISTORY.date_created
is 'create time';
comment on column SCALE_HISTORY.date_updated
is 'update time';


ALTER TABLE selector ADD namespace_id VARCHAR2(50) NULL;
COMMENT ON COLUMN selector.namespace_id IS 'namespaceId';


ALTER TABLE rule ADD namespace_id VARCHAR2(50) NULL;
COMMENT ON COLUMN rule.namespace_id IS 'namespaceId';

ALTER TABLE meta_data ADD namespace_id VARCHAR2(50) NULL;
COMMENT ON COLUMN meta_data.namespace_id IS 'namespaceId';

ALTER TABLE app_auth ADD namespace_id VARCHAR2(50) NULL;
COMMENT ON COLUMN app_auth.namespace_id IS 'namespaceId';
COMMENT ON COLUMN app_auth.namespace_id IS 'namespaceId';
74 changes: 73 additions & 1 deletion db/init/pg/create-table.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2791,6 +2791,78 @@ INSERT INTO "public"."permission" VALUES ('1792779493541343265', '13463585604272
INSERT INTO "public"."permission" VALUES ('1792779493541343266', '1346358560427216896', '1792749362445840485', '2024-06-25 20:00:00.000', '2024-06-25 20:00:00.000');
INSERT INTO "public"."permission" VALUES ('1792779493541343267', '1346358560427216896', '1792749362445840486', '2024-06-25 20:00:00.000', '2024-06-25 20:00:00.000');


-- ----------------------------
-- Table structure for scale
-- ----------------------------
DROP TABLE IF EXISTS "public"."scale_policy";
CREATE TABLE IF NOT EXISTS "public"."scale_policy"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"sort" int4 NOT NULL,
"status" int2 NOT NULL,
"num" int4 ,
"begin_time" timestamp(6) ,
"end_time" timestamp(6) ,
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_policy"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_policy"."sort" IS 'sort';
COMMENT ON COLUMN "public"."scale_policy"."status" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_policy"."num" IS 'number of bootstrap';
COMMENT ON COLUMN "public"."scale_policy"."begin_time" IS 'begin time';
COMMENT ON COLUMN "public"."scale_policy"."end_time" IS 'end time';
COMMENT ON COLUMN "public"."scale_policy"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_policy"."date_updated" IS 'update time';

INSERT INTO "public"."scale_policy" VALUES ('1', 1, 0, 10, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO "public"."scale_policy" VALUES ('2', 2, 0, 10, '2024-07-31 20:00:00.000', '2024-08-01 20:00:00.000', '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');
INSERT INTO "public"."scale_policy" VALUES ('3', 3, 0, NULL, NULL, NULL, '2024-07-31 20:00:00.000', '2024-07-31 20:00:00.000');

DROP TABLE IF EXISTS "public"."scale_rule";
CREATE TABLE "public"."scale_rule"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"metric_name" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"type" int4 NOT NULL,
"sort" int4 NOT NULL,
"status" int2 NOT NULL,
"minimum" varchar(128) COLLATE "pg_catalog"."default",
"maximum" varchar(128) COLLATE "pg_catalog"."default",
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_rule"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_rule"."metric_name" IS 'metric name';
COMMENT ON COLUMN "public"."scale_rule"."type" IS 'type 0:shenyu 1:k8s 2:others';
COMMENT ON COLUMN "public"."scale_rule"."sort" IS 'sort';
COMMENT ON COLUMN "public"."scale_rule"."status" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_rule"."minimum" IS 'minimum of metric';
COMMENT ON COLUMN "public"."scale_rule"."maximum" IS 'maximum of metric';
COMMENT ON COLUMN "public"."scale_rule"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_rule"."date_updated" IS 'update time';

DROP TABLE IF EXISTS "public"."scale_history";
CREATE TABLE "public"."scale_history"
(
"id" varchar(128) COLLATE "pg_catalog"."default" NOT NULL,
"config_id" int4 NOT NULL,
"num" int4 NOT NULL,
"action" int4 NOT NULL,
"msg" text COLLATE "pg_catalog"."default",
"date_created" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone),
"date_updated" timestamp(3) NOT NULL DEFAULT timezone('UTC-8'::text, (now())::timestamp(0) without time zone)
);
COMMENT ON COLUMN "public"."scale_history"."id" IS 'primary key id';
COMMENT ON COLUMN "public"."scale_history"."config_id" IS '0:manual 1:period 2:dynamic';
COMMENT ON COLUMN "public"."scale_history"."num" IS 'number of bootstrap';
COMMENT ON COLUMN "public"."scale_history"."action" IS 'status 1:enable 0:disable';
COMMENT ON COLUMN "public"."scale_history"."msg" IS 'message';
COMMENT ON COLUMN "public"."scale_history"."date_created" IS 'create time';
COMMENT ON COLUMN "public"."scale_history"."date_updated" IS 'update time';


ALTER TABLE "public"."selector" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."selector"."namespace_id" IS 'namespaceId';

Expand All @@ -2801,4 +2873,4 @@ ALTER TABLE "public"."meta_data" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."meta_data"."namespace_id" IS 'namespaceId';

ALTER TABLE "public"."app_auth" ADD COLUMN namespace_id VARCHAR(50) NULL;
COMMENT ON COLUMN "public"."app_auth"."namespace_id" IS 'namespaceId';
COMMENT ON COLUMN "public"."app_auth"."namespace_id" IS 'namespaceId';
Loading

0 comments on commit e33f551

Please sign in to comment.