首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个可扩展的报警系统Quick-Alarm

一个可扩展的报警系统Quick-Alarm 背景 日常的系统中,报警是不可缺少的一环,目前报警方式很多,最常见的有直接打日志,微信报警,短信报警,邮件报警等;而涉及到报警,一般不可避免的需要提前设置一些基本信息...,如报警方式,报警频率,报警用户,开关等; 另外一个常见的问题是一般采用的是单一的报警方式,比如不管什么类型的报警全部都用短信方式触达,然后就会发现手机时常处于被淹没的状态了,久而久之对报警短信就不会敏感了...目标 因此我们准备设计一个通用的报警框架 可以自由选择报警方式, 支持用户自定义报警方式拓展 支持动态的报警配置, 支持用户自定义报警规则拓展 支持报警方式自动切换规则设定 支持报警方式自定义自动切换规则拓展...提交报警:对外部使用者提供的接口 选择报警:根据报警相关信息,选择具体的报警执行单元 执行报警:实现具体的报警逻辑 从任务划分上来看,比较清晰简单,但是每一块的内容又必须可以拓展, 选择报警报警规则的制定...报警规则具体的定义细则 报警规则的解析:即根据报警类型来获取报警执行器 报警规则动态更新支持 报警线程池 维护报警队列 报警的计数与频率控制 封装对外使用接口 所以,通过上面的分析可以看出,这个系统的结构还是蛮简单的

78480
您找到你想要的搜索结果了吗?
是的
没有找到

Linux下的signal信号机制

Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。...中国) http://www.linux-cn.com/html/linux/system/20070505/27605.shtml Linux 信号signal处理函数(CSDN) http://blog.csdn.net...当用户调用alarm()时,前面任何一个请求的报警信号(不包括悬挂起来被阻塞的SIGALRM信号)都将被取消,调用的返回值是前面请求的剩余时间。...结构itimerval的定义如下: struct itimerval  {       struct timeval it_interval; // 每一次触发报警后应该被复位的值,为0报警被禁止     ...struct timeval it_value;     // 下一次触发报警的时间,为0报警将只触发一次 };          结构timeval的定义如下: strut timeval {

3.9K20

大数据平台建设 —— 监控预警组件之OpenFalcon + Grafana

Graph:接收Transfer发送的数据,进行数据的存储和后续图表绘制 Alarm:Judge进行告 警判断之后,将告警请求放到redis,Alarm从redis中获取告警指标,执行报警 HeartBeat...,提高集群吞吐量 通过队列做缓冲,减少服务的压力,如报警的Redis队列 单独的策略检索服务,提供高效的策略检索 RRD存储方案,对于画图和分析数据分开存储,保证图表绘制速度 报警事件按照优先级进行队列分配并执行报警...(os.environ.get("ALARM_DB_PORT",3306)) ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root") ALARM_DB_PASS...]# ---- 实现OpenFalcon对Hadoop服务状态报警 OpenFalcon的报警函数: all(#3):最新的3个点都满足阈值条件则报警 max(#3):对于最新的3个点,其最大值满足阈值条件则报警...min(#3):对于最新的3个点,其最小值满足阈值条件则报警 sum(#3):对于最新的3个点,其和满足阈值条件则报警 avg(#3):对于最新的3个点,其平均值满足阈值条件则报警 diff(#3):

2.5K40

Program_Alarm指令使用之我的心得

JZGKCHINA 工控技术分享平台 尊重原创 勿抄袭 勿私放其他平台 使用西门子HMI时常用的离散量报警,项目需要多少个报警就需要编辑多少个HMI报警文本。...如图所示: 与原来在HMI中创建报警信息的做法相比,使用1500PLC搭配精致面板可以使用Program_Alarm指令达到快速从PLC端编辑报警文本发送至HMI,节省时间,提升效率。...不需要HMI侧编写离散量报警条目如图所示: 开始调块 Program Alarm需要在程序中编程,并且每一条报警信息都要调用一个FB块并占用一个DB块,看起来费时又费力,那为什么要推出这个功能呢?...3.因为前边已经使用数组0..100报警信号和数组0..100报警文本分别给数组0..100的指令赋值,所以接下来我们要对这个报警信号和报警文本操作。...4.定义UDT 5.创建全局DB 6.创建离散量报警形参块,进行形参关联 7.给离散量报警块赋值实参变量 8.在PLC侧需要指定报警文本及报警类别,HMI侧也需要勾选相同的报警类别 验证一下

1.2K20

报警系统QuickAlarm使用手册

