Search Alert Rule¶
Search for alert rules based on the search criteria.
Request Format¶
POST https://{apigw-address}/event-service/v2.1/alert-rules?action=search
Request Parameters (URI)¶
Name |
Location (Path/Query) |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|---|
orgId |
Query |
Mandatory |
String |
The organization ID which the asset belongs to. How to get orgId>> |
Request Parameters (Body)¶
Name |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
modelId |
Optional |
String |
The model ID. How to get modelID>> |
measurepointId |
Optional |
String |
The measurement point ID. How to get pointId>> |
expression |
Optional |
String |
The query expression, which supports sql-like query. The supported logical operators are “and” and “or”, and query fields are as per the below.
|
pagination |
Optional |
Pagination Request Struct |
Lists the paging requirements in a request. When not specified, 10 records are displayed per page by default. The maximum records per page is 1000 but for optimal performance, it is recommended to have not more than 50 records per page. You can use |
Response Parameters¶
Name |
Data Type |
Description |
---|---|---|
data |
Array of AlertRule Struct |
The list of alert rule details. For more information, see AlertRule Struct. |
AlertRule Struct ¶
Name |
Data Type |
Description |
---|---|---|
orgId |
String |
The organization ID which the asset belongs to. |
ruleId |
String |
The alert rule ID. |
ruleDesc |
StringI18n |
The alert rule description. |
modelId |
String |
The model ID. |
measurepointId |
String |
The measurement point ID. |
deviceStatus |
String |
The device status. |
condition |
String |
The query expression. For example, “${temperature} = 19” indicates that the value of the measurement point “temperature” is 19. A slash “/” is used to express the hierarchical relationship, for which only one downward layer is supported now. For example, “${pointA/att1} = 18” indicates the “att1” attribute value of the measurement point “A” is 18. |
isEnabled |
Boolean |
|
severityId |
String |
The alert severity ID. |
severityDesc |
StringI18n |
The alert severity description. |
contentId |
String |
The alert content ID. |
contentDesc |
StringI18n |
The alert content description. |
tags |
Map |
User-defined tags. (The Key and Value are of String type.) |
isRoot |
Boolean |
|
scope |
AssetNode struct |
Uses the assetNode struct to indicate the scope of the asset to which the alert applies to. For more information, see AssetNode Struct. |
triggeringDelayTimer |
Integer |
The amount of time to delay triggering the alert. The unit is seconds with a range between [60 - 10800]. The alert will only be triggered when an anomaly that matches the alert rule occurs and does not return to normal within the set time. To trigger the alert immediately, set the time to 0. |
AssetNode Struct ¶
Name |
Required or Not |
Data Type |
Description |
---|---|---|---|
treeId |
true |
String |
The asset tree ID. When the response is “all”, it includes all the asset trees in the specified |
assetId |
true |
String |
The asset ID. |
Samples¶
Request Sample¶
url: https://{apigw-address}/event-service/v2.1/alert-rules?action=search&orgId=yourOrgId
method: POST
requestBody:
{
"modelId": "EnOS_Solar_CombinerBox",
"measurepointId": "CBX.BranchStateAttr"
}
Return Sample¶
{
"pagination": {
"pageNo": 1,
"pageSize": 10,
"totalSize": 2,
"sortedBy": [{
"field": "update_time",
"order": "DESC"
}]
},
"code": 0,
"msg": "OK",
"requestId": "a9689b9f-0cb6-4e47-a41c-bd459b687309",
"data": [{
"orgId": "yourOrgId",
"ruleId": "zh_model_struct",
"ruleDesc": {
"defaultValue": "Grid is connected from converter",
"i18nValue": {
"en_US": "Grid is connected from converter",
"zh_CN": "电网由变频器连接"
}
},
"modelId": "zh_model",
"measurepointId": "aa",
"condition": "aa = 18",
"isEnabled": true,
"severityId": "WARN",
"severityDesc": {
"defaultValue": "WARN"
},
"contentId": "planetTemperature",
"contentDesc": {
"defaultValue": "连接"
},
"typeId": "warning_Type",
"typeDesc": {
"defaultValue": "connected"
},
"tags": {
"key1": "v1"
},
"isRoot": false,
"scope": [{
"treeId": "ptde66nd",
"assetId": "FbFy8qyz"
}]
},{
"orgId": "yourOrgId",
"ruleId": "zh_model_struct2",
"ruleDesc": {
"defaultValue": "Grid is connected from converter",
"i18nValue": {
"en_US": "Grid is connected from converter",
"zh_CN": "电网由变频器连接"
}
},
"modelId": "zh_model",
"measurepointId": "aa",
"condition": "aa = 18",
"isEnabled": true,
"severityId": "WARN",
"severityDesc": {
"defaultValue": "WARN"
},
"contentId": "planetTemperature",
"contentDesc": {
"defaultValue": "连接"
},
"typeId": "warning_Type",
"typeDesc": {
"defaultValue": "connected"
},
"tags": {
"key1": "v1"
},
"isRoot": false,
"scope": [{
"treeId": "ptde66nd",
"assetId": "FbFy8qyz"
}]
}]
}
Java SDK Sample¶
public void testSearchAlertRule() {
private static String accessKey = "yourAppAccessKey";
private static String secretKey = "yourAppSecretKey";
private static String orgId = "yourOrgId";
private static String url = "https://{apigw-address}";
SearchAlertRuleRequest request = new SearchAlertRuleRequest();
request.setOrgId(orgId);
request.setExpression("deviceStatus = 'offline'");
try {
SearchAlertRuleResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url(url)
.getResponse(request, SearchAlertRuleResponse.class);
System.out.println(response);
} catch (Exception e) {
System.out.print(e);
}
}