当前位置: 首页 > news >正文

gnocchi学习小结

背景

总结gnocchi 4.4版本gnocchi-metricd工作流程

入口

gnocchi.cli.metricd

metricd

stop after processing metric默认为0,调servicemanager run

MetricdServiceManager

__init__

服务逻辑封装到MetricdServiceManager初始化中

主要由MetricProcessor, MetricReporting, MetricJanitor,都在metricd.py中定义。register_hooks用来reload MetricProcessor,默认48个worker

cotyledon.ServiceManager.add

先加到self._services,最后manager调_adjust_workers方法所有services集中处理

_adjust_workers调_start_worker和_stop_worker调整worker数,_utils.spawn_process调multiprocessing模块起进程

MetricProcessBase

三个metric类都继承自相同的base基类,base实现了run方法,run是无限循环,类似周期任务,周期执行业务类的_run_job方法

每一个worker好像都会delay一秒

只有metricProcessor是多worker,其他reporting和janitor都是单worker

MetricProcessor

主要业务是周期处理写进来的measures,处理后重新写入basepath下,具体怎么处理需确认

_run_job

229 判断初始化时间是否超过interval_delay(120),默认不超过,

_get_sacks_to_process

该函数类似一个装饰器,给定函数内存使用上限和timetolive,装饰类的同名函数_get_sacks_to_process

coordinator只有部分driver支持run_watchers,mysql driver不支持,所以_get_sacks_to_process报错,捕获异常,然后什么也不做,直接到finally返回

返回_tasks或fallback_tasks。mysql driver抛异常,_tasks是空,会返回fallback_tasks,看下赋值

incoming是gnocchi.incoming下的file driver

iter_sacks函数返回一个sack对象生成器,生成器长度从/var/lib/gnocchi/gnocchi-config默认配置文件读取,默认为128

获取完sack后,遍历每个sack底下的metric并处理

chef.process_new_measures_for_sack

看起来感觉是处理sack下的measures

聚合逻辑

会用时间序列存储对象,比如5分钟一个聚合周期,每1分钟采集一次指标,已经采了3个,则采第4个时,会将前三个先从文件解压缩,然后以时间序列形式加载,然后和第四个一起聚合

MetricReporting

周期汇报,返回一个report,默认没啥用,可以根据情况给业务用

MetricJanitor

周期删除状态为delete的metric和对应的measures

api

总结一些重要或常用api流程

gnocchiclient

7.X版本用v1

数据连接和查询的话,应该是初始化怎么连到db,还没看

v1/batch/resources/metrics/measures

该接口会修改incoming file类型存储端和mysql里的数据。mysql只有当metri不存在才会创建,如果存在则不处理,incoming file存储端存储上报的measures

对应gnocchiclient方法为metric.batch_resources_metrics_measures,方法对应的gnocchi处理逻辑在ResourcesMetricsMeasuresBatchController,方法是post,有一个create_metrics参数,默认False

虽然默认false,但和ceilometer对接的ceilometer端传参都是True

先查已有metric列表,新增measure前先判断measures里有没有名字不在已有metric列表的,如果有,创建新metric

最后批量创measuers,incoming应该是gnocchi.incoming下的file

add_measures_batch,应该是执行_store_new_measures方法

看着会先创临时文件,将measures写到临时文件,再按一定规则改临时文件名

sack有个最大数量,每个metricid会取余运算匹配一个sack,将sack和metricid组装成临时文件的替代路径,最后将临时文件重命名为这个路径

sack文件夹命名,total是总的,number是取余的结果,uuid模块创的uuid可转化为int,然后取余

最终路径应该是sack路径 + metricid + 随机uuid + 当前时间,父路径是/var/lib/gnocchi

加上True后会在原先生成路径后加一个随机uuid和当前时间

此处存疑,写入measure用的incoming模块,查询用的storage模块,其中对路径的拼接不一致(确认了,非问题,有多个存储端,不同的信息存储在不同的存储端)

