告警与恢复告警原理及实现

news2024/9/20 23:39:30

一、 背景

自“双碳”政策提出以来,KaiwuDB 聚焦“数字能源”领域,为用户打造数字能源管理平台,旨在提升综合能源和碳资产管理能力。

数字能源管理平台是以 KaiwuDB 为核心建设的云-边-端一体化数据服务平台,致力于为 IoT、工业互联网、数字能源、交通车联网、等行业提供从数据产生、采集、汇聚到数据分析、应用、归档的全生命周期的数据服务。

数字能源是物联网技术与能源产业的深度融合,通过能源设施的物联接入,并依托大数据及人工智能,打通物理世界与数字世界,信息流与能量流互动,实现能源品类的跨越和边界的突破,放大设施效用,品类协同优化。

二、 规则使用组件介绍

A、DAG 介绍

DAG(Directed Acyclic Graph,有向无环图)是一种数据结构,表示的是一张有向图,并且在这个图中,从任意顶点出发都无法回到该点(无环),如图所示:

B、go-streams 简介

go-streams 是一个流式处理库,它提供一种简单、简洁的方式构建数据处理的管道。

在计算中,管道也称为数据管道,是一组串联连接的数据处理元件,其中一个元件的输出是下一个元件的输入。管道的元素通常以并行或时间切片的方式执行,通常在元素之间插入一定量的缓冲存储器。

C、告警规则与恢复告警规则介绍

在当前的数字能源平台中,可能会存在各种偶然情况,所以我们在指定时间窗口内,当异常数据个数达到总数据的指定百分比时才被判定为告警情况。

比如说,用户设置 endpoint1 采集点,设置异常数据占比总数量的 60% 时触发一级告警,设置告警窗口为 5 秒。

假设在这 5 秒内 endpoint1 传过来的数据有 100 条,此时当异常数据的数量达到或超过 100*60%=60 时,触发一级告警;如果异常数据的数量没有达到 100*60%=60 条,则不触发一级告警。

这里的 60% 是人为设置的,由用户来判断在一段时间窗口内,异常数据达到总数据的百分比数,从而来确定是否触发告警等级。

D、告警与恢复告警规则设置值介绍

用户定义对目标采集点的监控,设置的值包含:

  • 该目标采集点的唯一 id

  • 该目标采集点的告警规则列表,也意味着同一个采集点可以有多个不同级别的告警

规则列表中单个规则包含的值有:

  • 告警等级

  • 告警取值范围

  • 告警数据数量占比的百分数

  • 告警窗口大小

  • 恢复告警窗口大小

  • 告警重复发送的时间

E、告警与恢复告警规则返回值参数介绍

若触发告警与恢复告警规则,用户和管理人员拿到的告警信息,包含的值为:

  • 触发告警与恢复告警规则的目标采集点唯一 id

  • 该目标采集点触发或恢复到的告警等级

  • 告警类型(告警、恢复告警、重复告警)

  • 触发该次告警或恢复告警的时间

  • 告警数据

三、 规则原理及流程说明

A、告警与恢复告警规则流程说明

  • 数字能源平台从 Kafka source 中获取批次的所有数据信息(图内标题 1)

  • 数字能源平台将所有数据信息分成单点数据(图内标题 2)

  • 将单点数据同时全部发给分区流程(图内标题 3)

  • 分区流程过滤掉没被监控的数据,并按照时间窗口的大小将数据进行分区(图内标题 4、14,4 为告警流程,14 为恢复告警流程)

  • 按照分区流程的时间窗口创建时间窗口(图内标题 5、8、11、15、18、21)

  • 在时间窗口内将满足告警条件数据进行包装(图内标题 6、9、12、16、19、22)

  • 将包装起来的数据设置为告警流程发过来的数据或恢复告警流程发过来的数据(图内标题 7、10、13 为告警流程发过来的数据,17、20、23 为恢复告警流程发过来的数据)

  • 将所有包装好的数据发送到同一流程节点(图内标题 24)

  • 判断告警等级流程将传过来的数据判断每个采集点当前的告警等级(图内标题 25)

  • 将每个采集点对应的告警等级信息包装成返回值的格式(图内标题 26)

  • 将包装好的数据发给数据目标(图内标题 27)

