本帖最后由 张雨婷 于 2023-8-28 14:52 编辑
告警图表展现如上图示,这里可以看出产品提供了两个按钮:“处理”、“关闭”,当然你如果不需要这两个按钮,该资源提供了可隐藏其按钮的设置; - 处理
从字面意思看,是要执行某一个动作,点击处理不管要干什么,UI界面上该条告警消息改为“已处理”的状态(这个“已处理”的文本可以自定义配置),不会删除该条告警信息;具体操作可能是请求接口,修改了该告警记录的状态为“已处理”,紧接着可能执行一个操作集等; - 关闭
相对处理就比较简单了,通过调用接口删除该条告警记录;
通过上面的文档可以推送告警信息到指定的孪生体上 点击“处理”:就是处理该条告警记录 status:11 点击“关闭”:可以理解移除这个告警数据,也就是删除的意思 status:2 以ThingJS-X4为例,图表内处理的代码应该这样写:
(obj) => { console.info('obj',obj) // 查看前端点击的告警对象信息 // 固定获取点击告警记录id的格式 let temp = obj.ALARM.filter((item)=>{ console.log( _.values(item)[0],' _.values(item)[0]') if(curData.desc == _.values(item)[0].ALARM_INFORMATION && curData.name == _.values(item)[0].ciName){ return true; } }); // console.log('obj.ALARM:'+ JSON.stringify(obj.ALARM)); // console.log('temp:'+JSON.stringify(temp)); let curParam = JSON.stringify(temp); $.post('http://10.100.32.97:10021/http/rest',{'eventId': curParam }, function(res) { let temp = JSON.parse(res); //res为接口返回数据 if (temp.data=='success') { console.log('请求处理业务成功') }else{ console.log('请求处理业务失败') } }); }
DIX接口代码如下: //应用http用到的java请求方法 var HttpClient = Java.type("com.uinnova.di.dicom.util.HTTPClient"); //定义用于存放java对象的map var HashMap = Java.type("java.util.HashMap"); //定义用于存放java对象的数组 var ArrayList = Java.type("java.util.ArrayList"); function run(args) { // 处理args字段省略 // .... var curl = 'http://10.100.32.97:8088/thing/provider/rest/monitor/alarms/616930059600034' //定义数组用来封装数据 var list = new ArrayList(); // status 1表示开启,2表示关闭,11表示已处理 list = [ { "twinID": "设备001", "severity": 1, "status": 11, "sourceAlertKey": "CPU使用率", "summary": "CPU使用率超过90%,已连续发生超过3次", "sourceIdentifier": "xxx", "lastOccurrence": "2020-07-29 09:33:06" } ] //打印需要发送的数据内容 logger.info("\n\n\n发送的模拟数据为" + JSON.stringify(list)+'\n\n\n') //调用ThingJS-X标准性能API var result = HttpClient.httpPost(curl, null, JSON.stringify(list), "utf-8"); //打印保存后API返回的结果 logger.info("\n\n\n保存结果为:" + result); // heartBeat.addOutCount(list.length); }
|