其他业务相关

关于存储端

gnocchi有storage,incoming,indexer存储端,默认对接的分别是file,file,mysql。incoming主要操作measure,indexer操作metric,storage操作metric和measure的聚合相关操作

关于存储粒度

gnocchi有metric,measure,resource,和ceilometer粒度有类似对应关系,可以参考理解

gnocchi中的resource/metric/measure等的关系_gnocchi resource-CSDN博客

其他好用方法

获取主机名直接socket.gethostname()

相关文章:

gnocchi学习小结

背景 总结gnocchi 4.4版本gnocchi-metricd工作流程 入口 gnocchi.cli.metricd metricd stop after processing metric默认为0,调servicemanager run MetricdServiceManager __init__ 服务逻辑封装到MetricdServiceManager初始化中 主要由MetricProcessor, Met…...

【机器学习】Pandas中to_pickle()函数的介绍与机器学习中的应用

【机器学习】Pandas中to_pickle()函数的介绍和机器学习中的应用 🌈 欢迎莅临我的个人主页👈这里是我深耕Python编程、机器学习和自然语言处理(NLP)领域,并乐于分享知识与经验的小天地!🎇 &#…...

lightning的hook顺序

结果 setup: 训练循环开始前设置数据加载器和模型。 configure_optimizers: 设置优化器和学习率调度器。 on_fit_start: 训练过程开始。 on_train_start: 训练开始。 on_train_epoch_start: 每个训练周期开始。 on_train_batch_start: 每个训练批次开始。 on_before_bac…...

【ARFoundation自学03】AR Point Cloud 点云(参考点标记)功能详解

和平面识别框架一样 1为XR Origin添加AR Point Cloud Manager组件 然后你的ar应用就具备了点云识别功能,就这么简单 2.可视化这些云点 创建一个美术效果的预制体,人家提供了预设模板 然后拖到仓库(ASSETS)创建预制体&#xff…...

x264 码率控制中实现 VBV 算法源码分析

关于 VBV 的解释与原理可以参考x264 码率控制 VBV 原理。 x264中 VBV 算法执行的流程 vbv 参数配置相关函数 x264_param_default函数 功能:编码参数默认设置,关于 vbv的参数的默认设置;函数内vbv相关代码:/* ... */ //代码有删减 param->rc.i_vbv_max_bitrate = 0; par…...

宝兰德入选“鑫智奖·2024金融数据智能运维创新优秀解决方案”榜单

近日,由金科创新社主办、全球金融专业人士协会支持的“2024 鑫智奖第六届金融数据智能优秀解决方案”评选结果正式公布。凭借卓越的技术实力和方案能力,宝兰德「智能全链路性能监控解决方案」从90个参选方案中脱颖而出,荣誉入选“鑫智奖2024金…...

Unity3D雨雪粒子特效(Particle System)

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、下雨的特效1-1.首先就是创建一个自带的粒子系统,整几张贴图,设置一下就能实现想要的效果了1-2 接着往下看视频效果 👉二、下雪的特效👉三、下雪有积雪的效果3-1 先把控…...

记录使用自定义编辑器做试题识别功能

习惯了将解析写在代码注释,这里就直接上代码啦,里面用到的bxm-ui3组件库是博主基于element-Plus做的,可以通过npm i bxm-ui3自行安装使用 // 识别方法: // dom 当前识别数据所在区域, questionType 当前点击编辑选择的题目类型&a…...

MySQL索引和视图

MySQL索引和视图是关系型数据库MySQL中的两个重要概念。索引用于优化数据库的查询性能,而视图用于提供一个逻辑上的表结构,方便用户查询和操作数据。 索引是一种数据结构,可以加速对数据库表中的数据进行查询的速度。通过创建索引&#xff0…...

Java单元测试Mock的用法,关于接口测试的用例

