Update Alert Rule


更新告警规则。所有请求参数(Body)中包含的参数,只要不是null,都可以被更新。需要进行校验的字段有:模型 ID(modelId)、测点(measurepointId)、告警级别(severityId)、告警内容(contentId)、查询范围(scope)。

请求格式

POST https://{apigw-address}/event-service/v2.1/alert-rules?action=update

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>
isPatchUpdate Query 必需 Boolean
是否全量更新。
当其值为 true 时,只更新参数中指定字段的值。 当其值为 false 时,更新所有字段的值,即未指定值的字段将被置空。

请求参数(Body)

注解

以下非必须字段中,必须提供 measurepointIddeviceStatus 作为告警触发条件。 - isPatchUpdate = True 时,以下表格的 必需/可选 栏不适用:此时,只有 ruleId 为必选,其他参数都是可选

名称 必需/可选 数据类型 描述
ruleId 必需 String 告警规则编号,由用户指定,是用于定位需要更新的告警规则的唯一标识。
ruleDesc 必需 StringI18n 国际化告警描述,只支持全量更新。其结构参见 国际化名称结构体
modelId 必需 String 规则适用的模型。如何获取 modelId 信息>>
measurepointId 可选 String 资产测点。如何获取测点(pointId)信息>>
deviceStatus 可选 String 设备状态,如 “offline”。详情参见 设置由设备状态触发的告警
condition 必需 String 类查询表达式。如 “${temperature} = 19” 表示 “测点 temperature 的值等于 19”。使用 “/” 表达层级关系,如 “${pointA/att1} = 18” 表示 “测点 A 的 att1 属性值为 18”。目前只支持最多向下一层。如何使用查询表达式>>
severityId 必需 String 告警级别编号
contentId 必需 String 告警内容编号
tags 可选 Map 规则标签,只支持全量更新。详情见 标签的作用与表示方法>>
scope 必需 AssetNode 结构体数组 指定资产树上的节点来表明告警规则的作用域。其结构参见 AssetNode 结构体
isEnabled 可选 Boolean 是否启用,默认启用(true)
triggeringDelayTimer 可选 Integer 延后告警触发时间。单位为秒,范围 [60 - 10800]。当发生匹配告警规则的异常状况,且该状况在所设定的时间内仍未恢复正常时,系统才会产生告警。若设为 0则表示立即触发告警。参见 教程:设置异常持续一段时间后触发的告警

AssetNode 结构体

名称 必需/可选 数据类型 描述
treeId 必需 String 资产树 ID。若为 “all”,则这是一个特殊的节点,代表组织下的全局。
assetId 必需 String 资产 ID。如何获取 asset ID 信息>>

示例

请求示例

url: https://{apigw-address}/event-service/v2.1/alert-rules?action=update&orgId=yourOrgId&isPatchUpdate=false
method: POST
requestBody:
{
    "alertRule": {
        "ruleId": "user BID",
        "ruleDesc": {
      "defaultValue": "Grid is connected from converter",
            "i18nValue": {
                "en_US": "Grid is connected from converter",
                "zh_CN": "电网由变频器连接"
            }
        },
        "modelId": "EnOS_Solar_CombinerBox",
        "measurepointId": "CBX.BranchStateAttr",
        "condition": "${CBX.BranchStateAttr} = 18",
        "severityId": "WARN",
        "contentId": "planetTemperature",
        "tags": {
            "key1": "v1"
        },
        "scope": [{
            "treeId": "ptde66nd",
            "assetId": "FbFy8qyz"
        }],
        "isEenabled": true
     }
}

返回示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "4873095e-621d-4cfd-bc2c-edb520f574ea",
    "data": null
}

SDK 示例


你可以在 Github 上获取告警引擎的 SDK 示例: