伸缩规则相关接口
更新时间: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 |
请求示例
POST /v1/rule
// 创建一条 每周二 12:30 执行的 扩容一个 实例的周期伸缩规则
request body:
{
"ruleName": "rule_name",
"type": "PERIOD",
"actionType": "INCREASE",
"actionNum": 1,
"cooldownInSec": 300,
"state": "ENABLE",
"periodType": "WEEK",
"periodStartTime": "2023-12-11T11:00:00Z",
"periodEndTime": "2023-12-18T11:00:00Z",
"cronTime": "12:30",
"periodValue": 2,
"groupId": "asg-SNKxxxxx"
}
响应示例
{
"ruleId": "asrule-iuVxxxxx"
}
修改伸缩规则
接口描述
修改伸缩的伸缩规则,包括定时扩缩容、周期性扩缩容以及指标触发式的规则修改。
请求结构
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 |
响应参数
无响应参数
请求示例
POST /v1/rule/asrule-iuV29a25
// 修改规则为 每周二 12:40 执行的 扩容一个 实例的周期伸缩规则
request body:
{
"ruleName": "rule_name",
"type": "PERIOD",
"actionType": "INCREASE",
"actionNum": 1,
"cooldownInSec": 300,
"state": "ENABLE",
"periodType": "WEEK",
"periodStartTime": "2023-12-11T11:00:00Z",
"periodEndTime": "2023-12-18T11:00:00Z",
"cronTime": "12:40",
"periodValue": 2,
"groupId": "asg-SNKxxxxx"
}
响应示例
无返回
查询伸缩规则列表
接口描述
根据条件查询伸缩组的伸缩规则。
请求结构
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 |
查询结果 |
请求示例
GET /v1/rule?
groupid=asg-SNKxxxxx
&keywordType=ruleName
&keyword=rule
&order=desc
&orderBy=createTime
&pageNo=1
&pageSize=10
响应示例
{
"orderBy": "createTime",
"order": "desc",
"pageNo": 1,
"pageSize": 10,
"totalCount": 1,
"result": [
{
"ruleId": "asrule-iuVxxxxx",
"ruleName": "rule_name",
"groupId": "asg-SNKuaxHV",
"accountId": "a0d04d7c202140xxxxx55ff7b6752ce4",
"state": "ENABLE",
"type": "PERIOD",
"cronTime": "12:40",
"actionType": "INCREASE",
"actionNum": 1,
"cooldownInSec": 300,
"createTime": "2023-12-11T11:46:21Z",
"lastExecutionTime": "1970-01-05T04:00:00Z",
"periodStartTime": "2023-12-11T11:00:00Z",
"periodEndTime": "2023-12-18T11:00:00Z",
"periodType": "WEEK",
"periodValue": 2
}
]
}
查询伸缩规则详情
接口描述
查询指定规则详情
请求结构
Method: Get
Url: /v1/rule/{ruleId}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ruleId | String | 是 | 规则ID |
响应参数
名称 | 类型 | 描述 |
---|---|---|
resule | RuleVO | 规则内容 |
请求示例
GET /v1/rule/asrule-iuVxxxxx
响应示例
{
"ruleId": "asrule-iuVxxxxx",
"ruleName": "rule_name",
"groupId": "asg-SNKuaxHV",
"accountId": "a0d04d7c202140xxxxx55ff7b6752ce4",
"state": "ENABLE",
"type": "PERIOD",
"cronTime": "12:40",
"actionType": "INCREASE",
"actionNum": 1,
"cooldownInSec": 300,
"createTime": "2023-12-11T11:46:21Z",
"lastExecutionTime": "1970-01-05T04:00:00Z",
"periodStartTime": "2023-12-11T11:00:00Z",
"periodEndTime": "2023-12-18T11:00:00Z",
"periodType": "WEEK",
"periodValue": 2
}
删除伸缩规则
接口描述
批量删除指定的规则。
请求结构
Method: Post
Url: /v1/rule?delete
请求参数
Body
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
ruleIds | List |
否 | 规则id列表。 |
groupIds | List |
否 | 伸缩组id列表。若ruleIds为空,则删除groupIds伸缩组下所有规则。 |
响应参数
无响应参数
请求示例
POST /v1/rule?delete
request body:
{
"ruleIds": [
"asrule-iuVxxxxx"
],
"groupIds": []
}
响应示例
无返回
附录
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分执行) |