添加注册文件 首先在项目的资源目录下,添加注册文件 alarm.properties,文件内容如下 ## 应用名,必填 appName=test ## 报警规则文件所在的路径,如果采用系统默认加载方式...msg: ip:172.17.13.18 >>> key:YYY >>> 异常数: 16 >>> 异常报警升级测试 18:36:28.998 [Thread-33] INFO alarm - Do...msg: ip:172.17.13.18 >>> key:YYY >>> 异常数: 18 >>> 异常报警升级测试 18:36:28.998 [Thread-26] INFO alarm - Do...msg: ip:172.17.13.18 >>> key:YYY >>> 异常数: 17 >>> 异常报警升级测试 18:36:28.998 [Thread-35] INFO alarm - Do...小结 所有测试相关数据,均可以在测试工程中获取,请主要关注: 测试case 注册文件:alarmConfig 报警规则配置文件:alarm.properties V.

931160

搭建开源美观的数据库监控系统-Lepus

用于存储基础数据和事件数据(本文安装教程略) InfluxDB 1.x 否 事件数据默认存储MySQL,支持存储到InfluxDB,如有使用InfluxDB需求则必须需要部署(笔者未安装) Redis 5.x 是 用于报警系统限流...cp etc/proxy.example.ini etc/proxy.ini cp etc/alarm.example.ini etc/alarm.ini cp etc/config.example.ini.../etc/config.ini 启动Alarm模块 ./lepus_alarm --config=...../lepus_alarm --config=../etc/alarm.ini 查看运行日志,没有Error则运行正常,如果日志过多可以将配置文件debug设置为0,则不会输出debug日志。...安装Lepus-console Lepus Console控制台是用于配置和管理Lepus的WEB管理界面,没有控制台,Lepus也可以正常运行,您也可以通过操作数据库数据进行监控和报警,但是使用Lepus

1.1K10

国标GB28181协议EasyGBS平台修复告警录像单个设备查询为空的问题

.* from t_alarm where 1=1 and t_alarm.device_id = 34020000001320000091 and t_alarm.channel_id = 34020000001320000001...查找原因后发现,其中channel_id、device_id两个参数需要用单引号,于是修改后的sql语句: Sql : select t_alarm.* from t_alarm where 1=1...and t_alarm.device_id = '34020000001320000091' and t_alarm.channel_id = '3402 0000001320000001' 效果如下图...: 代码逻辑: 此外,国标GB28181协议EasyGBS平台还拓展了告警上报功能,当前端设备包含报警布防功能时,用户可以定义设置好设备的报警信息,EasyGBS平台则可以获取到设备的报警信息,同时...,还可以同步抓取到所有设备记录的报警状态,并将设备的报警级别、报警方式、报警类型、报警时间进行统一展示。

49920

搭建开源美观的数据库监控系统-Lepus

是用于存储基础数据和事件数据(本文安装教程略)InfluxDB1.x否事件数据默认存储MySQL,支持存储到InfluxDB,如有使用InfluxDB需求则必须需要部署(笔者未安装)Redis5.x是用于报警系统限流...cp etc/proxy.example.ini etc/proxy.inicp etc/alarm.example.ini etc/alarm.inicp etc/config.example.ini.../etc/config.ini​启动Alarm模块./lepus_alarm --config=...../lepus_alarm --config=../etc/alarm.ini查看运行日志,没有Error则运行正常,如果日志过多可以将配置文件debug设置为0,则不会输出debug日志。...安装Lepus-consoleLepus Console控制台是用于配置和管理Lepus的WEB管理界面,没有控制台,Lepus也可以正常运行,您也可以通过操作数据库数据进行监控和报警,但是使用Lepus

1.7K20

xxl-job 实现email发送警告的代码解析(一行一行代码解读)

报警内容 String alarmContent = "Alarm Job LogId=" + jobLog.getId(); // 记录日志id...(是否成功报警,默认 是) return alarmResult; } /** * load email job alarm template *...方法中遍历jobAlarmList调用重写的doAlarm方法 (报警具体实现),当需要触发报警时, 只需要调用JobAlarmer类的alarm方法, 即可自动触发所有的报警实现,因xxl默认只有邮箱报警..., 所本文代码只贴出了邮箱报警EmailJobAlarm类的代码, 此方式的好处是当需要其他报警方式:如短信报警, 只需要添加类实现JobAlarm接口,使用@Component注解, 并重写方法doAlarm...即可,便会在JobAlarm类的alarm方法 jobAlarmList中触发调用子类实现的短信报警方法, 可拓展性强,便于维护。

2K30

深入探究ECharts在实时数据监控中的动态报警区间可视化

本文将重点介绍如何运用ECharts中的折线图(Line Chart)结合MarkArea组件,实现实时数据监控中的动态报警区间可视化。...== -1 && alarm[alarm.length - 1]) { markAreaData.push([{ xAxis: value[start] }, { xAxis: value[alarm.length...函数的实现思路 遍历 alarm 数组,如果当前元素为 true,且 start 值为 -1,则说明当前是一个异常报警的起始时间点,将 start 赋值为当前下标。...markAreaData; }, }, }; 五、报警区域效果 总结 本文介绍了如何利用 markArea 功能来监测设备异常报警。...通过准备好数据、编写函数和配置 markArea,我们可以在 echarts 中标记出设备异常报警的时间段,从而更加直观地展示数据。

31031
领券