
# 添加告警
向AOM发送告警。
#### Topic
$hw/alarm/{appname}/add
| 参数      | 类型     | 说明            |
|:---|:---|:---|
| appname | String | 应用名称，任意字符串即可。 |
   
#### 使用方式
使用MQTT客户端**发布**该Topic。
#### 参数说明
| 参数                    | 类型      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| alarmName             | String  | 告警名称，需要支持中英文两个版本，格式为"中文##English"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| alarmId               | String  | 告警ID，需要保证为唯一值。可以参考[alarmId生成方法]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| detailedInformation   | String  | 告警描述，需要支持中英文两个版本，格式为"中文##English"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| url                   | String  | 根因分析跳转入口，如果没有则填空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| source                | String  | 告警源，只能是由大小写字母组成的字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| cleared               | Boolean | 清除告警标示。 - true：表示上报的告警已经清除。  - false：表示需要手动清除。                                                                                                                                                                                                                                                                                                                                                                                                          |
| policyID              | String  | 告警的规则ID，阈值规则填写ruleId，没有则填写空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| objectInstance        | String  | 定位信息，如果没传此字段，则该字段默认取alarmId的值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| perceivedSeverity     | Integer | 告警级别 - 1：紧急  - 2：重要  - 3：次要  - 4：提示                                                                                                                                                                                                                                                                         |
| resourceId            | Object  | 告警信息，具体请参见[表1]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| neType                | String  | 产生告警的资源的类型 - Application（应用）  - DB（数据库）  - Host（主机）                                                                                                                                                                                                                                                                                                                                |
| eventType             | Integer | 告警类型 - 21：动态阈值告警  - 22：批量阈值告警  - 23：阈值告警  - 24：系统类告警  - 25：新增/删除探针  - 26：agent安装类告警  - 27：配额超限类告警   |
| probableCause         | String  | 可能原因                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| proposedRepairActions | String  | 修复建议                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表1resourceId 
| 参数        | 类型     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| namespace | String | 资源类型，有如下几种指标 - PAAS.CONTAINER表示容器指标  - PAAS.NODE表示节点指标                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| dimension | Object | 维度信息，用于跟监控上报的节点应用信息关联起来。具体请参见[表2]。 目前涉及到告警主要是节点和应用两种类型，所以只需要关注节点和应用这两种维度。 应用维度可以细分为服务、实例、容器和进程，这四个维度可以选择一个或多个上报。 - 服务维度需要上报：clusterId、nameSpace和serviceID  - 实例维度需要上报：podID和podName  - 容器维度需要上报：containerID和containerName  - 进程维度需要上报：processID和processName   |
   
 表2Dimension 
| 参数            | 类型     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| clusterId     | String | 项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-ief/projectid.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| nameSpace     | String | 默认为default。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| nodeIP        | String | 节点IP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| serviceID     | String | 服务ID。 - 容器应用为{projectId}_{hostid}_{appName}的md5值。  - 进程应用为{projectId}_{hostid}_{进程名}_{进程pid}的md5值。  - processID定义方式：md5({projectId})_{hostid}_md5({进程名})_{进程pid}。 md5(projectId) 表示求projectId的md5值，md5({进程名})表示求进程名的md5值    这些维度信息需要与监控上报的维度信息一致，不一致会导致无法关联到对应的资源。 |
| podID         | String | 实例ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| podName       | String | 实例名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| containerID   | String | 容器ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| containerName | String | 容器名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| processID     | String | 进程ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| processName   | String | 进程名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Application   | String | 应用名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 #### alarmId生成方法
![](https://support.huaweicloud.com/usermanual-ief/public_sys-resources/note_3.0-zh-cn.png)
alarmId可以不使用本方法生成，只要保证唯一就可以。
使用**{projectId}_{产生告警的服务名}_{维度信息}_{指标名称}_{告警类型}_{规则信息}**生成md5值。
其中：
- **projectId** ：项目ID，获取方式请参见[获取项目ID](https://support.huaweicloud.com/api-ief/projectid.html)。
- **维度信息** ：
  - 节点信息：{clusterId}_{namespace}_{ip}
  
  - 容器信息：{clusterId}_{namespace}_{appName}_{podName}_{containerId}
  
  - 应用信息：{clusterId}_{namespace}_{appName}
   
- **告警类型** ：
  - 21：动态阈值告警
  
  - 22：批量阈值告警
  
  - 23：阈值告警
  
  - 24：系统类告警
  
  - 25：新增/删除探针
  
  - 26：agent安装类告警
   
- **规则信息**：阈值规则的告警使用阈值规则名称；业务自己触发的告警（没有规则）则填写NA。动态阈值的则填写policyId。
 
#### 示例
- 节点告警
  ```
  {
      "alarmName": "测试##test",
      "alarmId": "73ccbccce05de74f9d3dda42f6ecfe20",
      "detailedInformation": "测试##test",
      "url": "",
      "source": "IEF",
      "cleared": false,
      "policyID": "",
      "perceivedSeverity": 4,
      "resourceId": {
          "namespace": "PAAS.NODE",
          "dimension": {
              "clusterId": "e277befa37a64ed1aa25b522e686bc28",
              "nameSpace": "default",
              "nodeIP": "192.168.0.164"
          }
      },
      "neType": "Host",
      "eventType": 23
  }
  ```
  
- 应用告警
  ```
  {
      "alarmName": "应用重启test##Application restart",
      "alarmId": "b09076ff565c59d4da0db0c9223781",
      "detailedInformation": "应用重启 test##Application restart test",
      "url": "",
      "source": "IEF",
      "cleared": false,
      "policyID": "",
      "perceivedSeverity": 3,
      "resourceId": {
          "namespace": "PAAS.CONTAINER",
          "dimension": {
              "containerName": "container-e991acd3-864c-4038-8a90-e042eebab496",
              "containerID": "70b385315c8ac507b3de7dfe1258932cea0b53a850b7d030ce7ed0a55c47877c",
              "podID": "0e9ce4fd-b732-11e9-8a30-fa163e9b3546",
              "podName": "hxkapp1-7898f5bd4b-2lj8z"
          }
      },
      "neType": "Application",
      "eventType": 23
  }
  ```
  
 