B、告警等级设置说明

每一个被检测的采集点都会设置一个或多个告警等级,比如我们在 endpoint1 采集点上设置正常情况、1 级告警、2 级告警、3 级告警、4 级告警、5 级告警,数字越大代表越严重。

通常情况下,我们对每一个采集点都通过维护一个栈来保存这个采集点的告警信息,这个采集点当前的告警等级,即是栈顶保存的告警等级。若当前告警等级大于栈顶元素,则该告警等级进栈,代表当前告警等级提高;若当前告警等级小于等于栈顶元素,则不做任何处理。

C、恢复告警等级设置说明

我们对当前恢复告警等级对栈内元素进行比较,从栈顶开始,若栈顶元素大于当前恢复告警等级,则栈顶元素出栈,继续比较新栈顶元素与当前恢复告警等级,直至栈顶元素小于等于当前告警等级。

若在比较的过程中,已有栈顶元素被弹出,新栈顶元素小于当前恢复告警等级,则将当前恢复告警等级进栈,并发送一条设置告警的记录。

若在比较的过程中,没有栈顶元素被弹出,最开始的栈顶元素小于当前恢复告警等级,则不作处理。

D、重复发送告警等级设置说明

当一个采集点的告警等级栈长时间没有更改,也就是没有进栈操作也没有出栈操作,将对用户重新发送一个当前栈顶元素的告警信息。意为长时间没有对当前告警做出处理,重复提醒。

四、总结

通过告警规则及恢复告警规则,可以减少人力监控,也是自动化运维的一种手段。对于数字能源平台来说,一个采集点出现的问题,首先平台要第一时间知晓而不是等待用户反馈。通过告警规则与恢复告警规则,也大幅减少了运维人员去查看日志的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前言技术--swagger

目录一、前后端分离的特点二、在没有swagger之前三、swagger的作用四、swagger的优点五、集成swagger5.1 新建springboot项目5.2 集成swagger5.3 开发一个controller用于测试5.4 启动服务,验证集成效果六、swagger常用注解七、swagger使用综合案例一、前后端分离的特…

Python的PyQt框架的使用-常用控件篇

Python的PyQt框架的使用-常用控件篇一、前言二 、QLineEdit 文本框三 、QPushButton按钮控件四、QRadioButton 单选按钮一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,小伙伴们,让我们一起来学习Python的PyQt框架的常用控件。如果文章对你有帮助、欢迎…

第一个程序——构建一个ServerUI

简介 本次程序设计均使用python实现,使用sql server对聊天室用户的数据进行存储。通过python socket套接字编程,实现了在线聊天室的功能,并使用python tkinter进行UI界面的设计。 思路 由计算机网络的基础知识易知,两个主机之间…

基于LSTMGRU的微博突发事件分析与谣言检测(附完整的代码+报告)

问题描述及方法基础 本章主要对课题研究所涉及的机器学习、自然语言处理的原理和方法进行介绍,主要分为四部分,第一部分是将本课谣言检测任务的符号化描述;第二部分是微博数据的预处理,包括语言模型、文本分词等技术;第三部分与第四部分分别是本文搭建的微博谣言检测模型所…

py字符串的格式化笔记

print():和cjava差不多,只是逗号变了,其中 %s 就是模板中的占位符,表示这个位置先占着,待会儿要有数据填入到这里。然后再提供一个元组,里面依次存放需要填入到 %s 位置 的数据。这里是使用变量 (salary,tax,aftertax)…

CSS.前端基础.html

什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CSS 文件中多个样式定义可层叠为一个示…

丝绸之路也可以是科技传播之路

唐宋元海外贸易 618年-1368年 王孝通 生卒年代不详 孙思邈541年—682年 一行 公元683年-公元727年 李淳风 602年-670年 沈括 1031年-1095年 郭守敬 1231年-1316年 扎马鲁丁生卒年代不详 阿拉伯帝国 632年-1258年 阿尔花拉子模 780年&#xf…

【深度强化学习】【论文阅读】【双臂模仿】Deep Imitation Learning for BimanualRobotic Manipulation

title: Deep Imitation Learning for BimanualRobotic Manipulation date: 2023-01-15T20:54:56Z lastmod: 2023-01-19T18:31:57Z Deep Imitation Learning for BimanualRobotic Manipulation 1 Introduction 文中使用的模型是一个深度的、分层的、模块化的架构。与 baselin…

