Create Alert Rule


创建一条告警规则。

约束条件

  • 模型 ID(modelId)在组织下可用
  • 测点(measurepointId)有效
  • 告警级别(severityId)已创建
  • 告警内容(contentId)已创建
  • 查询范围(scope)中的作用域的节点已创建

请求格式

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

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>

请求参数(Body)

注解

以下非必须字段中,必须提供 measurepointIddeviceStatus 作为告警触发条件。

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

AssetNode 结构体

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

响应参数

名称 数据类型 描述
data String 规则的 ID。

示例

请求示例

url: https://{apigw-address}/event-service/v2.1/alert-rules?action=create&orgId=yourOrgId
method: POST
requestBody:
{
    "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"
    }],
    "isEnabled": true,
    "isRoot": true,
    "triggeringDelayTimer": 120
}

返回示例

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

SDK 示例


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