开源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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 - - - - - custom-tab-bar使用自定义tabbar

custom-tab-bar使用自定义tabbar 1. 创建custom-tab-bar组件2. 修改app.json3. tabbar对应页面调整 1. 创建custom-tab-bar组件 各个文件代码如下 /custom-tab-bar/data.js export default [{text: 流水笺,iconPath: /assets/icon/bill.png,selectedIconPath: /assets/icon/bi…

具身智能论文(四)

目录 1. Alexa Arena: A User-Centric Interactive Platform for Embodied AI2. EDGI: Equivariant Diffusion for Planning with Embodied Agents3. Efficient Policy Adaptation with Contrastive Prompt Ensemble for Embodied Agents4. Egocentric Planning for Scalable E…

ip addr 或 ip address 是 Linux 系统中的一个命令,用于显示或修改网络接口的地址信息。

ip addr 或 ip address 是 Linux 系统中的一个命令,用于显示或修改网络接口的地址信息。这个命令是 iproute2 软件包的一部分,通常在现代 Linux 发行版中都是预装的。 当你运行 ip addr 或 ip address 命令时,你会看到系统上所有网络接口的地…

求学生平均成绩(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明平均数函数average; float average(float score[10]);int main() {//初始化变量值&#xff1b;float score[10], aver;int i 0;//填充数组&#xff1b;pr…

Github项目管理——仓库概述(一)

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…

Java面试题:ConcurrentHashMap

ConcurrentHashMap 一种线程安全的高效Map集合 jdk1.7之前 底层采用分段的数组链表实现 一个不可扩容的数组:segment[] 数组中的每个元素都对应一个HashEntry数组用以存放数据 当放入数据时,根据key的哈希值找到对应的segment数组下标 找到下标后就会添加一个reentrantlo…

linux内核:持续更新

内核源码树 COPYING文件是内核许可证&#xff0c;CREDITS是开发了很多内核代码的开发者列表&#xff0c;MAINTAINERS是维护者列表&#xff0c;它们负责维护内核子系统和驱动程序&#xff0c;makefile是基本内核的makefile 向内核插入驱动模块 命令&#xff1a;insmod xxx.ko …

汇昌联信:拼多多网店该如何开店?

拼多多网店的开设流程并不复杂&#xff0c;但需要细心和耐心去完成每一步。下面将详细阐述如何开设一家拼多多网店。 一、选择商品与定位 开设拼多多网店的第一步是确定你要销售的商品类型&#xff0c;这决定了你的目标客户群体和市场定位。你需要了解这些商品的市场需求、竞争…

日常工作必备!后台网优人必用的办公软件盘点

在后台网优日常工作时&#xff0c;常常会用到一些工作软件。它们可以大大提高网优工作效率&#xff0c;让网优人轻轻松松工作&#xff0c;快快乐乐摸鱼&#xff0c;早早下班&#xff01; 后台网优工程师们常用的办公软件有哪些&#xff1f;让我们一起来看看 一、GGMap网优利器 …

ES扩缩容

ES扩容 1.1 页面扩容ES1 1.2 拷贝插件及ssl文件 JSON [ec_admin@kde-offline3 ~]$ sudo rsync -avP /usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/* kde-offline6:/usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/ ;echo $? [ec_admin@kde-offline3 ~]$ sudo rsync -avP /us…

Docker常用镜像安装

1. mysql 1.1 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql8 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/va…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中&#xff0c;我们将探讨人工智能的未来发展方向&#xff0c;特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析&#xff0c;我们将尝试解答一些关于AI发展的关键问题&#xff0c;并对未来的技术趋势进行预测。 引言 …

《四》系统模块整体功能关联与实现

在上一篇里&#xff0c;我们完成了动作的创建&#xff0c;那么这一次&#xff0c;我们把它加载到界面上&#xff0c;把需要是实现的动作都加上。 MyWord::MyWord(QWidget *parent): QMainWindow(parent) {mdiAreanew QMdiArea;mdiArea->setHorizontalScrollBarPolicy(Qt::S…

工厂数字化转型实现路线

工厂数字化转型实现路线 随着科技的飞速发展&#xff0c;数字化转型已成为当今社会的热门话题。尤其是对于工厂企业而言&#xff0c;数字化转型更是一种必然趋势。然而&#xff0c;在这个过程中&#xff0c;许多企业面临着种种困难和挑战。因此&#xff0c;探讨工厂企业数字化转…

NASA数据即——Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR)

Aqua AIRS Level 3 Spectral Outgoing Longwave Radiation (OLR) Monthly (AIRSIL3MSOLR) Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR) 简介 这个 L3 光谱出射长波辐射&#xff08;OLR&#xff09;是根据密歇根大学黄向磊开发的算法&#xff0c;利用 AIRS…

2024精选7个wordpress模板

通用多用途wordpress模板 中国红WordPress模板&#xff0c;适合服务行业企业建站的通用多用途wordpress模板。 WordPress是一款使用PHP语言开发的开源内容管理系统(CMS)&#xff0c;最初设计用于个人博客&#xff0c;但随着时间的发展&#xff0c;它已经演化成为一个功能强大的…

【算法优选】 动态规划之子数组、子串系列——壹

文章目录 &#x1f38b;前言&#x1f38b;最大子数组和&#x1f6a9;题目描述&#x1f6a9;算法思路&#x1f6a9;代码实现 &#x1f334;环形子数组的最大和&#x1f6a9;题目描述&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现 &#x1f332;乘积最大子数组&#x…

【PostgreSQL支持中文的全文检索插件(zhparser)】

PostgreSQL本身是支持全文检索的&#xff0c;提供两个数据类型&#xff08;tsvector,tsquery&#xff09;&#xff0c;并且通过动态检索自然语言文档的集合&#xff0c;定位到最匹配的查询结果。其内置的默认的分词解析器采用空格进行分词&#xff0c;但是因为中文的词语之间没…

想要安装Word、Excel、PowerPoint,但却找不到对应软件?

前言 前几天有小伙伴在找Word和Excel软件&#xff0c;但找了半天都没发现怎么安装。 这件事情其实很简单&#xff0c;那就是Word、Excel并不是单独的一个个软件&#xff0c;而是集成在MS Office套件里的。 咱们大部分人常用的办公软件大概是Word、Excel和PowerPoint这三个。还…

保研机试之【设备驱动程序】

B选项&#xff1a; 综上&#xff0c;我认为这道题选择D~