Search Alerts


Search for active and history alerts, where the pages of the returned results do not have to be in order.

Request Format

POST https://{apigw-address}/alert-service/v2.1/alerts?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
instanceId Optional String The alert entity, which is the asset at this stage, with its value as the assetId.
metricId Optional String The metric, such as the measurement point.
startOccurTime Mandatory String The start time for triggering alert. To be used with endOccurTime. Time parameters used in API>>
endOccurTime Mandatory String The end time for triggering alert. To be used with startOccurTime. Time parameters used in API>>
startRecoverTime Optional String The start time of the alert recovery. To be used with recoverEndTime. If left blank, the data within the last week will be searched. Time parameters used in API>>
endRecoverTime Optional String The end time of the alert recovery. To be used with recoverStartTime. If left blank, the data within the last week will be searched. Time parameters used in API>>
active Optional Boolean
  • true: Search for active alerts.
  • false: Search for history alerts.
  • null (default): Search both active and history alerts.
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.

  • instanceId, metricId, severityId, typeId, parentTypeId, contentId, ruleId, eventType amd alertId: support operators “=”, “in”, and “!=”
  • metricTags.* (excluding metricTags.assetTreePath), ruleTags.* and tags.*: support operators “=”, “in”, “!=”, “like”, and “exists”
  • metricTags.assetTreePath: supports operators “=” and “in” based on tree ID. This field is only available if 2.3 Cumulative Update 2 has been applied to your environment.
  • inhibited: supports operators “=” and “!=”
  • maskedBy: supports operator “=”

For more information about field description, see AlertVo Struct

How to use expression>>

pagination Optional Pagination Request Struct Random pagination。 When not specified, 10 records are displayed per page by default and sorted in descending order by occurTime. For more details, see Pagination Request Struct.

Response Parameters

Name Data Type Description
data Array of AlertVo Structs The list of alert records. For details of an AlertVo struct, see AlertVo Struct.

Samples

Request Sample

url: POST https://{apigw-address}/alert-service/v2.1/alerts?action=search&orgId=yourOrgId
method: POST
requestBody:
{
  "startOccurTime": "2019-05-20T00:00:00Z",
  "endOccurTime": "2019-06-15T00:00:00Z",
  "expression": "alertId = 'yourAlertId' and metricTags.modelId = 'modelId_11' and metricTags.assetTreePath in ('s3XMMLph', '2BRE9U8L', 'CkAQRo3y')",
  "pagination": {
    "pageNo": 1,
    "pageSize": 2
  }
}

Note

The field of metricTags.assetTreePath is only available if 2.3 Cumulative Update 2 has been applied to your environment.

Return Sample

{
    "pagination":{
        "pageNo":1,
        "pageSize":2,
        "totalSize":1,
        "sortedBy":[
            {
                "field":"occurTime",
                "order":"DESC"
            },
            {
                "field":"alertId",
                "order":"DESC"
            }
        ]
    },
    "code":0,
    "msg":"OK",
    "requestId":"dac2a872-b9b7-460c-992d-0a0c14ea36e9",
    "data":[
        {
            "alertId": "yourAlertId",
            "eventType": 1,
            "orgId": "yourOrgId",
            "instanceId": "deviceId_37233",
            "metricId": "pointId_772",
            "occurTime": 1547824973674,
            "localOccurTime": "2018-01-01 01:01:01",
            "recoverTime": 1547824973674,
            "localRecoverTime": "2018-02-02 00:00:00",
            "recoverReason": "rpc",
            "value": "5",
            "metricTags":{
                "assetTreePath_s3XMMLph": "/JvQqIeUB/th1xnIG4/MlmbC7eG/",
                "assetTreePath": "2BRE9U8L:/nc34Xktx/DjEpY5Qz/MlmbC7eG/,CkAQRo3y:/grZH1o0Z/1ti4BAQU/MlmbC7eG/,s3XMMLph:/JvQqIeUB/th1xnIG4/MlmbC7eG/",
                "assetTreePath_2BRE9U8L": "/nc34Xktx/DjEpY5Qz/MlmbC7eG/",
                "modelId": "modelId_11",
                "modelIdPath" :"path"
            },
            "severityId": "42j",
            "severityDesc": {
                "i18nValue": {
                    "en_US": "warning",
                    "zh_CN": ""
                }
            },
            "typeId": "11d",
            "typeDesc": {
                "i18nValue": {
                    "en_US": "Limit",
                    "zh_CN": ""
                }
            },
            "parentTypeId": "d1",
            "parentTypeDesc": {
                "i18nValue": {
                    "en_US": "Threshold",
                    "zh_CN": ""
                }
            },
            "content": {
                "i18nValue": {
                    "en_US": "Content",
                    "zh_CN": ""
                }
            },
            "ruleId": "5v7",
            "ruleDesc": {
                "i18nValue": {
                    "en_US": "Rule description",
                    "zh_CN": ""
                }
            },
            "ruleTags":{
                "color": "red",
                "category" :"note"
            },
            "tags": {
                "de": "tag"
            },
            "inhibited": false
        }
    ]
}

Java SDK Sample

public void testSearchAlerts(){
  String accessKey = "yourAppAccessKey";
  String secretKey = "yourAppSecretKey";
  SearchAlertRequest request = new SearchAlertRequest();
  request.setOrgId("yourOrgId");
  request.setStartOccurTime("2019-05-20T00:00:00Z");
  request.setEndOccurTime("2019-06-15T00:00:00Z");
  Pagination pagination = new Pagination();
  pagination.setPageSize(2);
  pagination.setPageNo(1);
  request.setPagination(pagination);
  request.setExpression("alertId = 'yourAlertId' and metricTags.modelId = 'modelId_11' and metricTags.assetTreePath in ('s3XMMLph', '2BRE9U8L', 'CkAQRo3y')");
  try {
    SearchAlertResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
            .url("https://{apigw-address}")
            .getResponse(request, SearchAlertResponse.class);
    Gson gson = new Gson();
    System.out.println(gson.toJson(response));
  }catch(Exception e){
    System.out.print(e);
  }
}

Note

The field of metricTags.assetTreePath is only available if 2.3 Cumulative Update 2 has been applied to your environment.