更新时间:2022-06-01 GMT+08:00

更新策略

功能介绍

该接口用于修改策略规则

  • 告警策略支持更新,定时和周期策略不支持更新。

URI

PUT /v1/{project_id}/pe/policy/{policy_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

policy_id

String

策略ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

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

枚举值:

  • application/json;charset=utf-8

  • application/json

Cluster-Id

String

集群ID

Namespace

String

命名空间

Deployment-Name

String

应用名

X-Auth-Token

String

从IAM获取的用户Project级别Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

id

String

策略ID

name

String

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

policy_type

String

策略类型(当前只支持告警策略)

枚举值:

  • ALARM

rule

AlarmRule object

触发策略的规则

group_id

String

策略组id

表4 AlarmRule

参数

是否必选

参数类型

描述

actions

Array of Action objects

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

conditions

Array of AlarmConditions objects

匹配条件内容。一个规则可以有多个条件,多个条件之间的关系是“并且”,内部描述了多个详细匹配条件。一个条件可以描述一个metric的匹配方式。

表5 Action

参数

是否必选

参数类型

描述

type

String

  • scale_out_k8s、scale_out_vm表示扩容。

  • scale_in_k8s、scale_in_vm表示缩容。 说明 含有k8s的表示容器应用,含有vm的表示进程应用。

枚举值:

  • scale_out_k8s

  • scale_out_vm

  • scale_in_k8s

  • scale_in_vm

parameters

Array of Parameter objects

包含扩缩容的实例数。

表6 Parameter

参数

是否必选

参数类型

描述

scale_unit

Integer

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

表7 AlarmConditions

参数

是否必选

参数类型

描述

metric_namespace

String

指标命名空间

枚举值:

  • PAAS.CONTAINER

  • PAAS.CUSTOMMETRICS

metric_name

String

指标名称

枚举值:

  • ^[a-zA-Z_:][a-zA-Z0-9_:]{0

  • 254}$

metric_unit

String

单位 说明 随指标名称变化而变化,具体信息从AMS接口获取

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

Integer

阈值条件

响应参数

状态码: 200

表8 响应Body参数

参数

参数类型

描述

errorCode

String

错误码

errorMessage

String

详细信息

context

PePolicyContext object

修改后策略的详细信息

表9 PePolicyContext

参数

参数类型

描述

id

String

策略ID

name

String

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

policy_type

String

策略类型(当前只支持告警策略)

枚举值:

  • ALARM

rule

AlarmRule object

触发策略的规则

表10 AlarmRule

参数

参数类型

描述

actions

Array of Action objects

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

conditions

Array of AlarmConditions objects

匹配条件内容。一个规则可以有多个条件,多个条件之间的关系是“并且”,内部描述了多个详细匹配条件。一个条件可以描述一个metric的匹配方式。

表11 Action

参数

参数类型

描述

type

String

  • scale_out_k8s、scale_out_vm表示扩容。

  • scale_in_k8s、scale_in_vm表示缩容。 说明 含有k8s的表示容器应用,含有vm的表示进程应用。

枚举值:

  • scale_out_k8s

  • scale_out_vm

  • scale_in_k8s

  • scale_in_vm

parameters

Array of Parameter objects

包含扩缩容的实例数。

表12 Parameter

参数

参数类型

描述

scale_unit

Integer

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

表13 AlarmConditions

参数

参数类型

描述

metric_namespace

String

指标命名空间

枚举值:

  • PAAS.CONTAINER

  • PAAS.CUSTOMMETRICS

metric_name

String

指标名称

枚举值:

  • ^[a-zA-Z_:][a-zA-Z0-9_:]{0

  • 254}$

metric_unit

String

单位 说明 随指标名称变化而变化,具体信息从AMS接口获取

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

Integer

阈值条件

请求示例

修改告警策略示例

PUT https://{Endpoint}/v1/{project_id}/pe/policy/{policy_id}

{
  "group_id" : "943eba0f-b10a-4066-6261-1857a53500ff",
  "id" : "5c2eecea-32ac-42c0-be30-f73b15d68429",
  "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
      }
    } ]
  }
}

响应示例

状态码: 200

OK 请求执行完成。

{
  "errorCode" : "SVCSTG.PE.0",
  "errorMessage" : "",
  "context" : {
    "id" : "5c2eecea-32ac-42c0-be30-f73b15d68429",
    "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
        }
      } ]
    }
  }
}

状态码

状态码

描述

200

OK 请求执行完成。

400

BadRequest 非法请求。建议直接修改该请求,不要重试该请求。

401

Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。

403

Forbidden 请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

500

InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。

503

ServiceUnavailable 被请求的服务无效。建议直接修改该请求,不要重试该请求。

错误码

请参见错误码