# 添加阈值规则
#### 功能介绍
该接口用于添加一条阈值规则，包括如下工作。
#### URI
POST /v1/{project_id}/ams/alarms
#### 请求消息
**请求参数**
请求参数如[表1]所示。
 表1请求参数 
| 参数                     | 是否必选 | 参数类型    | 取值范围                                                                | 描述                            |
|:---|:---|:---|:---|:---|
| project_id             | 是   | String                   | -                                                                   | 租户从IAM申请到的projectid，一般为32位字符串。 |
| statistic              | 是   | String                      | "maximum"，"minimum"，"average"， "sum"，"sampleCount"                  | 统计方式                          |
| namespace              | 是   | String                    | -                                                                   | 命名空间                          |
| metricName             | 是   | String                      | 取值满足表达式\[a-zA-Z_:\]\[a-zA-Z0-9_:\]\*。首字符必须以字母、下划线或冒号开头。其他字符为字母、数字下划线、冒号。长度为1\~255个字符。 | 指标名称                           |
| period                  | 是   | Integer                     | -                                                                   | 统计周期                          |
| alarmLevel             | 是   | Integer                    | -                                                                   | 告警级别                          |
| evaluationPeriods      | 是   | Integer                  | -                                                                   | 连续周期                          |
| comparisonOperator     | 是   | String                   | -                                                                   | 阈值条件表达式                       |
| threshold              | 是   | String                     | -                                                                   | 阈值                            |
| alarmName              | 是   | String                   | -                                                                   | 阈值名称                          |
| dimensions             | 是   | String                     | -                                                                    | 指标维度                          |
| unit                   | 是   | String                    | -                                                                    | 指标单位                           |
| actionEnabled          | 否   | Boolean | -                                                                   | 告警是否启用                        |
| alarmActions           | 否   | Array   | -                                                                   | 告警动作                          |
| alarmAdvice            | 否   | String                   | -                                                                   | 告警建议                          |
| alarmDescription       | 否   | String                    | -                                                                   | 阈值规则描述                         |
| insufficientDataActions | 否   | Array   | -                                                                   | 数据不足动作                        |
| okActions               | 否   | Array   | -                                                                   | 恢复动作                          |
   
**Header说明**
请求消息头（Header）如[表2]所示。
 表2Header说明 
| 名称               | 是否必选 | 说明                     |
|:---|:---|:---|
| X-Auth-Token | 是     | 从IAM服务获取的用户Token。    |
| Content-Type    | 是     | 指定类型为application/json。 |
   
**请求示例**
```
{ 
    "actionEnabled": false, 
    "alarmActions": [], 
    "alarmAdvice": "", 
    "alarmDescription": "", 
    "alarmLevel": 3, 
    "alarmName": "aaaaaaaa", 
    "comparisonOperator": ">=", 
    "dimensions": [ 
        { 
            "name": "appName", 
            "value": "rhm-broker" 
        } 
    ], 
    "evaluationPeriods": 1, 
    "insufficientDataActions": [], 
    "metricName": "cpuCoreLimit", 
    "namespace": "PAAS.CONTAINER", 
    "okActions": [], 
    "period": 60000, 
    "statistic": "average", 
    "threshold": 0, 
    "unit": "Core" 
}
```
#### 响应消息
**响应参数**
响应参数如[表3]所示。
 表3响应参数 
| 参数名称         | 类型 | 描述     |
|:---|:---|:---|
| errorCode     | String              | 响应码。   |
| errorMessage | String               | 响应信息描述。 |
| alarmId       | Integer              | 阈值规则编码 |
   
**响应示例**
```
{ 
    "errorCode": "SVCSTG.AMS.2000", 
    "errorMessage": "success", 
    "alarmId": 12345678 
}
```
#### 状态码
- 正常 状态码如[表4]所示。
   表4状态码 
  | 状态码 | 编码  | 描述         |
  |:---|:---|:---|
  | 200 | OK | 请求响应成功。 |
     
  

- 异常 状态码如[表5]所示。更多状态码请见[状态码](https://support.huaweicloud.com/api-aom/aom_04_0021.html)。
   表5状态码 
  | 状态码 | 编码                    | 描述                                                                                                                                                                |
  |:---|:---|:---|
  | 400   | BadRequest        | 非法请求。 建议直接修改该请求，不要重试该请求。                                                           |
  | 401 | Unauthorized         | 在客户端提供认证信息后，返回该状态码，表明服务端指出客户端所提供的认证信息不正确或非法。                                                                                                                 |
  | 403 | Forbidden          | 请求被拒绝访问。 返回该状态码，表明请求能够到达服务端，且服务端能够理解用户请求，但是拒绝做更多的事情，因为该请求被设置为拒绝访问，建议直接修改该请求，不要重试该请求。 |
  | 500 | InternalServerError | 表明服务端能被请求访问到，但是不能理解用户的请求。                                                                                                                                    |
  | 503 | ServiceUnavailable   | 被请求的服务无效。 建议直接修改该请求，不要重试该请求。                                                    |
     
  
 
#### 错误码
表6错误码 
| 错误码                 | 错误信息                                                    | 处理措施                |
|:---|:---|:---|
| SVCSTG_AMS_4000101   | Invalid alarm name.                                      | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000102  | The threshold rule name already exists.                  | 阈值名称已存在，请更换名称再次创建。 |
| SVCSTG_AMS_4000103    | Invalid alarm description.                              | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000104    | Invalid alarm threshold.                                 | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000105  | Invalid alarm period.                                   | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000106   | Invalid email list.                                      | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000107   | The maximum number of threshold rules has been reached. | 请联系技术支持工程师扩容。       |
| SVCSTG_AMS_4000108 | Invalid time range for alarm queries.                     | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000109 | Invalid project ID.                                      | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000115   | Invalid request parameter.                                | 请检查对应的参数是否符合要求。      |
| SVCSTG_AMS_4000118  | Invalid number of consecutive periods.                 | 请检查对应的参数是否符合要求。      |
| SVCSTG_AMS_4000119  | Invalid alarm statistic.                                | 请检查对应的参数是否符合要求。      |
| SVCSTG_AMS_4000120   | Invalid alarm comparison operator.                      | 请检查对应的参数是否符合要求。     |
| SVCSTG_AMS_4000121   | The alarm does not exist.                               | 请在界面上查看对应的阈值规则是否存在。   |
| SVCSTG_AMS_5000000    | Internal server error.                                   | 请联系技术支持工程师解决。        |
   
