场景需求
在互联网行业,需监控几十台到上百台服务器,如果某台服务器在规定时间的CUP占用率的平均值,超过规定的限制值。
需触发报警,系统自动把异常情况反馈给负责人,让其及时检查、处理服务器异常。
解决思路
我们先把该需求拆成2个,第一是通过速融云的 openApi,实现与第三方系统的数据对接,将服务器的数据推送到速融云平台上。
第二是设置监控条件,如果监控到异常数据,则自动推送消息。
拆解问题
这时候,我们会有两个核心问题,第一,如何计算服务器在规定时间的平均值?第二如何监控数据更变,并推送信息?
1、计算在规定时间之内的平均值
计算平均值之前,我们要先了解规定时间的数值,需要先解决服务器运行的开始时间、当前时间、时间间隔、结束时间。
1.1 计算平均值
计算平均值我们首先会想到我们的 RSQL 公式,RSQL 是速融云108种函数的其中之一,目前最为强大的公式。
RSQL 是指根据当前表单的数据,查询另外一张表数据,支持累加、累乘、平均值、最大值、最小值、最晚、最早、计数等。
使用 RSQL 的核心需求在于
1、确认查询的数据的筛选条件,此时我们可以需要确定:
(1)时间段范围:分为起始时间和结束时间。
注意:结束时间应为我们当前创建表单的时间。
开始时间为当前时间减去时间间隔。比如 10:15 分推送的数据我们的查询的起始时间应该为 10 分钟(查询间隔)之前的数据即10:05 。
结束时间为当前推送到速融云表单的时间。
(2)机器编号为当前机器编号
2、确定要求平均值的字段 即 cpu 负载字段。
2、监控数据更变,推送消息给负责人
这里我们也拆解为两个小问题,第一如何监控数据更变,第二,如何触发报警,自动将信息推送给负责人?
2.1 监控数据更变
机器的状态有 正常、报警,系统根据已配置的公式自动得出计算出状态。
确定好状态变更以后,这时我们可以通过配置智能助手来监控数据变化。(PS:智能助手有三种节点事件,分别为:表单事件、节点事件、数据变化。)
在这里需要选择数据变化,监控该表单的新增或更新记录数据时,并判断该数据状态。
2.2 触发报警,自动推送消息
如判断该数据的状态为报警,自动触发报警条件,并将该机器的异常情况推送给负责人。
搭建系统
1、新建机器监控表
需拖拽所需字段,修改名称,并配置该字段的条件。
机器编号
CPU 占有率 (0‑100)
为避免输入错误,可设置校验条件,大小限制为1—100。
如输入大于100,系统自动提醒输入值不能大于100,具体如下图:
阈值
注意:需建立关联表单,该字段控件需关联机器产品表单,该表单的阈值数值来源于机器表的阈值。
采集时间短(分钟)
自定义设置分钟,这里演示设置为10分钟。
更新时间
这里我们设置公式为:(NOW())
NOW 函数是指返回当前的时间。
监控判断时间的起始点
需设置公式为:DATE(TIMESTAMP(更新时间)‑采集时间短(分钟)601000)
日期函数:DATE(TIMESTAMP 日期字段,天数),其含义是,计算选择指定的日期和指定的天数。
监控时间段 CPU 平均值
这里用到核心功能—— RSQL 高级函数,下面公式设置看起来有点复杂,实际上非常简单。
AVERGE 是指平均值,后面是设置筛选条件,包括 CUP 占有率和监控判断时间的起始点小于更新时间,同一机器编号。
筛选符合条件的数据,对其进行计算,其公式为:CUP 占有率除以2,计算结果就是平均值。
状态
这里我们选择下拉框字段,添加「正常」和「报警」。
为了快速看到该数据状态,这里我们将「正常」设置为绿色,「报警」设置为红色,您也可以根据实际情况,自定义设置颜色。
在该字段设置公式为:IFS (监控时间段 CPU 平均值 > 阈值,‘报警’,TRUE (),‘正常’)。
意思是指监控时间段 CPU 平均值小于阈值时,系统将状态修改为「报警」,如大于阈值,则修改为「正常」。
IFS是指检查是否满足一个或多个条件,并返回与第一个 TRUE 条件对应的值。
负责人
设置为当前操作用户。
2、新建报警表
2.1 需拖拽所需字段,修改名称,并配置该字段的条件。
机器编号
报警值
阈值
更新时间
同样,设置公式为:(NOW())
人员选择
2.2 编辑流程
在流程添加审批节点,并设置负责人,如负责人暂未确定,您可以设置动态负责人,这一设置目的是将报警信息通知到负责人。
3、事件表单
智能助手
新建智能助手,修改名称,点击事件触发节点,在节点事件选择数据变化,并设置具体目标表、具体监控数据变化。
创建新表单节点
点击创建新表单节点,设置触发条件,当数据状态为报警时,系统自动执行下一步。
在当前页面设置目标应用、目标表单,并设置填写规则。
这一设置,如监控到数据状态为报警,系统自动将数据信息填入报警表单,并通知该负责人及时处理。
4、效果演示图
总结
从场景需求,到分析问题,最后给出解决方案并落地,整体思路是:
-
明确场景需求
-
分析场景需求
-
思考解决的核心工作流
-
拆解问题,思考需要用到哪些功能
-
搭建表单/应用,并测试检查
-
落地解决场景需求