
# 添加告警策略 - CreateAlarmRule
#### 功能介绍
创建告警中心的告警策略，包含规则表达式、通知方式、企业项目等配置。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-apm/apm_04_0007.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-apm/apm_04_0021.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                  | 访问级别  | 资源类型（\*为必须） | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | apm：：createAdminInfo | Write | -           | g：EnterpriseProjectId | -  | -      |
     
  
 
#### URI
POST /v2/alarm-center/rule/create-alarm-rule
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 从IAM服务获取的用户Token。获取方式请参见：[获取Token](https://support.huaweicloud.com/api-apm/apm_api_0010.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表2请求Body参数 
| 参数                                  | 是否必选 | 参数类型                                                                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| name                                | 是    | String                                                                                                              | **参数解释**： 告警策略名称。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                           |
| context                             | 是    | String                                                                                                              | **参数解释**： 通知内容。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                             |
| monitor_item_id                     | 否    | Long                                                                                                                | **参数解释**： 监控项ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                         |
| collector_id                        | 是    | Integer                                                                                                             | **参数解释**： 采集器类型ID，决定告警策略监控的数据采集器类型。 **约束限制**： 不涉及。 **取值范围**： 系统中支持的采集器ID。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                 |
| level                               | 是    | String                                                                                                              | **参数解释**： 告警级别。 **约束限制**： 不涉及。 **取值范围**： - COMMON：轻微。  - CRITICAL：严重。   **默认取值**： 不涉及                                                                                                                                           |
| metric_set_id                       | 是    | Integer                                                                                                             | **参数解释**： 指标集ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                         |
| send_interval                       | 是    | Integer                                                                                                             | **参数解释**： 重复告警发送间隔（分钟）。 **约束限制**： 不涉及。 **取值范围**： 大于等于10的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                               |
| cycle_number                        | 是    | Integer                                                                                                             | **参数解释**： 连续多少个周期满足条件才告警。 **约束限制**： 不涉及。 **取值范围**： 1\~10之间的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                            |
| exception_number                    | 是    | Integer                                                                                                             | **参数解释**： 连续多少次异常才告警。 **约束限制**： 不涉及。 **取值范围**： 1\~10之间的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                |
| data_type                           | 是    | String                                                                                                              | **参数解释**： 数据聚合类型。 **约束限制**： 不涉及。 **取值范围**： - SINGLE：单机  - AGGREGATE：聚合   **默认取值**： 不涉及。                                                                                                                                          |
| recover_notify                      | 是    | Boolean                                                                                                             | **参数解释**： 是否发送恢复通知。 **约束限制**： 不涉及。 **取值范围**： - true：发送恢复通知。  - false：不发送恢复通知。   **默认取值**： 不涉及。                                                                                                                              |
| recover_interval                    | 否    | Integer                                                                                                             | **参数解释**： 告警恢复阈值。 **约束限制**： 不涉及。 **取值范围**： 整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                            |
| alarm_rule_expression_create_params | 是    | Array of [AlarmRuleExpressionCreateParam] objects         | **参数解释**： 告警规则表达式列表。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| alarm_rule_expressions              | 否    | Array of [AlarmRuleExpressionCreateParam] objects         | **参数解释**： 告警规则表达式列表（备用字段）。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| multi_row_match                     | 是    | Boolean                                                                                                             | **参数解释**： 是否启用多行匹配。 **约束限制**： 不涉及。 **取值范围**： - true：启用多行匹配。  - false：不启用多行匹配。   **默认取值**： 不涉及。                                                                                                                                      |
| use_default_notifies                | 是    | Boolean                                                                                                             | **参数解释**： 是否使用默认通知方式。 **约束限制**： 不涉及。 **取值范围**： - true：使用默认通知方式。  - false：不使用默认通知方式。   **默认取值**： 不涉及                                                                                                                             |
| alarm_rule_notify_models            | 否    | Array of [TemplateAlarmRuleNotifyCreateParam] objects | **参数解释**： 告警通知配置列表。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| notify_methods                      | 是    | Array of strings                                                                                                    | **参数解释**： 通知方式列表。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| http_notify_type                    | 否    | String                                                                                                              | **参数解释**： HTTP通知类型。 **约束限制**： 不涉及。 **取值范围**： - SINGLE  - AGGREGATE   **默认取值**： 不涉及                                                                                                                                            |
| alarm_group_id                      | 否    | Long                                                                                                                | **参数解释**： 关联的告警分组ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                     |
| eps_id                              | 否    | String                                                                                                              | **参数解释**： 企业项目ID。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： "0"                                                                                                                                                                                                                                                                                                            |
| smn_notify_methods                  | 否    | Array of [SmnNotifyParam] objects                                         | **参数解释**： SMN通知方式列表。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| source                              | 否    | String                                                                                                              | **参数解释**： 应用类型。 **约束限制**： 不涉及。 **取值范围**： - APM2  - TRACING  - WEB  - OTEL   **默认取值**： 不涉及。 |
   
 表3AlarmRuleExpressionCreateParam 
| 参数                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| metric_type            | 是    | String  | **参数解释**： 指标类型。 **约束限制**： 不涉及。 **取值范围**： - KEY  - METRIC   **默认取值**： 不涉及。                     |
| expression_operator    | 否    | String  | **参数解释**： 表达式运算符。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                              |
| order_number           | 是    | Integer | **参数解释**： 序号，维度和指标都从1开始计数。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。                                                                                                                                                                  |
| threshold_operator     | 是    | String  | **参数解释**： 阈值运算符。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                               |
| threshold              | 是    | String  | **参数解释**： 阈值。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                                  |
| first_metric_id        | 是    | Integer | **参数解释**： 第一个指标ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。                                                                                                                                                                          |
| first_metric_function  | 否    | String  | **参数解释**： 第一个指标的聚合函数。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                          |
| advance                | 是    | Boolean | **参数解释**： 是否为高级表达式。 **约束限制**： 不涉及。 **取值范围**： - true：是高级表达式。  - false：不是高级表达式。   **默认取值**： 不涉及。 |
| multi_metrics          | 是    | Boolean | **参数解释**： 是否是多指标。 **约束限制**： 不涉及。 **取值范围**： - true：是多指标。  - false：不是多指标。   **默认取值**： 不涉及。     |
| second_metric_value    | 否    | String  | **参数解释**： 第二个指标的值。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                             |
| second_metric_function | 否    | String  | **参数解释**： 第二个指标的聚合函数。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                          |
| second_metric_type     | 否    | String  | **参数解释**： 第二个指标类型。 **约束限制**： 不涉及。 **取值范围**： - METRIC  - NUMBER   **默认取值**： 不涉及。              |
| metric_operator        | 否    | String  | **参数解释**： 两个指标的运算符。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                            |
| expression             | 否    | String  | **参数解释**： 高级表达式。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。                                                                                                                                                                               |
   
 表4TemplateAlarmRuleNotifyCreateParam 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| receiver_id    | 否    | Integer | **参数解释**： 接收人ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及 |
| notify_channel | 否    | String  | **参数解释**： 通知渠道。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。    |
| region         | 否    | String  | **参数解释**： 区域。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。      |
   
 表5SmnNotifyParam 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| id         | 否    | Long   | **参数解释**： SMN主题ID。 **约束限制**： 不涉及。 **取值范围**： 大于0的整数。 **默认取值**： 不涉及。 |
| topic_name | 否    | String | **参数解释**： SMN主题名称。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及     |
| project_id | 否    | String | **参数解释**： 项目ID。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及。       |
| topic_urn  | 否    | String | **参数解释**： SMN主题URN。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及    |
| region     | 否    | String | **参数解释**： 区域。 **约束限制**： 不涉及。 **取值范围**： 字符串。 **默认取值**： 不涉及          |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数   | 参数类型   | 描述                                                                                                                                             |
|:---|:---|:---|
| id   | Long   | **参数解释**： 创建成功后返回的资源ID。 **取值范围**： 不涉及 |
| name | String | **参数解释**： 资源名称。 **取值范围**： 不涉及         |
   
#### 请求示例
```
/v2/alarm-center/rule/create-alarm-rule
{
    "alarm_rule_expression_create_params"： [
        {
            "advance"： false,
            "metric_type"： "METRIC",
            "first_metric_id"： 193,
            "multi_metrics"： false,
            "order_number"： 1,
            "threshold"： 1000,
            "threshold_operator"： "GT"
…    "smn_notify_methods"： [
        {
            "topic_name"： "alarm_topic",
            "project_id"： "037bcxxxxxxxxxa3275da",
            "topic_urn"： "urn：smn：cn-north-4：037bccxxxxx3275da：alarmtopic",
            "region"： "cn-north-4"
        }
    ],
    "eps_id"： "0"
}
```
#### 响应示例
**状态码：200**
添加告警策略成功。
```
{
  "id" ： 12644
}
```
#### 状态码
| 状态码 | 描述                |
|:---|:---|
| 200 | OK                |
| 400 | Bad Request       |
| 403 | Forbidden         |
| 429 | Too Many Requests |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-apm/ErrorCode.html)。
