阿里巴巴&阿里云出品

企业邮箱

用户指南

服务等级协议

边缘应用告警规则对接

作者: 浏览量:135 更新时间: 2020.06.23

1.对接目标

1.云端:提供云端的SDK API给到ISV用于管理态的应用的远端告警API调用。
2.同步:平台通过云->边同步机制,把云端的应用的告警规则和数据同步到边缘集群。
3.边侧:提供边侧的SDK API给到ISV用于运行态告警规则的校验和信息获取。

2.云端告警规则API

2.1 描述

告警开放服务是应用服务平台告警功能的API版本,除继承原有告警功能外,还扩展支持告警边缘端部署运行不同类型设备联合告警时间窗口延迟触发告警等功能

2.2 准备工作

开始接入告警开放服务前,需要入驻应用服务平台:

  • 创建新项目或进入已有项目,在添加能力中选择空间管理、告警开放服务
  • 确保在空间管理的绑定空间功能中,将需要云端触发告警的设备绑定到空间中。
  • 在项目集成态能力列表中,网关菜单创建网关实例,将需要边缘端触发的告警设备绑定网关。

2.3 接入指南

2.3.1 接入步骤

1

AppKey和AppSecert

AppKey:API访问凭证编号,用于验证API接入API Gateway合法性;
AppSecret:与AppKey配套的验证秘钥,请妥善保管并确保不在网络中传输。
所有的告警服务API均定义在IoT API网关上,AppKey和AppSecert是API网关的凭证访问,用户在接入时,可集成iot-api-gateway-client sdk,并配置AppKey和AppSecert。
在应用服务平台创建项目后,可进入项目,在项目开发态里获取到AppKey和AppSecert。如下图所示:
2

2.4 API说明

返回报文格式

参数 类型 备注
code Integer 业务返回码
message String 英文描述信息
localMessage String 中文描述信息
data null(无数据) 这时没有data字段,表示接口的返回值中没有结果;
JSONObject(对象类型) 表示结果是一系列值,值的类型要根据接口而定;
JSONArray(数组类型) 表示结果是一系列值,值的类型要根据接口而定;
Integer/Long/Byte/Double等
(值类型)
表示结果是一系列值,值的类型要根据接口而定;

业务返回码定义

错误码 错误信息 业务结果描述
200 success. 成功
500 service error. 服务端错误
10374 There are rules with the same content. 该规则触发源设置的规则数量已经超过上限。
28403 The project not exist. 该项目不存在。
28405 Param illegal. 参数非法。
28420 No access to alarm rule. 无权访问该告警规则。
28457 Alarm status illegal. 规则状态不合法。
29262 Alarm lowSceneConfig error. 限值告警下限配置错误。
29263 InstanceId param error. 边缘实例id错误。
29264 InstanceId not exist. 边缘实例id不存在。
29267 Deploy alarm instance error. 部署告警边缘实例失败。
29268 Alarm device not bind. 配置告警的设备未绑定到项目。
29269 Only cloud support multiDevice. 只有云端告警支持多设备。

2.5 具体API开发

2.5.1 新增或更新告警规则

新增或更新云端或边端告警规则。

接口定义

路径:/alarm/rule/addorupdate
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
alarmName String 必填 告警规则名称
alarmLevel Integer 必填 告警等级,0严重,1高,2中,3低
auxiliaryLevel Integer 非必填 辅助等级,0~999,客户自定义
alarmContent String 必填 告警内容
productKey String 必填 设备PK
sceneConfig String 必填 阈值告警规则配置(限值告警高限值配置)
receivers JSONArray 非必填 告警接收者
-> type String 非必填 类型,EMAIL邮件,receivers存在时必填
-> email String 非必填 邮箱地址
alarmType Integer 必填 告警类型,1运行告警,2故障告警
alarmMode Integer 必填 告警模式,1阈值告警,2限值告警
timeWindow Integer 非必填 时间窗口,持续一段时间后触发,单位:秒,边缘告警不填
runEnv String 必填 运行环境,cloud云端,edge边缘端
alarmRuleId String 非必填 告警规则id,更新时必填
lowSceneConfig String 非必填 限值告警的低限值规则配置,限制告警必填

