watcher学习小结

news2024/10/6 14:25:32

架构

主要是watcher-api,watcher-applier,watcher-decision-engine

watcher-applier

watcher-decision-engine

将DecisionEngineManager和DecisionEngineSchedulingService封装到oslo_service,然后调service的launch_service,实际调用start方法

默认加载nova,然后execute

DecisionEngineManager

conductor_topic默认为watcher.decision.control

conductor_endpoints为audit_endpoint, data_model_endpoint, strategy_endpoint

notification_topics默认为nova.versioned_notifications和watcher.watcher_notifications

notification_endpoints为NovaClusterDataModelCollector

conductor监听

audit endpoint

传入一个audit uuid参数,执行对应audit对象的audit

根据audit类型判断接下来的动作,如果audit type是oneshot或event,则有对应类型的action,如果audit类型为continuous则无对应动作,可能什么都不做

oneshot

execute方法定义在父类,分为pre_execute,execute和post_execute

audit pre execute

检查watcher是否有ongoing状态的actionplan,如果有则抛异常,如果没有则继续

设置audit的状态为ongoing

audit execute

此阶段会执行strategy

发送通知:执行strategy前后会发通知,默认通知级别是INFO。通知包含了audit的goal和strategy,还包含了audit当前的阶段(phase),执行strategy前的phase是start,执行strategy后是end。通知的eventtype靠拼接生成:object + action (+ phase)可能形如audit.strategy.start/audit.strategy.end这种。

选择strategy:执行strategy前需要选择对应的strategy。先看audit对象有没有strategy名,有则直接加载对应strategy,如果没有strategy但有goal名称,则先获取所有strategy,遍历strategy寻找goal为对应名称的strategy,如果没找到strategy则抛异常

校验strategy并处理参数:将audit的scope更新给找到的strategy,获取strategy的schema,如果audit的parameter为空且scheme不为空则校验schema与audit的parameter,然后将audit的parameter更新给strategy

执行strategy:strategy也分为preexecute,execute和postexecute等阶段(以workload_balance strategy为例)

strategy pre execute

主要是获取compute model

先从collector manager获取collector(为compute对应的类),再将audit的audit_scope赋值给collector的_data_model_scope属性并返回一个scope处理器,调collector获取最新的compute model,然后scope处理器会根据这个compute model是否有scope属性再做处理,如果没有scope属性则直接返回compute model

通过collector获取最新compute model是通过调用collector的execute方法获取的,execute方法通过调用NovaModelBuilder返回一个ModelRoot实例作为compute model。获取model前会先做scope检查,然后整合scope,然后返回ModelRoot,再给ModeRoot里添加节点

添加节点:先从scope获取aggregates和availabilities_zones底下的主机,如果scope为空或者最后没获取到主机,则调hypervisors list获取所有不为ironic的节点。然后获取hypervisor详情列表,可能通过hypervisor-show,最后在hypervisor详情列表添加第一个hypervisor和其下的vms添加到ModelRoot的nodelist和instance list

赋值:获取compute model后,将audit的parameter里参数赋值到strategy对象的实例属性,比如threshold,period,metrics,granularity等

strategy execute

获取overload和非overload的节点,overload由threshold判断,数值应该从gnocchi获取(为啥?没看明白)。获取overload的虚机和未overload的主机,最后根据算法将overload的虚机放到未overload的主机

strategy post execute
audit post execute
event
strategy endpoint

获取strategy信息

data model endpoint

获取data model信息

notification监听

删除和更新service,还有个info 方法

DecisionEngineSchedulingService

定时更新/同步compute  model

定时检查任务状态

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

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

相关文章

渗透测试基础(四) MS08-067 漏洞攻击

1. 漏洞介绍 漏洞描述 Microsoft Windows Server服务RPC请求缓冲区溢出漏洞Windows的Server服务在处理特质RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户系统,以SYSTEM权限执行任意指令。…

为什么3D渲染让客户无法抗拒?7个重要原因

客户通常对工程、建筑、复杂的室内外设计知之甚少,展示草图只会让他们感到难以理解。不过,现代设计师和建筑师不再需要为此烦恼。 通过使用逼真且沉浸式的3D渲染,他们可以让能够轻松地向客户传达信息和沟通想法。它对赢得客户至关重要。接下…

PyCharm新手入门

前言 在之前《Python集成开发工具的选择》一文中介绍了python初学者可以使用Jupyter Notebook,Jupyter Notebook简单易用,可以用来练习代码编写,但是实际生产开发环境使用这个工具是远远不够用的,因为实际软件开发中需要软件调试…

API接口对接的步骤流程?有哪些注意事项?

API接口对接自动化的实现方法?如何调试API接口发信? 在现代软件开发中,API接口对接已成为各个系统和应用之间进行通信和数据交换的关键技术。AokSend将详细介绍API接口对接的步骤流程,帮助开发者更好地理解和实现这一过程。 API…

在webstorm配置nodejs(从零开始)

在webstorm配置nodejs之前,需要先下载node.js和webStorm。 按下winr,输入cmd打开命令行 输入node -v和npm -v会出现相应的版本,如果报错则需要去下载node.js。 打开webStorm,File—settings 搜索node 选择node.exe安装位置 重启…

