开源aodh学习小结

1 介绍

aodh是openstack监控服务(Telemetry)下的一个模块,telemetry下还有一个模块ceilometer

OpenStack Docs: 2024.1 Administrator Guides

Get Started on the Open Source Cloud Platform - OpenStack

Telemetry - OpenStack

1.1 代码仓

博客总结基于zed分支展开(版本15.X)

代码仓可以从openstasck代码仓或github下载

openstack/aodh: OpenStack Telemetry (Ceilometer) Alarming - aodh - OpenDev: Free Software Needs Free Tools

1.2 结构

主要三个部分:aodh-notifier, aodh-evaluator, aodh-listener,这三个会以进程形式一直处理告警,其他console_scripts下的东西类似于命令行,执行结束就完了

每个部分都看下

2 aodh-evaluator

作用 周期评估告警

2.1 评估告警

从入口函数进入,执行aodh.cmd.alarm.evaluator函数,该函数会创建aodh-evaluator逻辑类(即aodh-evaluator主要逻辑封装到一个类里)aodh.evaluator.AlarmEvaluationService的实例

aodh-evaluator业务主要逻辑在实例的初始化里,实例化过程中,会创定时任务,然后启动定时任务,定时任务会周期查db的告警和系统指标,去评估指标是否超过告警里的阈值,如果超过阈值则按一定规则上报给aodh-notifier

告警阈值通过查db得到,即先从db查告警,然后从查询结果获取阈值对应的字段作为阈值,用阈值去评估告警

待评估的数据(告警)也通过查询获取,查询具体动作由插件实现,调插件的evaluate方法。每个插件查询待评估数据的方法都可能不同,无法统一看。比如gnocchi就是在插件里调client去查数据然后和告警阈值评估

评估告警后发送告警业务逻辑也在相同插件里实现,插件列表如下

2.2 发送告警

如果评估需要发送告警,则根据情况先修改db的告警定义状态,然后组装告警数据,上报上去,最后上报到notifier_topic队列,默认值是alarming

3 aodh-notifier

主要逻辑为监听aodh-evaluator发送的告警,然后监听发送告警所在队列,如果监测到告警则交给处理函数处理,处理后发送出去

主要逻辑封装在一个类里,服务启动时,py脚本会创建该类的实例,实例创建完成,则业务主要逻辑也创建完成

3.1 监听告警

监听发送告警所在队列逻辑在类初始化里完成,监听队列名从conf.notifier_topic获取,默认为alarming

3.2 处理告警

处理告警通过插件实现,插件定义在setup.cfg里,插件通过stevedore.extension模块被加载,加载后被封装到AlarmEndpoint里,然后在创建实例时实现监听告警逻辑时同时提供插件,当监听到告警时直接调用插件里的接口notify方法对告警处理

插件定义

aodh-notifier接受到告警后,进行怎样的告警处理依赖于aodh-evaluator发送告警时调用的方法。处理告警执行的类方法与告警发送时调用的方法名应该一致

3.3 发送告警

处理完告警会继续将告警发给下一环,下一环可以是用户自定义的处理目标,通过url请求发送告警,url地址通常在aodh-evaluator发送评估后告警的结构体中包含,aodh-notifier发告警时直接从告警里取出目标url,然后将告警发出去

4 aodh-listener

主要逻辑也是监听告警(队列),然后处理告警,主要处理event类型告警

监听队列名为conf的event_alarn_topic的值,默认为alarm.all

4.1 监听告警

4.2 处理告警

处理告警逻辑封装在EventAlarmEndpoint里,endpoint函数处理告警时直接调用函数入参的evaluate_events方法实现

从发送的告警结构体里获取告警的tenant_id或alarm_id,然后从数据库查在这个tenant_id或alarm_id下enabled的event类型告警,查到以后,遍历查到的每个告警,然后评估告警并发送告警

注意,此处数据库里查到的告警是告警定义,目的是为了从查db获取的告警结构体里获取阈值,将该阈值和监听到的event的字段比较来具体评估是否要上报告警

4.3 发送与上报告警

当当前评估周期会发告警时,还会和上一个评估周期比较

如果上评估周期无告警本周期有告警,则先在db改告警状态为有告警,再notify上报本告警

如果上评估周期有告警本周期有告警则直接notify上报本告警,无需更新db告警状态

最后发送告警到notifier_topic队列,默认值alarming

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

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

相关文章

softmax函数与交叉熵损失详解

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

【C++ 内存管理】深拷贝和浅拷贝你了解吗?

文章目录 1.深拷贝2.浅拷贝3.深拷贝和浅拷贝 1.深拷贝 🍎 深拷⻉: 是对对象的完全独⽴复制,包括对象内部动态分配的资源。在深拷⻉中,不仅复制对象的值,还会复制对象所指向的堆上的数据。 特点: 🐧① 复制对…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 背景 log4j这次的bug,我相信大家都已经知道了,仅以…

【unity小技巧】减少Unity中的构建打包大小

文章目录 正常默认打包查看编辑器打包日志压缩图片压缩网格模型压缩贴图压缩音频文件只打64位包最终大小完结 正常默认打包 这里以安卓为例。先什么都不干,直接打包安卓apk,查看包大小 查看编辑器打包日志 搜索build report构建报告。构建报告我们应该…