入参明细

参数名 字段描述
sceneConfig 见附录1
lowSceneConfig 见附录1

出参data域(String)

参数名 字段类型 描述
新增或更新的告警记录id

业务示例

新增云端单设备阈值告警规则,时间窗口5分钟。

请求示例

  1. {
  2. "alarmName": "新增告警规则",
  3. "alarmLevel": 0,
  4. "auxiliaryLevel": 10,
  5. "alarmContent": "设备产生告警",
  6. "productKey": "a1gEQeIkPn5",
  7. "sceneConfig": "{/* 见附录1 */}",
  8. "receivers": [
  9. {
  10. "type": "EMAIL",
  11. "email": "test@163.com"
  12. }
  13. ]
  14. "alarmType": 1,
  15. "alarmMode": 1,
  16. "timeWindow": 300,
  17. "runEnv": "cloud",
  18. "multiDevice": 0
  19. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": "8e2e8d41f4604878b413fc588333f068"
  6. }
  7. 返回失败:
  8. {
  9. "code": 28403,
  10. "message": "The project not exist",
  11. "localizedMsg": "该项目不存在"
  12. }

2.5.2 批量删除告警规则

单条或批量删除告警规则,返回删除失败的规则id。

接口定义

路径:/alarm/rule/delete
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
alarmRuleIds JSONArray 必填 告警规则id的集合
clusterId String 非必填 集群id,告警运行在边缘端时必填

入参明细

参数名 字段描述
clusterId 集群ID

点击操作如下图所示:
3

出参data域(JSONArray)

数组子参数
删除失败的告警规则id

出参data域(JSONArray)

数组子参数
删除失败的告警规则id

业务示例

批量删除边缘端告警。

请求示例

  1. {
  2. ["8e2e8d41f4604878b413fc588333f068", "df152383d40842b0814346cc88cfd1b4"],
  3. "pVxFeNmZ8axogEnWCD9E"
  4. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": ["df152383d40842b0814346cc88cfd1b4"]
  6. }
  7. 返回失败:
  8. {
  9. "code": 28420,
  10. "message": "No access to alarm rule",
  11. "localizedMsg": "无权访问该告警规则"
  12. }

2.5.3 分页查询告警规则列表

分页查询告警规则列表,按创建日期倒序。

接口定义

路径:/alarm/rule/query
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
nameLike String 非必填 告警规则名称,模糊匹配
alarmLevel Integer 非必填 告警等级,0严重,1高,2中,3低
status Integer 非必填 启用状态,1启用,0停止
alarmType Integer 非必填 告警类型,1运行告警,2故障告警
alarmMode Integer 非必填 告警模式,1阈值告警,2限值告警,默认阈值告警
runEnv String 非必填 运行环境,cloud云端,edge边缘端
pageNo Integer 非必填 当前页码,默认1
pageSize Integer 非必填 每页条数,默认20

入参明细

参数名 字段描述

出参data域(JSONObject)

参数名 字段类型 描述
total Integer 总条数
pageNo Integer 当前页码
pageSize Integer 每页条数
data Integer 告警规则列表
-> alarmRuleId String 告警规则id
-> alarmName String 告警规则名称
-> status Integer 启用状态,1启用,0停止
-> alarmLevel Integer 告警等级,0严重,1高,2中,3低
-> auxiliaryLevel Integer 辅助等级,0~999,用户自定义
-> content String 告警内容
-> productKey String 设备PK
-> alarmType Integer 告警类型,1运行告警,2故障告警
-> runEnv String 运行环境,cloud云端,edge边缘端
-> multiDevice Integer 是否多设备,0单设备,1多设备
-> alarmMode Integer 告警模式,1阈值告警,2限值告警
-> timeWindow Integer 时间窗口,告警满足条件持续一段时间后触发,单位:秒

业务示例

筛选条件全填,查询第1页10条告警规则。