大模型日报|8 篇必读的大模型论文

大家好,今日必读的大模型论文来啦! 1.Pandora:自回归-扩散混合通用世界模型 世界模型模拟世界在不同行动下的未来状态,它们有助于创建交互式内容,并为有依据的长远推理提供基础。然而,目前的基础模型并不…

【stm32单片机应用】基于I2C协议的OLED显示(利用U82G库)

一、U8g2库 (一)U8g2简介 U8g2 是一个用于单色和彩色显示的嵌入式图形库,特别适用于单色OLED、LCD显示屏的驱动。它是对早期U8g库的扩展和改进,提供了更多功能和更广泛的硬件支持。U8g2作为一款强大而灵活的嵌入式图形库&#x…

为什么你不能下载哨兵遥感影像?Sentinel-1 和 Sentinel-2(解决)

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 今天的文章来介绍一下如何下载欧空局哨兵数据,哨兵数据是目前我们可以免费下载的全球…

海康威视-下载的录像视频浏览器播放问题

目录 1、播放异常比对 2、视频编码检查 2.1、正常视频解析 2.2、海康视频解析 2.3、比对工具 3、转码 3.1、maven依赖 3.2、实现代码 4、验证 在前面的文章(海康威视-按时间下载录像文件_海康威视 sdk 下载录像 大小0-CSDN博客)中,通…

吊打Unity的角色动画重定向专业版工具FPS手臂武器动画动物动画角色动作微调烘焙20240620

今天发现一款关注已久的Unity插件上架商店了,可以将动画从一个通用/人形角色重新定位到另一个通用角色。 吊打Unity的角色动画重定向专业版工具FPS手臂武器动画动物动画角色动作微调烘焙202406201103 Unity 中任何通用角色的终极解决方案。它没有 Humanoid 系统的限…

分析师:是什么导致山寨币在本轮周期表现不佳?

在加密货币领域,山寨币的过度分散化问题逐渐凸显,成为本轮周期内其表现疲软的核心因素。经过深入研究,我发现这种分散化对加密货币市场的整体健康造成了严重威胁。然而,令人遗憾的是,目前看来,我们尚未找到…

ECharts 雷达图案例001-自定义节点动画

ECharts 雷达图案例001-自定义节点动画 引言 在数据可视化的领域中,ECharts 提供了一种强大的工具来展示多维数据。本文将介绍如何使用 ECharts 创建一个自定义节点样式的雷达图,让数据展示更加生动和个性化。 效果预览 通过自定义节点样式&#xff…

数据结构_二叉树

目录 一、树型结构 二、二叉树 2.1 概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 遍历二叉树 2.6 操作二叉树 总结 一、树型结构 树是一种非线性的数据结构,它是由 n(n>0) 个有限结点组成一个具有层次关系的集合,一棵 n 个…

CatBoost算法详解

CatBoost算法详解 CatBoost(Categorical Boosting)是由Yandex开发的一种基于梯度提升决策树(GBDT)的机器学习算法,特别擅长处理包含类别特征的数据集。它不仅在精度和速度上表现出色,还对类别特征有天然的…

工业园安全生产新保障:广东地区加强可燃气体报警器校准检测

广东,作为我国经济的重要引擎,拥有众多工业园区。 这些工业园区中,涉及化工、制药、机械制造等多个领域,每天都会产生和使用大量的可燃气体。因此,可燃气体报警器的安装与校准检测,对于保障工业园区的安全…

太湖远大毛利率下滑:研发费用率远低同行,募投项目合理性疑点重重

《港湾商业观察》黄懿 6月20日,浙江太湖远大新材料股份有限公司(以下简称“太湖远大”,873743.NQ)即将迎来过会。 2023年11月30日,太湖远大所提交的上市申请材料正式获北交所受理,保荐机构为招商证券&…

渗透测试基础(五) 获取WiFi密码

1. 前提条件 需要无线网卡,kali无法识别电脑自带的网卡。 2. 实验步骤: 2.1 查看网卡 命令:airmon-ng 2.2 启动网卡监听模式 命令airmon-ng start wlan0 检查下是否处于监听模型:ifconfig查看一下,如果网卡名加…

技术支持与开发助手:Kompas AI的革新力量

一、引言 随着技术发展的迅猛进步,技术开发的高效需求日益增加。开发人员面临着更复杂的项目、更紧迫的时间表以及不断提高的质量标准。在这种背景下,能够提供智能支持的工具变得尤为重要。Kompas AI 正是在这种需求下应运而生的。它通过人工智能技术&a…

word复制技巧二则

1 纵向复制 按下Alt键,按下鼠标左键拖动,选中要纵向复制的内容,如下图, 再粘贴即可; 2 整页复制 在页的任意位置单击,然后按CtrlA,这会选中整页;然后再复制粘贴即可;

企业为什么要进行数据资产管理工作:价值与案例剖析

在数字化浪潮席卷全球的今天,数据已经成为企业不可或缺的重要资产。数据资产管理,作为确保数据资产价值得以最大化利用的关键环节,正逐渐成为企业战略规划中的核心议题。本文将深入剖析企业进行数据资产管理工作的必要性,并结合实…