使用IoT Studio展示云监控报警历史

更新时间:

使用IoT Studio开发设备运维大屏时,可以在运维页面展示设备相关的报警历史信息,便于运维人员掌握设备运行状态,及时定位解决设备问题。本文介绍如何使用IoT Studio的业务逻辑开发和Web应用开发能力,实现设备报警历史信息的展示。

场景说明

以鼓风机的进口温度和出口温度阈值报警为例,在物联网平台实例中创建云监控报警规则,例如出口温度超出上限、进口温度偏低时发出报警通知,然后在IoT Studio中通过业务逻辑开发获取云监控报警历史信息的服务,实现最终在Web应用的可视化大屏中展示。

image

前提条件

设备已接入物联网平台并上报物模型属性数据。

本文以鼓风机设备为例,对设备属性中进口温度(inlet_temperature)和出口温度(outlet_temperature)值异常的报警信息进行展示。具体操作,请参见:

  1. 购买企业版实例:IoT Studio服务和创建物模型指标的阈值报警规则功能,仅在华东2(上海)地域的企业版实例支持。本示例购买华东2(上海)地域的标准型实例使用。

  2. 登录物联网应用开发控制台,在页面左上角选择对应物联网平台企业版实例。

  3. 创建IoT Studio项目

  4. 在项目中创建产品:鼓风机。

  5. 为产品添加物模型:进口温度(inlet_temperature)和出口温度(outlet_temperature)。

  6. 在产品下创建设备:device_demo01。

  7. 使用设备端SDK接入:开发设备接入物联网平台并上报物模型数据。

步骤一:创建报警规则

本文以创建物模型属性指标的阈值报警规则为例。

  1. 登录物联网平台控制台,在控制台左上方,选择目标实例所在地域。

  2. 实例概览页面,找到对应的物联网平台实例,单击实例卡片。

  3. 在左侧导航栏,选择监控运维 > 实时监控

  4. 实时监控页面,单击报警规则页签。

  5. 单击创建报警规则

  6. 在右侧面板,配置报警规则,单击下一步

    如下所示配置报警规则:出口温度超出上限。参数说明,请参见配置阈值报警规则

    image.png

  7. 配置报警生效时段、报警沉默周期、报警通知对象、报警级别等,单击确认

    image.png

  8. 参考以上步骤,配置报警规则:进口温度偏低

    image.png

步骤二:开发获取云监控报警历史的服务

  1. 物联网应用开发控制台,选择左侧导航栏的项目管理

  2. 单击目标项目卡片。

  3. 在项目主页项目开发下,单击业务逻辑页签。

  4. 单击应用列表上方的新建 > 新建空白业务服务

  5. 新建业务逻辑对话框,输入业务逻辑名称(例如:获取云监控报警历史)和描述信息,单击确认

    参数配置说明,请参见业务逻辑编辑器

  6. 在业务逻辑编辑器中,配置业务逻辑节点。

    1. 单击左侧的节点image.png图标,拖拽一个HTTP请求节点到画布上。

      本文示例的HTTP请求节点使用默认配置。该节点配置说明,请参见HTTP请求

    2. 拖拽一个NodeJS脚本节点到画布上,将HTTP请求节点与该节点相连,并配置该节点。

      1. NodeJS脚本节点配置面板,单击扩展库管理,并在弹出的对话框中搜索@alicloud/pop-core包,单击操作列的安装

        image.png

      2. 安装成功后,返回节点配置面板,在脚本下选择为空白模板,将如下示例代码复制到代码框中。

        本示例代码是调用云监控接口DescribeAlertLogList查询报警的历史数据,本示例展示API返回数据的RuleName(报警规则名称)和AlertTime(发生报警的时间戳)。您可根据实际需求,展示接口DescribeAlertLogList返回数据的更多字段。

        实际使用中相关参数(例如accessKeyId、accessKeySecret)需替换为真实值,云监控API的SDK使用说明,请参见SDK参考使用OpenAPI示例

        /**
        * @param {Object} payload 上一节点的输出
        * @param {Object} node 指定某个节点的输出
        * @param {Object} query 服务流第一个节点的输出
        * @param {Object} context  { appKey, appSecret }
        * @param {Object} global 变量
        */
        module.exports = async function(payload, node, query, context, global) {
          const Core = require('@alicloud/pop-core');
          const moment = require('moment');
        
          var client = new Core({
            accessKeyId: '<YOUR-ACCESSKEY-ID>',
            accessKeySecret: '<YOUR-ACCESSKEY-SECRET>',
            // securityToken: '<YOUR-STS-TOKEN>', // use STS Token
            endpoint: 'https://metrics.cn-shanghai.aliyuncs.com',
            apiVersion: '2019-01-01'
          });
        
          var params = {
            // 查询过去7天的最近50条数据,可根据需求自行设置请求参数
            "StartTime": Date.now() - 7 * 24 * 60 * 60 * 1000,
            "EndTime": Date.now(),
            "PageSize": 50,
          };
        
          var requestOption = {
            method: 'POST',
            formatParams: false,
          };
        
          const data = await client.request('DescribeAlertLogList', params, requestOption);
          const { AlertLogList = [] } = data;
          const result = AlertLogList.map(item => {
            return {
              // 可在此处添加需要展示的字段
              alertName: item.RuleName,
              alertTime: moment(item.AlertTime).utcOffset(8).format('YYYY/MM/DD HH:mm:ss'),
            };
          });
          return {
            data: result,
          };
        }
    3. 拖拽一个HTTP返回节点,将NodeJS脚本节点与该节点相连,该节点输出选择为上一节点(payload)

  7. 调试与发布业务逻辑服务。

    1. 在业务服务编辑页面,单击右上方的部署调试image.png图标,部署和调试服务。

      调试成功后,调用如下。

      image.png

    2. 调试成功后,单击发布image.png图标,发布该服务。

      重要

      业务需要发布到云端,才能被调用。

步骤三:在Web应用中展示云监控报警历史

  1. 在项目主页项目开发下,单击Web应用页签。

  2. 创建Web可视化应用。具体操作,请参见创建Web应用

  3. 在Web应用编辑页左侧单击组件image.png图标,从组件列表拖拽一个重复列表组件到画布上。组件配置说明,请参见重复列表image.png

  4. 单击展示数据右侧的编辑数据源image.png图标,在数据源配置面板,选择数据源接口接口来源业务逻辑开发选择业务服务为已创建的服务:获取云监控报警历史,并设置定时刷新。数据源配置的详细说明,请参见接口image.png

  5. 双击重复列表组件,编辑重复列表子组件。

    1. 删除默认的组件。

    2. 拖拽两个文字组件到画布上,分别配置文字内容的数据源为母组件数据源的对应字段。具体配置,请参见文字

      本示例分别选择字段alertName(报警规则名称)和alertTime(发生报警的时间)。image.png

  6. 退出重复列表的内部编辑模式后,将重复列表的布局方式改为垂直,然后拖入文字组件作为各列信息的标题。

    您也可根据实际需要,配置更多组件样式,例如添加矩形组件作为背景框,设置重复列表分页等。image.png

  7. 依次单击顶部栏中的保存image.png预览image.png发布image.png图标,查看并发布应用。

    image.png

后续操作

应用发布成功后,您可根据需要选择绑定域名设置Token,可将应用嵌入其他网站修改已发布页面中绑定的具体设备

说明 绑定域名和设置Token鉴权后,可实现其他访问者访问您已发布的Web应用。