请求示例

  1. {
  2. "nameLike": "告警",
  3. "alarmLevel": 0,
  4. "alarmType": 1,
  5. "status": 1,
  6. "alarmMode": "2",
  7. "runEnv": "edge",
  8. "pageNo": 1,
  9. "pageSize": 10
  10. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": {
  6. "total": 100,
  7. "pageNo": 1,
  8. "pageSize": 10,
  9. "data": [
  10. {
  11. "alarmRuleId": "df152383d40842b0814346cc88cfd1b4",
  12. "alarmName": "设备告警",
  13. "status": 1,
  14. "alarmLevel": 0,
  15. "auxiliaryLevel": 5,
  16. "content": "设备电压超标",
  17. "productKey": "a1gEQeIkPn5",
  18. "alarmType": 1,
  19. "runEnv": "edge",
  20. "multiDevice": 0,
  21. "alarmMode": 2,
  22. "timeWindow": 600
  23. }
  24. ]
  25. }
  26. }
  27. 返回失败:
  28. {
  29. "code": 28403,
  30. "message": "The project not exist",
  31. "localizedMsg": "该项目不存在"
  32. }

2.5.4 查询单个告警规则的详情

根据告警规则id查询单个告警规则的详情。

接口定义

路径:/alarm/rule/detail/get
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
alarmRuleId String 必填 告警规则id

入参明细

参数名 字段描述

出参data域(JSONObject)

参数名 字段类型 描述
alarmRuleId String 告警规则id
alarmName String 告警规则名称
status Integer 启用状态,1启用,0停止
alarmLevel Integer 告警等级,0严重,1高,2中,3低
auxiliaryLevel Integer 辅助等级,0~999,用户自定义
content String 告警内容
productKey String 设备PK
sceneConfig String 阈值告警规则配置(限值告警高限值配置)
receivers JSONArray 告警接收者
-> type String 类型,EMAIL邮件
-> email String 邮箱地址
alarmType Integer 告警类型,1运行告警,2故障告警
lowSceneConfig String 限值告警的低限值规则配置
runEnv String 运行环境,cloud云端,edge边缘端
multiDevice Integer 是否多设备,0单设备,1多设备
alarmMode Integer 告警模式,1阈值告警,2限值告警
timeWindow Integer 时间窗口,告警满足条件持续一段时间后触发,单位:秒

业务示例

查询单个告警规则的详细信息。

请求示例

  1. {
  2. "alarmRuleId": "df152383d40842b0814346cc88cfd1b4"
  3. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": {
  6. "alarmRuleId": "df152383d40842b0814346cc88cfd1b4",
  7. "alarmName": "设备告警",
  8. "status": 1,
  9. "alarmLevel": 0,
  10. "auxiliaryLevel": 5,
  11. "content": "设备电压超标",
  12. "productKey": "a1gEQeIkPn5",
  13. "sceneConfig": "{}",
  14. "receivers": [
  15. {
  16. "type": "EMAIL",
  17. "email": "test@163.com"
  18. }
  19. ],
  20. "alarmType": 1,
  21. "lowSceneConfig": "{}",
  22. "runEnv": "edge",
  23. "multiDevice": 0,
  24. "alarmMode": 2,
  25. "timeWindow": 600
  26. }
  27. }
  28. 返回失败:
  29. {
  30. "code": 28403,
  31. "message": "The project not exist",
  32. "localizedMsg": "该项目不存在"
  33. }

2.5.5 批量操作告警规则启停

批量启动、停止告警规则。

接口定义

路径:/alarm/rule/status/update
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
alarmRuleIds JSONArray 必填 告警规则id
operType Integer 必填 操作类型,1启动,0停止
clusterId String 非必填 集群id,告警运行在边缘端时必填

入参明细

参数名 字段描述

出参data域(JSONArray)

参数名 字段类型 描述
启停失败的告警规则id

业务示例

批量停止告警规则。

请求示例

  1. {
  2. ["8e2e8d41f4604878b413fc588333f068", "df152383d40842b0814346cc88cfd1b4"],
  3. "operType": 0,
  4. "pVxFeNmZ8axogEnWCD9E"
  5. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": ["df152383d40842b0814346cc88cfd1b4"]
  6. }
  7. 返回失败:
  8. {
  9. "code": 28420,
  10. "message": "No access to alarm rule",
  11. "localizedMsg": "无权访问该告警规则"
  12. }