微服务负载均衡器Ribbon学习笔记

目录 1.什么是Ribbon 1.1 客户端的负载均衡 1.2 服务端的负载均衡 1.3 常见负载均衡算法 2. Nacos使用Ribbon 3. Ribbon负载均衡策略 4.修改默认负载均衡策略 方式1:通过自定义配置类来实现 方式2:通过修改配置文件实现(推荐&#xf…

9、jQuery

jQuery库&#xff1a;里面存在大量的JavaScript函数 官网&#xff1a;https://jquery.com/ 9.1 获取jQuery jQuery引入 cdn 引入 <script src"https://cdn.bootcss.com/jquery/3.4.1/core.js"></script>本地引入 <script src"lib/jquery-3.6.3.…

C语言练习——3

C语言练习——3一、 操作符练习1.1交换两个变量&#xff08;不创建临时变量&#xff09;1.2 打印整数二进制的奇数位和偶数位1.3[二进制中1的个数](https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8)1.4[两个整数二进制位不同个数](https://www.no…

【 java 反射下篇】java反射机制不难吧?来看看这篇

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

Element Plus 跟踪表格数据总数,包括查询、筛选等操作

前言 Element Plus的表格组件提供了筛选功能 前端项目中&#xff0c;如果表格使用的是后端分页&#xff0c;使用表格插件及分页器插件就可以了。这种情况下&#xff0c;前端的表格筛选被后端的分页条件查询取代了 另一种情况&#xff1a;不分页&#xff0c;直接查询所有数据…

Win7快速部署weblogic 12c

0x00 前言 需要一个漏洞中等数量的版本。 0x01 安装环境 版本操作系统Windows 7 64bitJDKjdk-8u101-windows-x64weblogic12.2.1.3 0x02 下载地址 JDK 下载地址 https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html jdk 1.8版本&#xff0c;文…

华为机试题:HJ16 购物单(python)

文章目录知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。2、print() &#xff1a;打印输出。3、strip()&#xff1a;删除字符串&#xff08;开头 / 结尾&#xff09;指定字符&#xff08;默认空格&#xff09;或字符…

两小时上手ActiveMQ

一、消息中间件概述 1.1 消息中间件产生的背景 在客户端与服务器进行通讯时.客户端调用后&#xff0c;必须等待服务对象完成处理返回结果才能继续执行。 客户与服务器对象的生命周期紧密耦合,客户进程和服务对象进程都都必须正常运行;如果由于服务对象崩溃或者网络故障导致用…

ceres学习笔记(四)

前言&#xff1a; 学习了pose_graph_2d部分&#xff0c;因为先学习了3维的pose_graph_3d部分&#xff0c;所以这个就比较容易。简单来说就是se2和se3的区别。整个的运行逻辑和3维部分的pose_graph_3d部分是一样的&#xff0c;概括为&#xff1a; 1.设置好两个type&#xff0c…

7、CenOS6安装Nginx

Nginx的安装与启动 什么是Nginx Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。由俄罗斯的程序设计师伊戈尔西索夫&#xff08;Igor Sysoev&#xff09;所开发&#xff0c;官方测试 nginx 能够支支撑 5 万并发链接…

《早安隆回》的铁粉,深圳80后男子不计成本,收购袁树雄签名照

谁也没有想到&#xff0c;五十多岁并且离异多年的袁树雄&#xff0c;靠着一首《早安隆回》&#xff0c;一夜之间红遍大江南北。如今《早安隆回》这首歌曲&#xff0c;已经拥有了三百万流量&#xff0c;有人说袁树雄下辈子都吃喝不愁&#xff0c;他的前妻该后悔了。 《早安隆回》…

ue4c++日记4(控制pawn类的运动|创建游戏模式|)

目录 代码速查 调用数学公式 获取位置/设置位置 绑定玩家输入按键&#xff0c;UE4传值给函数进行处理 约束获得的值再输出 创建对象 对象绑定到xxx上 设定默认玩家 实例&#xff1a;sin函数实现往复运动 实例&#xff1a;删除c类 1.删掉cpp和.h文件 2.删编译好的文件B…