首页
学习
活动
专区
圈层
工具
发布

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

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

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

    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侧也需要勾选相同的报警类别 验证一下

    2.6K20

    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 {

    4.6K20

    大数据平台建设 —— 监控预警组件之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):

    3.6K41

    报警系统QuickAlarm之报警规则解析

    前面两篇分别说了报警执行器和报警规则的定义及用户扩展加载,接下来就是比较核心的一块了,如何将报警规则和报警执行器关联起来,即当发生报警时,应该call哪一个报警执行器 I. 背景知识点 0....声明 在正式进入之前,有必要额外声明一下,因为目前的v1版本,没有开放报警规则的自定义,也就是说,目前只支持默认的报警规则,所以接下来的主要内容将集中在 系统默认的报警规则的解析 即基于报警频率阀值,自动选择报警执行器的规则解析...报警规则 如果对于报警规则,依然不是很清晰的,可以阅读一下《报警系统QuickAlarm之报警规则的设定与加载》 这里简单的进行说明,系统中默认的报警规则结构为: key为报警类型(即用户执行报警时,传进来的报警类型参数...) value为具体报警规则 每个报警执行器拥有一个报警频率区间,通过报警频率映射到报警执行器的区间来选择对应的AlarmExecutor,这就是系统定义的报警规则 II....报警规则解析 通过前面的报警规则的简单说明,基本上也可以捞出报警规则的解析原则了 每种报警类型,对应一个报警规则 每个报警规则中,可以有多个报警执行器 每个报警执行器都有一个对应的报警频率的阀值 根据阀值对所有的报警执行器排序

    2K60

    搭建开源美观的数据库监控系统-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.7K10

    Grafana报警

    Send on all alerts:勾选后表示默认所有的报警都会通过这个通道发 Include image:勾选后表示在报警的时候同时截图发送,因为目前的报警通知不支持图片,所以这里不用勾选...Disable Resolve Message:勾选后表示当状态从报警中恢复到正常时,不再发送信息,即不告知恢复正常,这里不用勾选 Send reminders:勾选后表示除了状态刚变成报警中时会发报警消息...,过后每隔一段时间,如果依然处于报警中的状态,那么还会发一次重复报警 Send reminder every:表示每隔多长时间发送重复报警,这里填默认30分钟 Url:正式服的报警服务器...Http Method:选择 POST 设置完成后点击send test可以去注册账号时使用的邮箱查看报警邮件 设置好通道并完成验证后,为图表设置报警 选择图表 点击图表名称的下拉菜单—edit...进入编辑菜单 选择铃铛图表—create alert 设置图表报警 这里报警阈值设置的是取CPU Load平均值 因为是实验,所以预警值是0.5方便测试报警 设置完成后,发现图表上出现了预警线

    2.3K20

    报警系统QuickAlarm之默认报警规则扩展

    报警系统QuickAlarm之默认报警规则扩展 本篇主要是扩展默认的报警规则,使其能更加友好的支持同时选择多种报警方式 扩展遵循两个原则 不影响原有的配置文件格式 简化规则解析复杂度 I...., * * 当报警计数 count >= min * - max 非null, count 报警方式; * count >=...,即当技术为14,15 时,同时发起WeiXin和SMS报警 */ 相应的就可以干掉原来不太好懂的Executor选择逻辑,对应的代码为 // com.hust.hui.alarm.core.execut.AlarmExecuteSelector...其他 相关博文 报警系统QuickAlarm总纲 报警系统QuickAlarm之报警执行器的设计与实现 报警系统QuickAlarm之报警规则的设定与加载 报警系统QuickAlarm之报警规则解析 报警系统...QuickAlarm之频率统计及接口封装 报警系统QuickAlarm使用手册 项目: QuickAlarm 项目地址: Quick-Alarm 博客地址: 小灰灰Blog 个人博客: Z+|blog

    1.4K120

    搭建开源美观的数据库监控系统-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

    2.9K21

    报警系统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.

    1.2K160
    领券