2.5.6 批量更新告警记录确认状态

批量确认告警记录。

接口定义

路径:/alarm/record/confirm
版本:1.0.0

入参

参数名 字段类型 是否必填 描述
alarmRecordIds JSONArray 必填 告警记录id
confirm Integer 必填 确认状态,0未确认,1已确认

入参明细

参数名 字段描述

出参data域(JSONObject)

参数名 字段类型 描述
修改确认状态失败的告警记录id

业务示例

批量确认告警记录。

请求示例

  1. {
  2. "alarmRecordIds": [1000000001, 1000000002],
  3. "confirm": 1
  4. }

返回示例

  1. 返回成功:
  2. {
  3. "code": 200,
  4. "message": "success",
  5. "data": [1000000002]
  6. }
  7. 返回失败:
  8. {
  9. "code": 28403,
  10. "message": "The project not exist",
  11. "localizedMsg": "该项目不存在"
  12. }

3.云端和边缘端数据同步API

地产平台通过封装LP云边同步能力,对外开放如下API:
0、获取边缘集群列表
1、数据同步预检查
2、触发数据同步
3、数据同步结果查询

3.1 接口定义

分页参数会出现在请求参数和返回结果中,用于下文中API调用参照。

  • 在请求参数中代表请求分页的页数(pageNo)和每页的记录数(pageSize)。
  • 在响应结果中的页数(pageNo)和每页的记录数(pageSize)与请求参数一致,同时还有total字段代表数据总数。

所有的分页接口除特殊说明外,都遵循下面的约束:

参数 类型 备注
pageNo Integer 请求的页码
非必填,默认为1,有效范围 [1, ∞)
pageSize Integer 每页的记录数
非必填,默认为20,有效范围[1,100]

获取集群列表

接口定义

path 版本 是否需要登录
/home/paas/cluster/edge/query 1.0.0

入参

字段 类型 是否必传 备注
pageNo Integer 请求的页码,请求的页码,详细见上述分页参数定义。
pageSize Integer 每页的记录数,详细见请求的页码,详细见上述分页参数定义。

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data JSONObject
-data ClusterDTOList 分页数据对象列表ClusterDTOList
-pageNo Integer 请求的页码,详细见请求的页码,详细见上述分页参数定义。
-pageSize Integer 请求的页码,详细见请求的页码,详细见上述分页参数定义。
-total Integer 总记录数

分页数据对象ClusterDTOList

id String 集群ID
name String 集群名称
gmtCreate String 集群创建时间
gmtModified String 集群修改时间

示例

请求示例

  1. {
  2. "pageNo":1,
  3. "pageSize":20
  4. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data":{
  6. "pageNo": 1,
  7. "pageSize": 20,
  8. "total": 10,
  9. "data":[{
  10. "id": "xxx",
  11. "name": "cluster01",
  12. "gmtCreate": "2020-03-04 18:00:00",
  13. "gmtModified": "2020-03-04 18:00:00"
  14. }]
  15. }
  16. }

数据同步预检查

接口定义

path 版本 是否需要登录
/home/paas/data/edge/sync/precheck 1.0.0

入参

字段 类型 是否必传 备注
clusterId String 集群ID
opsType String SYNC_DATA - 同步数据
CLEAR_DATA - 清理数据
dataTypeList JSONArray 数据类型列表

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data String SYNCING - 同步中
NO - 不需要同步
YES - 需要同步

示例

请求示例

  1. {
  2. "clusterId": "xxx",
  3. "opsType": "SYNC_DATA",
  4. "dataTypeList": [
  5. "ACCOUNT",
  6. "SPACE"

5折钜惠,豪礼相送:尊享1V1专员服务、赠送“对接钉钉”服务、赠送英文.cn/.com顶级域名

填写资料马上体验阿里企业邮箱

工作时间5-10分钟将由1对1顾问为您提供尊享服务

  • *公   司

    公司名称不能为空

  • *帐号数

    帐号数不能为空或输入有误

  • *电   话

    电话不能为空或输入有误

  • 联系人
  • 域名