Testvoid getAllTradeDateList() {// 创建模拟对象Bc6CalculateService calculateService Mockito.mock(Bc6CalculateService.class);String allTradeDateListStr ExcelUtil.excelToJsonStr("bc6/NibTradeDate.xlsx");// 设置模拟行为List<NibTradeDateCloudDto…...

《心理学报》文本分析技术最新进展总结盘点

这些研究展示了文本分析在多个心理学领域内的强大应用&#xff0c;包括情境判断测验的自动化评分、自闭症儿童教育干预的学习效果评估、中文文本阅读的词切分和词汇识别机制、网络突发事件的负性偏向分析&#xff0c;以及小学生羞怯特质的预测与语言风格模型构建。通过采用机器…...

json格式文件备份redis数据库 工具

背景&#xff1a; 项目组要求使用 json备份redis缓存数据库内容。 附件里工具是一个包含redis-dump工具的镜像文件&#xff0c;方便用户在局域网中使用容器备份redis缓存数据库。 使用步骤&#xff1a; 解压tar文件&#xff0c;导入镜像 docker load < redis_dump_of_my…...

JAVA系列:NIO

NIO学习 一、前言 先来看一下NIO的工作流程图&#xff1a; NIO三大核心组件&#xff0c;channel&#xff08;通道&#xff09;、Buffer&#xff08;缓冲区&#xff09;、selector&#xff08;选择器&#xff09;。NIO利用的是多路复用模型&#xff0c;一个线程处理多个IO的读…...

偏微分方程算法之抛物型方程差分格式编程示例二

目录 一、研究问题 二、C++代码 三、结果分析 一、研究问题 采用向后欧拉格式计算抛物型方程初边值问题:...

linux 查看 线程名, 线程数

ps -T -p 3652 ps H -T <PID> ps -eLf | grep process_name top -H -p <pid> 查看进程创建的所有线程_ps 显示一个进程的所有线程名字-CSDN博客...

python class __getattr__ 与 __getattribute__ 的区别

在Python中&#xff0c;__getattr__是一个特殊的方法&#xff0c;用于处理访问不存在的属性时的行为。它通常在类中被重写&#xff0c;以便在属性访问失败时提供自定义的处理逻辑。 __getattr__ 的使用 1. 基本用法 __getattr__方法在访问类实例的某个不存在的属性时自动调用…...

[ C++ ] 类和对象( 下 )

初始化列表 初始化列表&#xff1a;以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个"成员变量"后面跟 一个放在括号中的初始值或表达式。 class Date { public: Date(int year, int month, int day): _year(year), _month(month), _d…...

这么多不同接口的固态硬盘,你选对了嘛!

固态硬盘大家都不陌生,玩游戏、办公存储都会用到。如果自己想要给电脑或笔记本升级下存储,想要存储更多的文件,该怎么选购不同类型的SSD固态盘呐,下面就来认识下日常使用中常见的固态硬盘。 固态硬盘(Solid State Drive, SSD)作为数据存储技术的革新力量,其接口类型的选…...

使用IDEA远程debug调试

文章目录 应用背景开启方式IDEA设置启动脚本改造 参考资料 应用背景 springboot项目&#xff0c;部署到服务器上&#xff0c;需要开启远程debug跟踪代码。 使用idea开启远程debug。 开启方式 IDEA设置 选择 Edit Configuration 如图&#xff0c;点击加号&#xff0c;选择Re…...

开源自定义表单系统源码 一键生成表单工具 可自由DIY表单模型+二开

分享一款开源自定义表单系统源码&#xff0c;能够实现99%各行业的报名、预约、加盟申请、调查等应用&#xff0c;而且同时多开创建多个表单&#xff0c;支持自定义各种字段模型&#xff0c;市面上需要的表单模型都含了&#xff0c;随便自定义啦&#xff0c;含完整的代码包和详细…...

Go语言中的包管理

Go语言中的包管理 1. 包管理的基本概念 包管理是Go语言开发中的重要部分&#xff0c;它负责管理项目的依赖关系。Go语言的包管理经历了几个阶段&#xff1a; GOPATH模式vendor模式Go Modules模式&#xff08;当前推荐&#xff09; 2. Go Modules简介 Go Modules是Go 1.11引入的…...

解决Ubuntu中libc6-dev:i386依赖问题的完整指南

1. 理解libc6-dev:i386依赖问题的本质 当你正在愉快地使用Ubuntu系统&#xff0c;突然在执行sudo apt-get upgrade时遇到一堆红色错误提示&#xff0c;特别是看到"libc6-dev:i386 : 依赖: libc6:i386 ( 2.31-0ubuntu9.14) 但无法安装它"这样的报错&#xff0c;是不是…...

如何用kepano-obsidian构建你的终极知识管理系统:从零到精通的完整指南

如何用kepano-obsidian构建你的终极知识管理系统&#xff1a;从零到精通的完整指南 【免费下载链接】kepano-obsidian My personal Obsidian vault template. A bottom-up approach to note-taking and organizing things I am interested in. 项目地址: https://gitcode.com…...

45V耐压CSM7345SG ESOP8,可调12V输出+使能端+散热片,低压差线性稳压器

CSM7345 ESOP8可调12V输出带使能端 全方案深度分析我会从芯片核心特性、12V输出原理、使能端设计、电路参数计算、保护机制、PCB设计要点等维度&#xff0c;做完整的工程级拆解&#xff0c;帮你彻底吃透这个方案。一、芯片核心特性&#xff08;适配12V输出的关键参数&#xff0…...

曼哈顿距离在计算机图形学中的高效应用

1. 曼哈顿距离&#xff1a;计算机图形学的"捷径算法" 第一次听说曼哈顿距离时&#xff0c;我正被游戏开发中的路径查找问题困扰。当时需要计算数百个游戏单位到目标点的距离&#xff0c;使用传统的欧氏距离公式导致帧率直接掉到个位数。直到一位前辈提醒&#xff1a;…...

FreeRTOS实战指南:从定时器、中断到系统调优的进阶之路

1. FreeRTOS定时器实战&#xff1a;从基础到高级应用 在嵌入式系统中&#xff0c;定时器是实现精确时序控制的核心组件。FreeRTOS提供的软件定时器功能&#xff0c;比硬件定时器更加灵活易用。我曾在智能家居项目中用FreeRTOS定时器实现过温湿度传感器的周期性采集&#xff0c…...

Legacy iOS Kit终极指南:让你的旧iPhone/iPad重获新生!

Legacy iOS Kit终极指南&#xff1a;让你的旧iPhone/iPad重获新生&#xff01; 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-i…...

乙巳马年春联生成终端效果展示:扫码下载功能在微信生态中的无缝流转

乙巳马年春联生成终端效果展示&#xff1a;扫码下载功能在微信生态中的无缝流转 1. 引言&#xff1a;当传统年俗遇见现代科技 春节贴春联&#xff0c;是刻在我们文化基因里的仪式感。但你想过吗&#xff0c;这个传承千年的习俗&#xff0c;也能和今天最前沿的AI技术碰撞出火花…...

Ostrakon-VL-8B部署指南:快速搭建支持图片问答的智能系统

Ostrakon-VL-8B部署指南&#xff1a;快速搭建支持图片问答的智能系统 1. 系统概述 Ostrakon-VL-8B是一款专为零售和餐饮场景优化的多模态视觉理解系统。它能像人类一样"看懂"图片内容&#xff0c;并回答与图片相关的各种问题。 这个系统基于Qwen3-VL-8B模型微调而…...

如何快速恢复华硕笔记本色彩配置文件:G-Helper智能修复方案

如何快速恢复华硕笔记本色彩配置文件&#xff1a;G-Helper智能修复方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...