伸缩规则相关接口
更新时间:2024-04-28
创建伸缩规则
接口描述
创建伸缩的伸缩规则,包括定时扩缩容、周期性扩缩容以及指标触发式的扩缩容。
请求结构
Method: Post
Url: /v1/rule
请求参数
Body
| 参数名 | 类型 | 是否必需 | 参数位置 | 描述 |
|---|---|---|---|---|
| ruleName | String | 是 | RequestBody参数 | 规则名称 |
| groupId | String | 是 | RequestBody参数 | 伸缩组id |
| state | RuleStateEnum | 是 | RequestBody参数 | 规则状态。包括:ENABLE(可用),DISABLE(禁用) |
| type | RuleType | 是 | RequestBody参数 | 规则类型。包括:CRONTAB(定时伸缩),ALARM(报警触发伸缩),PERIOD(周期伸缩) |
| actionType | RuleActionType | 是 | RequestBody参数 | 动作类型。包括:INCREASE(扩容),DECREASE(缩容),ADJUST(调整至) |
| actionNum | int | 是 | RequestBody参数 | 动作数量 |
| cooldownInSec | int | 是 | RequestBody参数 | 冷却时间(秒) |
| asAlarmRule | AlarmRule | 否 | RequestBody参数 | 报警类规则:报警规则信息,详情见附录 |
| cronTime | String | 否 | RequestBody参数 | 定时规则或周期规则:当日执行时间。如12:30。 |
| periodType | PeriodType | 否 | RequestBody参数 | 周期规则:周期单位,可选值为DAY/WEEK/MONTH/CronExpression |
| periodValue | int | 否 | RequestBody参数 | 周期规则:周期触发日期,1-7标识周1-周日,1-31表示1号到31号,与periodType相关 |
| periodStartTime | Timestamp | 否 | RequestBody参数 | 周期规则:周期有效期开始时间。如:2023-12-10T12:00:00Z |
| periodEndTime | Timestamp | 否 | RequestBody参数 | 周期规则:周期有效期结束时间。如:2023-12-11T12:00:00Z |
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
| ruleId | String | 规则ID |
请求示例
Plain
1POST /v1/rule
2
3// 创建一条 每周二 12:30 执行的 扩容一个 实例的周期伸缩规则
4request body:
5{
6 "ruleName": "rule_name",
7 "type": "PERIOD",
8 "actionType": "INCREASE",
9 "actionNum": 1,
10 "cooldownInSec": 300,
11 "state": "ENABLE",
12 "periodType": "WEEK",
13 "periodStartTime": "2023-12-11T11:00:00Z",
14 "periodEndTime": "2023-12-18T11:00:00Z",
15 "cronTime": "12:30",
16 "periodValue": 2,
17 "groupId": "asg-SNKxxxxx"
18}
响应示例
Shell
1{
2 "ruleId": "asrule-iuVxxxxx"
3}
修改伸缩规则
接口描述
修改伸缩的伸缩规则,包括定时扩缩容、周期性扩缩容以及指标触发式的规则修改。
请求结构
Method: Put
Url: /v1/rule/{ruleId}
请求参数
| 参数名 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| ruleId | String | 是 | 规则Id |
Body
| 参数名 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| ruleName | String | 是 | 规则名称 |
| groupId | String | 是 | 伸缩组id |
| state | RuleStateEnum | 是 | 规则状态。包括:ENABLE(可用),DISABLE(禁用) |
| type | RuleType | 是 | 规则类型。包括:CRONTAB(定时伸缩),ALARM(报警触发伸缩),PERIOD(周期伸缩) |
| actionType | RuleActionType | 是 | 动作类型。包括:INCREASE(扩容),DECREASE(缩容),ADJUST(调整至) |
| actionNum | int | 是 | 动作数量 |
| cooldownInSec | int | 是 | 冷却时间(秒) |
| asAlarmRule | AlarmRule | 否 | 报警类规则:报警规则信息,详情见附录 |
| cronTime | String | 否 | 定时规则或周期规则:当日执行时间。如12:30。 |
| periodType | PeriodType | 否 | 周期规则:周期单位,可选值为DAY/WEEK/MONTH/CronExpression |
| periodValue | int | 否 | 周期规则:周期触发日期,1-7标识周1-周日,1-31表示1号到31号,与periodType相关 |
| periodStartTime | Timestamp | 否 | 周期规则:周期有效期开始时间。如:2023-12-10T12:00:00Z |
| periodEndTime | Timestamp | 否 | 周期规则:周期有效期结束时间。如:2023-12-11T12:00:00Z |
响应参数
无响应参数
请求示例
Plain
1POST /v1/rule/asrule-iuV29a25
2
3// 修改规则为 每周二 12:40 执行的 扩容一个 实例的周期伸缩规则
4request body:
5{
6 "ruleName": "rule_name",
7 "type": "PERIOD",
8 "actionType": "INCREASE",
9 "actionNum": 1,
10 "cooldownInSec": 300,
11 "state": "ENABLE",
12 "periodType": "WEEK",
13 "periodStartTime": "2023-12-11T11:00:00Z",
14 "periodEndTime": "2023-12-18T11:00:00Z",
15 "cronTime": "12:40",
16 "periodValue": 2,
17 "groupId": "asg-SNKxxxxx"
18}
响应示例
无返回
查询伸缩规则列表
接口描述
根据条件查询伸缩组的伸缩规则。
请求结构
Method: Get
Url: /v1/rule
请求参数
| 参数名 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| groupid | String | 是 | 伸缩组ID |
| keyword | String | 否 | 过滤规则的关键词 |
| keywordType | String | 否 | 关键词的类型 |
| order | String | 否 | 规则的顺序,默认为"desc" |
| orderBy | String | 否 | 排序规则的字段,默认为"createTime" |
| pageNo | Integer | 是 | 页码,默认为1 |
| pageSize | Integer | 否 | 页面大小,默认为1000 |
响应参数
| 名称 | 类型 | 描述 |
|---|---|---|
| orderBy | String | 排序字段 |
| order | String | 排序方式 |
| pageNo | int | 页码数 |
| pageSize | int | 每页返回结果数 |
| totalCount | int | 符合条件的查询结果数 |
| result | List |
查询结果 |
请求示例
Plain
1GET /v1/rule?
2groupid=asg-SNKxxxxx
3&keywordType=ruleName
4&keyword=rule
5&order=desc
6&orderBy=createTime
7&pageNo=1
8&pageSize=10
响应示例
Shell
1{
2 "orderBy": "createTime",
3 "order": "desc",
4 "pageNo": 1,
5 "pageSize": 10,
6 "totalCount": 1,
7 "result": [
8 {
9 "ruleId": "asrule-iuVxxxxx",
10 "ruleName": "rule_name",
11 "groupId": "asg-SNKuaxHV",
12 "accountId": "a0d04d7c202140xxxxx55ff7b6752ce4",
13 "state": "ENABLE",
14 "type": "PERIOD",
15 "cronTime": "12:40",
16 "actionType": "INCREASE",
17 "actionNum": 1,
18 "cooldownInSec": 300,
19 "createTime": "2023-12-11T11:46:21Z",
20 "lastExecutionTime": "1970-01-05T04:00:00Z",
21 "periodStartTime": "2023-12-11T11:00:00Z",
22 "periodEndTime": "2023-12-18T11:00:00Z",
23 "periodType": "WEEK",
24 "periodValue": 2
25 }
26 ]
27}
查询伸缩规则详情
接口描述
查询指定规则详情
请求结构
Method: Get
Url: /v1/rule/{ruleId}
请求参数
| 参数名 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| ruleId | String | 是 | 规则ID |
响应参数
| 名称 | 类型 | 描述 |
|---|---|---|
| resule | RuleVO | 规则内容 |
请求示例
Plain
1GET /v1/rule/asrule-iuVxxxxx
响应示例
Shell
1{
2 "ruleId": "asrule-iuVxxxxx",
3 "ruleName": "rule_name",
4 "groupId": "asg-SNKuaxHV",
5 "accountId": "a0d04d7c202140xxxxx55ff7b6752ce4",
6 "state": "ENABLE",
7 "type": "PERIOD",
8 "cronTime": "12:40",
9 "actionType": "INCREASE",
10 "actionNum": 1,
11 "cooldownInSec": 300,
12 "createTime": "2023-12-11T11:46:21Z",
13 "lastExecutionTime": "1970-01-05T04:00:00Z",
14 "periodStartTime": "2023-12-11T11:00:00Z",
15 "periodEndTime": "2023-12-18T11:00:00Z",
16 "periodType": "WEEK",
17 "periodValue": 2
18}
删除伸缩规则
接口描述
批量删除指定的规则。
请求结构
Method: Post
Url: /v1/rule?delete
请求参数
Body
| 参数名 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| ruleIds | List |
否 | 规则id列表。 |
| groupIds | List |
否 | 伸缩组id列表。若ruleIds为空,则删除groupIds伸缩组下所有规则。 |
响应参数
无响应参数
请求示例
Plain
1POST /v1/rule?delete
2
3request body:
4{
5 "ruleIds": [
6 "asrule-iuVxxxxx"
7 ],
8 "groupIds": []
9}
响应示例
无返回
附录
RuleVO
| 字段名 | 类型 | 描述 |
|---|---|---|
| ruleId | String | 规则ID |
| ruleName | String | 规则名称 |
| groupId | String | 伸缩组ID |
| accountId | String | 用户ID |
| state | String | 规则的状态 |
| type | RuleType | 规则的类型 |
| asAlarmRule | AlarmRule | 报警类规则:报警规则信息,详情见附录 |
| cronTime | String | 定时规则或周期规则:当日执行时间。如12:30。 |
| actionType | RuleActionType | 动作类型。包括:INCREASE(扩容),DECREASE(缩容),ADJUST(调整至) |
| actionNum | int | 动作数量 |
| cooldownInSec | int | 冷却时间(秒) |
| periodType | PeriodType | 周期规则:周期单位,可选值为DAY/WEEK/MONTH/CronExpression |
| periodValue | int | 周期规则:周期触发日期,1-7标识周1-周日,1-31表示1号到31号,与periodType相关 |
| periodStartTime | Timestamp | 周期规则:周期有效期开始时间。如:2023-12-10T12:00:00Z |
| periodEndTime | Timestamp | 周期规则:周期有效期结束时间。如:2023-12-11T12:00:00Z |
| createTime | Timestamp | 规则创建时间 |
| lastExecutionTime | Timestamp | 规则最后修改时间 |
AlarmRule
| 字段名 | 类型 | 描述 |
|---|---|---|
| alarmName | String | BCM策略ID,使用BCM已有策略时候,传入对应策略的唯一id。如:9b623be0axxxxxxxx09026e8638e6cc6 |
| insufficientCycle | int | 无数据状态触发的持续时间,单位s |
| rules | List<List |
创建伸缩组的规则时,传入具体的判断规则,支持且规则、或规则。 |
Rule
| 字段名 | 类型 | 描述 |
|---|---|---|
| index | long | 报警规则的索引,当多个规则共同组成同一报警规则,它们的索引相同 |
| metric | String | 监控指标名称,如:vCPUUsagePercent |
| periodInSecond | long | 多长时间计算一次是否满足各个报警规则,即单个评估周期时长,单位s |
| statistics | String | 统计方式,可选值为:maximum(最大值)、minimum(最小值)、sum(和值)、average(平均值) |
| threshold | String | 报警规则的阈值 |
| comparisonOperator | String | 和阈值比较的算符,取值为>=、>、=、<、<= |
| evaluationPeriodCount | int | 触发报警所需连续发生次数 |
RuleStateEnum
| 值 | 描述 |
|---|---|
| ENABLE | 规则启动 |
| DISABLE | 规则禁用 |
RuleType
| 值 | 描述 |
|---|---|
| CRONTAB | 定时伸缩规则 |
| ALARM | 报警触发伸缩规则 |
| PERIOD | 周期伸缩规则 |
RuleActionType
| 值 | 描述 |
|---|---|
| INCREASE | 扩容 |
| DECREASE | 缩容 |
| ADJUST | 调整至 |
PeriodType
| 值 | 描述 |
|---|---|
| DAY | 每天 |
| WEEK | 每周 |
| MONTH | 每月 |
| CronExpression | Cron表达式,如:30 12 1 12 ? (每年12月1日12:30分执行) |