Pytorch学习-引言

Pytorch相关链接 Pytorch官方网站 https://pytorch.org/ Pytorch的Github仓库 https://github.com/pytorch/pytorch Pytorch论坛 https://discuss.pytorch.org/ Pytorch离线下载包链接 https://download.pytorch.org/whl/torch_stable.html Pytorch学习视频推荐链接 http://【…

手写一个SPI FLASH 读写擦除控制器

文章目录 flash读写数据的特点1. 扇擦除SE(Sector Erase)1.1 flash_se 模块设计1.1.1 信号连接示意图:1.1.2 SE状态机1.1.3 波形图设计:1.1.4 代码 2. 页写PP(Page Program)2.1 flash_pp模块设计2.1.1 信号连接示意图:…

JavaScript 对象入门:基础用法全解析

目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…

程序员之路:裁员与内卷下的生存之道

作为一名普通的程序员,身处这个瞬息万变的IT行业,面对着今年不断加剧的裁员浪潮和日益激烈的内卷竞争,我时常感到焦虑和不安。然而,正是这些挑战,让我们更加深入地思考了在这个行业中,我们该如何找到自己的…

2024统计建模中国新质生产力统计测度与时空演变及其驱动因素研究

高质量成品论文46页word版本1.5w字书写完整数据集1000行py代码一等奖论文!这里仅展示部分内容,完整版在下面的链接。 【1.5w字全网最佳】2024统计建模大赛高质量成品论文39页配套完整代码运行全套数据集https://www.jdmm.cc/file/2710661/ 中国新质生产…

【2024HNCTF】密码组部分出题记录

2024H&NCTF 密码组部分出题记录 题目:BabyPQ、HappyDance 文章目录 2024H&NCTF 密码组部分出题记录BabyPQ | 签到HappyDance BabyPQ | 签到 本题为nc交互题,之所以采用这种形式,是因为可能有很多密码新师傅们不了解这种赛题形式&a…

AI机器人火了,探讨早就可以帮我们开拓市场的中关村科金语音机器人

近期AI机器人给我们带来了不少惊喜,比如国外 Figuer 联合 OpenAI 做了 Chatgpt 机器人,可以通过对话后推理干活,国内仿生机器人员工也开始量产,看到AI机器人不禁想到会不会替代我们的工作?我们了解到很多机器人厂家的…

#初阶模板

目录 1.泛型编程 2.模板 (1)函数模板 (2)举个栗子(模板的使用) 1.模板的声明有两种形式 2.函数模板的原理 (3)模板参数的匹配原则 (4)类模板 类模板…

AI图像生成-原理

一、图像生成流程总结 【AI绘画】深入理解Stable Diffusion!站内首个深入教程,30分钟从原理到模型训练 买不到的课程_哔哩哔哩_bilibili 二、如果只是用comfy UI生成图片 1、找到下面几个文件,把对应模型移动到对应文件夹即可使用 2、选择对…

大学c语言基础很差,能不能学51单片机?会不会很困难?

开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些51单片机学习方法和资料,让我不断提升自己,感谢帮助过我的人, 如大家和我一样…

python turtle 升国旗

​一、导语 大家好,前段时间,我们画出了五星红旗,今天我们要用Python的Turtle库来绘制一个五星红旗,并让国旗上升,让我们一起来感受编程与艺术的完美结合吧!领略国家的强大!爱祖国,做一个遵纪守法的好公民。 二、效果展示 升国旗 三、开发过程 一、准备工作 首先我们…

OpenAI深夜震撼发布最新模型GPT-4o,送上最快速便捷教程

北京时间5月14日凌晨,有人说OpenAI一夜改变了历史。 在我们的深夜、太平洋时间的上午 10 点,OpenAI 召开春季发布会,公布了最新的GPT-4o模型,o代表Omnimodel(全能模型)。20多分钟的演示直播,展…

美国加州正测试ChatGPT等生成式AI,在4大部门应用

5月11日,美联社消息,美国加州政府正在测试ChatGPT等生成式AI,应用在税收和收费管理部、交通部、公共卫生部以及卫生与公众服务部4大部门。 测试时间6个月,为其提供技术支持的一共有5家公司,分别是OpenAI、Anthropic、…

成都新增数字产业园,打造生态经济新引擎

成都产业园运营方树莓集团——数字产业生态链建设者。秉持高效、友善、敢为的集团核心文化,有效链接政、产、企、校四个板块,构建了产业生态闭环系统。在成都市区内,已布局了多家数字文创产业园,其中具有代表性的参考国际数字影像…

Linux 第三十一章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

GRFB-UNet:一种新的多尺度注意力网络,用于铺路分割

不同场景下的带注释的触觉铺装示例: GRFB-UNet网络结构: GRFB模块的结构: 铺路在视障人士的旅行中起着至关重要的作用。因此,识别铺装的形状和位置以支持视障人士的移动性是相当有意义的,而视觉分割技术就适合这项任务。为了有效提高触觉铺装分割的精度和鲁棒性,…