API
更新时间:2019-06-17
创建告警
方法 | URL | 说明 |
---|---|---|
POST | /v1/alarm | 创建告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 是 | 告警名称 |
desc | String | 否 | 告警描述 |
severity | String | 否 | 告警优先级,可能取值:LOW,MIDDLE,HIGH |
endpointName | String | 是 | 消息来源的物接入实例名称,如myendpoint |
topic | String | 是 | 消息来源的MQTT主题 |
select | String | 否 | 消息变化的SQL SELECT语句,默认值为:* |
condition | String | 是 | 判断消息是否异常的条件,语法同SQL的WHERE子句 |
alarmTrigger | String | 否 | 触发告警的条件,目前支持COUNT:n语法,默认值:COUNT:1 |
smsReceiver | String | 否 | 短信接收人(smsReceiver)的uuid,为空,则不发短信告警 |
smsVars | String | 否 | 从MQTT通知消息中提取短信模板变量值得SQL SELECT语句,例如:lastMsg.temp as temp |
smsMsgType | String | 否 | 选择短信接收哪些类型的告警通知,默认值:ALARM_RECOVER,即接受告警发生和告警解除两种通知。可能取值:NOTHING:什么都不接收;ALARM:仅接受告警发生的通知;ALARM_RECOVER:接受告警发生和告警解除的通知;ALL:接受告警发生、告警更新、和告警解除三种通知 |
mqttMsgType | String | 否 | 选择MQTT接收哪些类型的告警通知,默认值:ALL,即接受告警发生、告警更新、和告警解除三种通知。可能取值:NOTHING:什么都不接收;ALARM:仅接受告警发生的通知;ALARM_RECOVER:接受告警发生和告警解除的通知;ALL:接受告警发生、告警更新、和告警解除三种通知 |
destTopic | String | 否 | 告警发送MQTT通知的MQTT主题,实例同来源消息的实例。如果该值为空,则不发送MQTT通知 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 | |
uuid | String | 创建好的告警的uuid |
请求示例
{
"name": "风机工作温度监控",
"desc": "监控第2厂区2楼风机工作温度不超过60度",
"severity": "HIGH",
"endpointName": "myendpoint",
"topic": "sensor/floor2",
"select": "*",
"condition": "temperature > 60",
"alarmTrigger": "COUNT:1",
"smsReceiver": "0000000-0000-0000-0000-00000000001",
"smsVars": " lastMsg.temp as temp, lastMsg.device as devid",
"smsMsgType": "ALARM_RECOVER",
"mqttMsgType": "ALL",
"destTopic": "alarm_out"
}
返回示例
{
"result": "ok",
"uuid": "ab13ef935b84173a0f41f90c33daa87"
}
修改告警
方法 | URL | 说明 |
---|---|---|
PUT | /v1/alarm/{alarmid} | 修改告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 否 | 告警名称 |
desc | String | 否 | 告警描述 |
severity | String | 否 | 告警优先级,可能取值:LOW,MIDDLE,HIGH |
topic | String | 否 | 消息来源的MQTT主题 |
select | String | 否 | 消息变化的SQL SELECT语句,默认值为:* |
condition | String | 否 | 判断消息是否异常的条件,语法同SQL的WHERE子句 |
alarmTrigger | String | 否 | 触发告警的条件,目前支持COUNT:n语法,默认值:COUNT:1 |
smsReceiver | String | 否 | 短信接收人(smsReceiver)的uuid,为空,则不发短信告警 |
smsVars | String | 否 | 从MQTT通知消息中提取短信模板变量值得SQL SELECT语句,例如:lastMsg.temp as temp |
smsMsgType | String | 否 | 选择短信接收哪些类型的告警通知,默认值:ALARM_RECOVER,即接受告警发生和告警解除两种通知。可能取值:NOTHING:什么都不接收;ALARM:仅接受告警发生的通知;ALARM_RECOVER:接受告警发生和告警解除的通知;ALL:接受告警发生、告警更新、和告警解除三种通知 |
mqttMsgType | String | 否 | 选择MQTT接收哪些类型的告警通知,默认值:ALL,即接受告警发生、告警更新、和告警解除三种通知。可能取值:NOTHING:什么都不接收;ALARM:仅接受告警发生的通知;ALARM_RECOVER:接受告警发生和告警解除的通知;ALL:接受告警发生、告警更新、和告警解除三种通知 |
destTopic | String | 否 | 告警发送MQTT通知的MQTT主题,实例同来源消息的实例。如果该值为空,则不发送MQTT通知 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表明修改成功 |
请求示例
注意:每一个字段都是可选的。但是如果一个都不传,或者传了参数,但值与数据库里面的值相同,会出现错误。
{
"name": "风机工作温度监控",
"desc": "监控第2厂区2楼风机工作温度不超过60度",
"kind": "DATA_STREAM",
"severity": "HIGH",
"topic": "sensor/floor2",
"select": "*",
"condition": "temperature > 60",
"alarmTrigger": "COUNT:1",
"smsReceiver": "0000000-0000-0000-0000-00000000001",
"smsVars": " lastMsg.temp as temp, lastMsg.device as devid",
"smsMsgType": "ALARM_RECOVER",
"mqttMsgType": "ALL",
"destTopic": "alarm_out"
}
返回示例
{
"result": "ok"
}
获取告警详情
方法 | URL | 说明 |
---|---|---|
GET | /v1/alarm/{alarmid} | 获取告警详情 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
alarmid | String | 是 | 需要获取的告警的uuid |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
uuid | String | 告警的UUID(唯一) | |
name | String | 告警的名称 | |
desc | String | 告警的描述 | |
kind | String | 消息源类型,暂无意义 | |
severity | String | 优先级 | |
accountUuid | String | 用户账号UUID | |
endpointName | String | 消息源的实例名称 | |
topic | String | 消息源主题 | |
select | String | 消息变化的SQL SELECT语句 | |
condition | String | 判断消息是否异常的条件,语法同SQL的WHERE子句 | |
alarmTrigger | String | 触发告警的条件 | |
smsReceiver | String | 短信接收人(smsReceiver)的UUID | |
smsVars | String | 从MQTT通知消息中提取短信模板变量值得SQL SELECT语句 | |
smsMsgType | String | 选择短信接收哪些类型的告警通知 | |
mqttMsgType | String | 选择MQTT接收哪些类型的告警通知 | |
destTopic | String | 告警发送MQTT通知的MQTT主题 | |
alarmState | String | 告警状态。NORMAL:正常;ALARMING:异常 | |
startTime | Long | 最近一次告警发生的时间戳(UNIX时间戳,毫秒) ,-1则表示该告警没有发生过 | |
refreshTime | Long | 最近一次告警更新的时间戳(UNIX时间戳,毫秒),-1表示该告警没有更新过,告警发生时,会变成与startTime一样 | |
recoverTime | Long | 最近一次告警恢复的时间戳(UNIX时间戳,毫秒),告警状态为ALARMING时,该值为-1,表示还没有恢复 | |
lastMsg | String | 告警收到的最后一条影响告警状态的用户消息,JSON格式。具体内容为用户的原始消息经过select字段选择后的结果。告警处于正常状态下的,不符合condition条件的消息,不会存入lastMsg;其他情况均会存进lastMsg。告警刚才创建时,其值为"{}" | |
disabled | String | 告警是否被禁用。ENABLED:没有禁用;DISABLED:禁用了。 | |
createTime | String | 告警创建时间 | |
updateTime | String | 告警修改时间 |
返回示例
{
"uuid": "ab13ef935b84173a0f41f90c33daa87",
"name": "风机工作温度监控",
"desc": "监控第2厂区2楼风机工作温度不超过60度",
"kind": "DATA_STREAM",
"severity": "HIGH",
"accountUuid": " ef3de2935b37973a03e5f90c367ba87",
"endpointName": "myendpoint",
"topic": "sensor/floor2",
"select": "*",
"condition": "temperature > 60",
"alarmTrigger": "COUNT:1",
"smsReceiver": "0000000-0000-0000-0000-00000000001",
"smsVars": " lastMsg.temp as temp, lastMsg.device as devid",
"smsMsgType": "ALARM_RECOVER",
"mqttMsgType": "ALL",
"destTopic": "alarm_out",
"alarmState": "NORMAL",
"startTime": 1497244357,
"refreshTime": 1497244357,
"recoverTime": 1497244873,
"lastMsg": "{"temp":58}",
"disabled": "ENABLED",
"createTime": "2017-06-13 16:06:34",
"updateTime": "2017-06-13 16:06:34"
}
列显告警
方法 | URL | 说明 |
---|---|---|
GET | /v1/alarm?pageNo=1&pageSize=20&disabled=ENABLED&alarmState=ALARMING&severity=MIDDLE&orderBy= startTime&order=desc | 列显告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
pageNo | Int | 否 | 分页显示的第几页,默认为1 |
pageSize | Int | 否 | 每页的大小,默认50;取值范围[1-50] |
disabled | String | 否 | 根据禁用状态来过滤,可能取值:ENABLED,DISABLED |
alarmState | String | 否 | 根据告警状态来过滤,可能取值:NORMAL,ALARMING |
severity | String | 否 | 根据告警优先级来过滤,可能取值:LOW,MIDDLE,HIGH |
orderBy | String | 否 | 根据哪个字段进行排序,可能取值:createtime, severity, alarmState,startTime, refreshTime, recoverTime |
order | String | 否 | 排序方式,可能取值:DESC,ASC |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
totalCount | Int | 符合条件的告警的总数 | |
pageNo | Int | 当前返回的页码 | |
pageSize | Int | 分页大小 | |
result | Array | 返回的告警集合,每个元素的说明,请参考获取告警详情接口 |
请求示例
/v1/alarm?pageNo=1&pageSize=20&disabled=ENABLED&alarmState=ALARMING&severity=MIDDLE&orderBy= startTime&order=desc
返回示例
{
"totalCount": 1,
"pageNo": 1,
"pageSize": 20,
"result": [
{
"uuid": "ab13ef935b84173a0f41f90c33daa87",
"name": "风机工作温度监控",
"desc": "监控第2厂区2楼风机工作温度不超过60度",
"kind": "DATA_STREAM",
"severity": "HIGH",
"accountUuid": " ef3de2935b37973a03e5f90c367ba87",
"endpointName": "myendpoint",
"topic": "sensor/floor2",
"selectStr": "*",
"condition": "temperature > 60",
"alarmTrigger": "COUNT:1",
"smsReceiver": "0000000-0000-0000-0000-00000000001",
"smsVars": " lastMsg.temp as temp, lastMsg.device as devid",
"smsMsgType": "ALARM_RECOVER",
"mqttMsgType": "ALL"
"destTopic": "alarm_out",
"alarmState": "NORMAL",
"startTime": 1497244357,
"refreshTime": 1497244357,
"recoverTime": 1497244873,
"lastMsg": "{"temp":58}",
"disabled": "ENABLED",
"createTime": "2017-06-13 16:06:34",
"updateTime": "2017-06-13 16:06:34"
}
]
}
禁用告警
方法 | URL | 说明 |
---|---|---|
PUT | /v1/alarm/{alarmid}/disable | 禁用告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
alarmid | String | 是 | 告警的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
返回示例
{
"result": "ok"
}
启用告警
方法 | URL | 说明 |
---|---|---|
PUT | /v1/alarm/{alarmid}/enable | 启用告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
alarmid | String | 是 | 告警的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
返回示例
{
"result": "ok"
}
解除告警
方法 | URL | 说明 |
---|---|---|
PUT | /v1/alarm/{alarmid}/recover | 解除告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
alarmid | String | 是 | 告警的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
返回示例
{
"result": "ok"
}
批量解除告警
方法 | URL | 说明 |
---|---|---|
POST | /v1/alarm/batch/recover | 批量解除告警 |
注意:手动解除告警,依旧会发送短信通知和MQTT消息。
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
ids | 数组 | 是 | 拟要解除的告警的id列表 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
请求示例
{
"ids": [
"43257469-643e-4a1c-81df-8cca28d96dbc",
"2f74da12-a846-4b70-bf3a-7a22e0c56bc0"
]
}
返回示例
{
"result": "ok"
}
删除告警
方法 | URL | 说明 |
---|---|---|
DELETE | /v1/alarm/{alarmid} | 删除告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
alarmid | String | 是 | 告警的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
返回示例
{
"result": "ok"
}
批量删除告警
方法 | URL | 说明 |
---|---|---|
POST | /v1/alarm/batch/delete | 批量删除告警 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
ids | 数组 | 是 | 拟要删除的告警的id列表 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
请求示例
{
"ids": [
"43257469-643e-4a1c-81df-8cca28d96dbc",
"2f74da12-a846-4b70-bf3a-7a22e0c56bc0"
]
}
返回示例
{
"result": "ok"
}
创建短信接收人
方法 | URL | 说明 |
---|---|---|
POST | /v1/smsreceiver | 创建短信接收人 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 名称 | |
signature | String | 短信(SMS)签名ID | |
template | String | 短信(SMS)模板ID | |
receivers | String | 接收人手机号码,多个号码以逗号分隔 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 | |
uuid | String | 创建的短信接收人UUID |
请求示例
{
"name": "admins",
"signature": "sig123",
"template": "temp-456",
"receivers": "15820201369,17500456789"
}
返回示例
{
"result": "ok",
"uuid": "ab13ef935b84173a0f41f90c33daa87"
}
获取短信接收人详情
方法 | URL | 说明 |
---|---|---|
GET | /v1/smsreceiver/{id} | 获取短信接收人详情 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 短信接收人(SmsReceiver)的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
uuid | String | UUID | |
accountUuid | String | 用户的账号UUID | |
name | String | 名称 | |
signature | String | 短信(SMS)签名ID | |
template | String | 短信(SMS)模板ID | |
receivers | String | 接收人手机号码,多个号码以逗号分隔 | |
createTime | String | 创建时间 | |
updateTime | String | 修改时间 |
返回示例
{
"uuid": "ab13ef935b84173a0f41f90c33daa87",
"accountUuid": "a13035a8ef9b817b3a40f41cf933da7",
"name": "admins",
"signature": "sig123",
"template": "temp-456",
"receivers": "15820201369,17500456789",
"createTime": "2017-06-43 17:08:01",
"updateTime": "2017-06-43 17:08:01"
}
修改短信接收人详情
方法 | URL | 说明 |
---|---|---|
PUT | /v1/smsreceiver/{id} | 修改短信接收人详情 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 短信接收人(SmsReceiver)的UUID |
name | String | 名称 | |
signature | String | 短信(SMS)签名ID | |
template | String | 短信(SMS)模板ID | |
receivers | String | 接收人手机号码,多个号码以逗号分隔 |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
请求示例
{
"name": "admins",
"signature": "sig123",
"template": "temp-456",
"receivers": "15820201369,17500456789"
}
返回示例
{
"result": "ok"
}
列显短信接收人
方法 | URL | 说明 |
---|---|---|
GET | /v1/smsreceiver?pageNo=1&pageSize=20 | 列显短信接收人 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
pageNo | Int | 否 | 分页显示的第几页,默认为1 |
pageSize | Int | 否 | 每页的大小,默认50;取值范围[1-50] |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
totalCount | Int | 符合条件的短信接收人的总数 | |
pageNo | Int | 当前返回的页码 | |
pageSize | Int | 分页大小 | |
result | Array | 返回的短信接受人集合,每个元素的说明,请参考获取短信接收人详情接口 |
返回示例
{
"totalCount": 1,
"pageNo": 1,
"pageSize": 20,
"result": [
{
"uuid": "ab13ef935b84173a0f41f90c33daa87",
"accountUuid": "a13035a8ef9b817b3a40f41cf933da7",
"name": "admins",
"signature": "sig123",
"template": "temp-456",
"receivers": "15820201369,17500456789",
"createTime": "2017-06-43 17:08:01",
"updateTime": "2017-06-43 17:08:01"
}
]
}
删除短信接收人
方法 | URL | 说明 |
---|---|---|
DELETE | /v1/smsreceiver/{id} | 删除短信接收人 |
请求参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 短信接收人(SmsReceiver)的UUID |
返回参数
参数名称 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
result | String | ok表示成功 |
返回示例
{
"result": "ok"
}