更新时间:2024-02-01 GMT+08:00

创建策略

功能说明

该接口用于创建策略。

  • 策略名称必须为以0~9、a~z、A~Z、下划线(_)或中划线(-)组成的1~64位字符串,且必须以字母开头。
  • 同一伸缩组下的策略,相同指标(metric_name)的metric_operation为“>”的metric_threshold值必须比metric_operation为“<”的metric_threshold值大。
  • 同一伸缩组,相同指标只能创建一条metric_operation相同的告警策略。
  • 同一策略的同名指标(metric_name),各条件(conditions)之间需保证逻辑不冲突。
  • 定时策略的触发时间(launch_time)年份不能大于2099。
  • 周期策略的开始时间(start_time)、结束时间(end_time)年份不能大于2099。
  • 同一伸缩组下,支持创建定时策略和周期策略的总数最大为10个,支持创建最多10个告警策略。
  • 同一伸缩组下,告警策略之间互不影响。

URI

POST /v1/{project_id}/pe/policy

请求消息

请求消息头

请求消息头如表1所示。

表1 请求消息头

参数

描述

是否为必选

示例

Deployment-Name

应用名称

必选

-

Content-Type

内容类型

该字段内容填为“application/json;charset=utf-8”

必选

application/json;charset=utf-8

Cluster-Id

集群ID

必选

-

Namespace

命名空间

必选

-

X-Auth-Token

从IAM服务获取的用户Token。

必选

-

Reserved-Info

产品自定义字段

可选

-

请求参数

请求参数如表2所示。

表2 请求参数

参数名称

是否必选

参数类型

取值范围

描述

name

String

策略名称必须为以0~9、a~z、A~Z、下划线(_)或中划线(-)组成的1~64位字符串,且必须以字母开头。

策略名称

policy_type

String

  • 定时策略:SCHEDULED
  • 周期策略:RECURRENCE
  • 告警策略:ALARM

策略类型

rule

参见表3

-

触发策略的规则

表3 rule字段数据结构说明

参数名称

是否必选

参数类型

取值范围

描述

conditions

参见表4

conditions只能有1个

匹配条件具体内容。

如果是告警策略,则多个策略的condition条件不能有重合,如:同一指标不能既大于10%,又小于20%

actions

参见表5

actions只能有1个

指定策略匹配成功后执行的动作。

表4 conditions字段数据结构说明

参数名称

是否必选

参数类型

取值范围

描述

launch_time

String

-

触发时间,遵循ISO8601,UTC。

  • 如果policy_type为SCHEDULED,则格式为:YYYY-MM-DDThh:mmZ。
  • 如果policy_type为RECURRENCE,则格式为:hh:mm。

recurrence_type

String

可取值为:Daily、Weekly、Monthly

  • Daily:重复周期为天
  • Weekly:重复周期为周
  • Monthly:重复周期为月

周期触发类型

recurrence_value

String

  • 周期触发类型为Daily时,该字段为null。
  • 周期触发类型为Weekly时,该字段表示每周的第几天,取值范围为0~6,0表示星期日,1表示星期一,以此类推,可多选,以“,”分割,例如:“0,2,4”表示星期日,星期二,星期四。
  • 周期触发类型为Monthly时,分别表示每月的日期,可多选,以“,”分割,例如:1,10,13,28。

周期触发任务数值

start_time

String

-

周期策略重复执行开始时间,遵循ISO8601,UTC,默认立即开始,格式为 : YYYY-MM-DDThh:mmZ。

end_time

String

-

周期策略重复执行结束时间,遵循ISO8601,UTC,格式为 : YYYY-MM-DDThh:mmZ。

metric_namespace

String

  • PAAS.CONTAINER:应用指标的命名空间
  • PAAS.CUSTOMMETRICS:自定义指标的命名空间

命名空间

metric_name

String

取值满足表达式[a-zA-Z_:][a-zA-Z0-9_:]*,即指标名称首字符必须为字母或_或:,其他字符由字母数字_:组成,长度为1~255个字符。

指标名称

metric_unit

String

-

单位

period

Integer

分别包括20,60,300,900,1800,3600

统计周期,单位:秒

evaluation_periods

Integer

1,2,3,4,5

