Search Active Alerts


查询当前告警。

请求格式

POST https://{apigw-address}/event-service/v2.1/active-alerts?action=search

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织 ID。如何获取 orgId 信息>>

请求参数(Body)

名称

必需/可选

数据类型

描述

modelId

可选

String

资产所属模型 ID。如何获取 modelId 信息>>

assetId

可选

String

资产 ID。如何获取 assetId 信息>>

measurepointsId

可选

String

资产测点 ID。如何获取测点(pointId)信息>>

startOccurTime

可选

String

查询起始时间,与 endOccurTime 配合使用,表示查询该时段内被触发的告警。见 API 在使用的时间参数>>

endOccurTime

可选

String

查询结束时间,与 startOccurTime 配合使用,表示查询该时段内被触发的告警。见 API 在使用的时间参数>>

expression

可选

String

查询表达式,支持类 SQL 的查询。目前支持的逻辑运算是 and 和 or,查询的字段和对应的运算符清单如下。

  • deviceStatus: = 和 in

  • modelIdassetIdmeasurepointIdseverityIdtypeIdsubTypeIdcontentIdeventTypeeventIdtreeIdhitRuleId: =、in 和 !=

  • assetPath: like

  • tag.*: =、in、!= 和 exists

如何使用查询表达式>>

scope

可选

Scope 结构体

查询指定资产树或资产树上某资产节点下的告警,并指定是否返回被屏蔽的衍生告警。该参数不可与 rootAlert 参数同时使用。见 Scope 结构体>>

rootAlert

可选

RootAlert 结构体

查询被指定根源告警屏蔽的衍生告警。该参数不可与 scope 参数同时使用。见 RootAlert 结构体>>

pagination

可选

Pagination 请求结构体

随机分页。不支持使用 sorters 对结果进行排序,结果按照 occurTime ,新创建的靠前排列。如未指定,默认分页大小为 10。见 Pagination 请求结构体>>

Scope 结构体

名称

必需/可选

数据类型

描述

treeId

必需

String

资产树 ID。

fromAssetId

可选

String

资产 ID。

当未指定时,返回 treeId 指定的资产树内所有节点的告警; 当指定时,返回该资产节点下(包含该节点)的所有告警。

includeDerivative

可选

Boolean

是否返回衍生告警,默认为 false ,不返回衍生告警。

RootAlert 结构体

名称

必需/可选

数据类型

描述

treeId

可选

String

资产树 ID。

rootAlertId

必需

String

根源告警 ID。

响应参数

名称

数据类型

描述

data

ActiveAlert 结构体数组

有关 ActiveAlert 结构体的定义,见 ActiveAlert 结构体>>

ActiveAlert 结构体

名称

数据类型

描述

eventId

String

告警ID。

orgId

String

资产所属的组织 ID。

assetId

String

资产ID。

modelId

String

资产所属模型 ID。

modelIdPath

String

模型所属路径。

measurepointId

String

资产测点。

deviceStatus

String

设备状态。

hitRuleId

String

触发的告警规则的编号。

value

Integer/Double/Struct

测点值。若告警规则中指定了 triggeringDelayTimer,则测点值为 triggeringDelayTimer 开始计时时测点的值。参照 ThingModel结构体>>

occurTime

Long

告警发生的时间,以 UTC 时间表示。

localOccurTime

String

告警发生的时间,以本地时间表示。

createTime

Long

该告警记录的入库时间,以 UTC 时间表示。

updateTime

Long

该告警记录的更新时间,以 UTC 时间表示。

severityId

String

告警级别标识符。

severityDesc

StringI18n

告警级别描述。

typeId

String

告警类别标识符。

typeDesc

StringI18n

告警类型的具体描述。

subTypeId

String

告警子类型。

subTypeDesc

StringI18n

告警子类型描述。

contentId

String

告警内容标识符。

contentDesc

StringI18n

告警内容描述。

eventType

Integer

事件类型: 0:系统恢复的告警;1:系统触发的告警;2:通过API恢复的告警;3:通过API插入的告警。

tag

Map

告警记录标签。

ruleDesc

StringI18n

规则描述

assetPaths

String 数组

根据告警规则的作用域,返回告警资产在资产树上的路径列表。

返回格式为:[“treeId1:/assetId1/assetId2/assetIdx”, “treeId2:/assetId3/assetIdx”]。

maskedBy

String 数组

如果该告警条目是衍生告警,返回导致该告警被屏蔽的根源告警信息。

返回格式为:[“treeId1:eventId1”, “treeId1:eventId2”]。

示例

请求示例

url: https://{apigw-address}/event-service/v2.1/active-alerts?action=search&orgId=yourOrgId
method: POST
requestBody:
{
    "expression":"eventId='20190531b83331a8549e1e956f2413552eda1ec9'",
    "pagination":{
        "pageNo":1,
        "pageSize":20
    },
  "action": "search"
}

返回示例

{
    "pagination":{
        "pageNo":1,
        "pageSize":20,
        "totalSize":1,
        "sortedBy":[
            {
                "field":"occurTime",
                "order":"DESC"
            },
            {
                "field":"eventId",
                "order":"DESC"
            }
        ]
    },
    "code":0,
    "msg":"OK",
    "requestId":"a9689b9f-0cb6-4e47-a41c-bd459b687309",
    "data":[
        {
            "eventId":"20190531b83331a8549e1e956f2413552eda1ec9",
            "orgId":"yourOrgId",
            "assetId":"qu5TmJRj",
            "modelId":"Inverter_Model",
            "modelIdPath":"/Inverter_Model",
            "measurepointId":"power",
      "deviceStatus": null,
      "hitRuleId": null,
            "value":"3.5559796405967736",
            "occurTime":1559304899404,
            "localOccurTime":"2019-06-01 02:14:59",
            "createTime":1559304899519,
            "updateTime":1560745022684,
            "severityId":"alert_001",
            "severityDesc":{
                "i18nValue":{
                    "en_US":"警告",
                    "zh_CN":"警告"
                }
            },
            "typeId":"errorType",
      "subTypeId": null,
            "typeDesc":{
                "i18nValue":{
                    "en_US":"errorType desc",
                    "zh_CN":""
                }
            },
      "subTypeDesc":{
                "i18nValue":{
                    "en_US":"",
                    "zh_CN":""
                }
            },
            "contentId":"001",
            "contentDesc":{
                "i18nValue":{
                    "en_US":"001",
                    "zh_CN":"001"
                }
            },
            "eventType":1,
            "tag":{
                "Tag999":"999"
            },
      "ruleDesc":{
                "i18nValue":{
                    "en_US":"",
                    "zh_CN":""
                }
            },
      "assetPaths": null,
      "maskedBy": null
        }
    ]
}

Java SDK 调用示例

public void testSearchActiveAlerts() {
    String accessKey = "yourAppAccessKey";
    String secretKey = "yourAppSecretKey";
    SearchActiveAlertRequest request = new SearchActiveAlertRequest();
    request.setOrgId("yourOrgId");
    request.setExpression("eventId='yourEventId'");
    Pagination pagination = new Pagination();
    pagination.setPageSize(20);
    pagination.setPageNo(1);
    request.setPagination(pagination);
    try {
        SearchActiveAlertResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
            .url("https://{apigw-address}")
            .getResponse(request, SearchActiveAlertResponse.class);
        Gson gson = new Gson();
        System.out.println(gson.toJson(response));
    } catch (Exception e) {
        System.out.print(e);
    }
}