连续周期数

statistic

String

当前只支持平均值(average)

统计方式

metric_operation

String

包含“>”、“<”。

例如,“>”表示当metric大于metric_thresholdUpdate值时触发actions

指标操作符

metric_threshold

Float

[0,2147483647]

阈值条件

举例说明告警策略中conditions各个参数含义:
"conditions":[{ 
   "metric_namespace" : "PAAS.CONTAINER", 
   "metric_name" : "cpuUsage", 
   "metric_unit" : "Percent", 
   "period" : 300, 
   "evaluation_periods" : 2, 
   "statistic" : "average", 
   "metric_operation" : ">", 
   "metric_threshold" : 70 
   }]

当应用指标(metric_namespace)为cpuUsage(metric_name)时,应用在连续2(evaluation_periods)个周期(周期时长:300秒)内平均值(statistic)值超过70%(metric_threshold)时触发策略。

表5 actions字段数据结构说明

参数名称

是否必选

参数类型

取值范围

描述

type

String

  • scale_out_k8s
  • scale_out_vm
  • scale_in_k8s
  • scale_in_vm
  • scale_set_k8s
  • scale_set_vm
  • scale_out_k8s、scale_out_vm表示扩容。
  • scale_in_k8s、scale_in_vm表示缩容。
  • scale_set_k8s、scale_set_vm表示设置应用实例个数。
说明:

含有k8s的表示容器应用,含有vm的表示进程应用。

parameters

参见表6

-

包含扩缩容的实例数

表6 parameters字段数据结构说明

参数名称

是否必选

参数类型

取值范围

描述

scale_unit

Integer

在策略组的最小实例数与最大实例数之间

扩缩容的实例数

请求示例

  • 定时策略示例
    {
        "name" : "policy1",
        "policy_type" : "SCHEDULED",
        "rule" : {
            "conditions" : [{
                    "launch_time" : "2017-03-04T03:37Z",
                    "recurrence_type" : null,
                    "recurrence_value" : null,
                    "start_time" : null,
                    "end_time" : null
                }
            ],
            "actions" : [{
                    "type" : "scale_set_k8s",
                    "parameters" : {
                        "scale_unit" : 1
                    }
                }
            ]
        }
    }
  • 周期策略示例
    {
        "name" : "policy_2",
        "policy_type" : "RECURRENCE",
        "rule" : {
            "conditions" : [{
                    "launch_time" : "13:45",
                    "recurrence_type" : "Weekly",
                    "recurrence_value" : "0,1,4",
                    "start_time" : "2017-01-26T03:33Z",
                    "end_time" : "2099-01-31T03:33Z"
                }
            ],
            "actions" : [{
                    "type" : "scale_set_k8s",
                    "parameters" : {
                        "scale_unit" : 1
                    }
                }
            ]
        }
    }
  • 告警策略示例
    {
        "name" : "policy_1",
        "policy_type" : "ALARM",
        "rule" : {
            "conditions" : [{
                    "metric_namespace" : "PAAS.CONTAINER",
                    "metric_name" : "cpuUsage",
                    "metric_unit" : "Percent",
                    "period" : 60,
                    "evaluation_periods" : 1,
                    "statistic" : "average",
                    "metric_operation" : ">",
                    "metric_threshold" : 70
                }
            ],
            "actions" : [{
                    "type" : "scale_out_k8s",
                    "parameters" : {
                        "scale_unit" : 1
                    }
                }
            ]
        }
    }

响应消息

响应参数

响应参数如表7所示。

表7 响应参数

参数名称

参数类型

描述

errorCode

String

错误码

errorMessage

String

详细信息

policy_id

String

策略ID

响应示例

{   
   "errorCode": 0, 
   "errorMessage": "", 
   "policy_id": "1b9994f0-847a-45e4-aeee-e8b604dddb34" 
}

错误码

表8 错误码

错误码

错误信息

处理措施

SVCSTG.PE.4001101

Invalid parameter.

请检查对应的参数是否符合要求。

SVCSTG.PE.4031012

Failed to verify the project ID.

请检查对应的参数是否符合要求。

SVCSTG.PE.5001201

Failed to insert or update data in the background.

请联系技术支持工程师解决。