CN113342373B - 一种用于Prometheus通用采集器的实现方法和系统 - Google Patents
一种用于Prometheus通用采集器的实现方法和系统 Download PDFInfo
- Publication number
- CN113342373B CN113342373B CN202110618179.7A CN202110618179A CN113342373B CN 113342373 B CN113342373 B CN 113342373B CN 202110618179 A CN202110618179 A CN 202110618179A CN 113342373 B CN113342373 B CN 113342373B
- Authority
- CN
- China
- Prior art keywords
- collector
- module
- target end
- execution
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及Prometheus采集技术,公开了一种用于Prometheus通用采集器的实现方法和系统;其方法包括,目标端抽象,执行过程抽象,对于抽象后的目标端采集器,返回目标端的执行结果;执行结果抽象,通过转换模块对抽象执行过程返回的执行结果进行转换,完成结果输出。通过对数据库SQL类,服务器命令等指标类采集需通过简单配置即可实现;通过更新配置文件中指标项即可完成对应指标的新增、更新、禁用和删除等操作,并实时更新;对不同类型数据库采集,只需按照对应数据库约定调整SQL;屏蔽采集器调用原理,用户只需关注采集命令;所有采集指标统一管理维护。
Description
技术领域
本发明涉及Prometheus采集器技术,尤其涉及了一种用于Prometheus通用采集器的实现方法和系统。
背景技术
目前的互联网企业往往依靠的是一套或多套自主研发的业务系统来开展各种商业行为,监控这些系统的稳定运行也成为互联网公司的重中之重。
Exporter实现需要通过编程人员依赖编程语言完成对应指标的代码编写,并发布为相应的可执行程序,无编程相关经验人员无法进行指标调整;数据库架构中,有非常多的采集对象,比如各类数据库mysql、oracle、mssql、postgresql等,而对于每个采集对象又有数十、甚至数百指标需要采集,相应指标的采集又需要进行逐一编码实现,不仅费时费力且容易出错,一旦指标采集出错,也无法进行方便的修改,必须由编程人员重新修复对应问题,并进行针对的程序更新发布。为每个指标均实现一套程序进行采集,维护也非常复杂;Prometheus server通过定期从Exporter暴露的HTTP路径(metrics)中获取指标,一旦该路径下包含的任一指标出现问题(如数据库sql执行时间长),将影响该路径下所有指标的采集,而将出问题的指标剔出的难易程度取决于Exporter的具体实现,大多也需要重启Exporter服务;同时若Exporter中未包含需要采集的指标,也无法进行快速补充,只能依赖编程人员进行针对性的编码实现,发布更新后才能支持;对于编程人员需要掌握Prometheus所定义的规则以及运行原理,才可以进行指标代码编写,对编程人员要求高,耗时耗力。
prometheus(普罗米修斯):是一套使用go语言开发的开源监控系统,基本原理是通过http(超文本传输)协议周期性抓取被监控组件的状态,任意组件只要提供对应的http接口就可以接入监控;
exporter:prometheus采集器,由prometheus调用并输出标准格式数据;
Go语言:Google开源的高性能编程语言。
例如专利标题:一种基于Prometheus性能监控系统的服务器保护方法,申请号:CN201810886980.8,申请日:2018-08-06的发明专利申请中记载一种基于Prometheus性能监控系统的服务器保护方法,包括以下步骤:步骤1:在目标服务器上安装Prometheus性能监控系统的软件包,通过Prometheus性能监控系统收集能够判断服务器性能的监控数据;步骤2:将收集到的目标服务器的监控数据进行存储;步骤3:将目标服务器的监控数据展示在对应的数据图表系统;步骤4:在数据图表系统中设置服务器限流的触发条件,并判断是否触发限流策略;步骤5:触发哨兵队列限流策略,对服务器进行限流。。
现有技术中Prometheus性能监控系统的exporter实现需专业的人员进行操作,整个的系统维护复杂,对于技术人员的要求高,且耗时耗力。
发明内容
本发明针对现有技术中Prometheus性能监控系统的exporter实现需要安装Prometheus性能监控系统的软件包,其需要专业的人员进行操作,整个监控系统维护复杂,对操作人员的技术要求高,且耗时耗力,提供了一种用于Prometheus通用采集器的实现方法和系统。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种用于Prometheus通用采集器的实现方法,其包括如下步骤,目标端抽象,抽象不同目标端的采集器;
执行过程抽象,对于抽象后的目标端采集器,抽象对应的执行过程,并将抽象执行过程的具体指标项发送至目标端,同时返回目标端的执行结果;
执行结果抽象,通过转换模块对抽象执行过程返回的执行结果进行转换,并发送至Prometheus通道,完成结果输出。
通过该方法对于常用的指标场景,如执行数据库SQL,服务器运行简单命令,无需编程人员进行编码即可完成Prometheus采集器的实现;整个Prometheus采集器的实现操作简单,省时省力。
作为优选,还包括注册路径变更,通过解析模块检查Prometheus请求的路径是否注册,当路径未注册,则进行路径注册,Prometheus请求为轮询请求的方式。在被Prometheus Server轮询调用时,配置模块实时读取配置文件的最后修改时间,并与当前内存做比对,不一致时重新读取配置内容更新内存,实现配置项内容的实时更新,同时解析模块对每次调用均检查当前请求的路径是否已注册,若未注册,则进行路径注册,实现指标动态注册与变更。
作为优选,执行过程抽象包括配置、解析和执行;
配置,对目标端采集器的认证信息和采集项配置信息进行配置;
解析,通过文件解析模块读取配置信息,并生成内部结构体对象对应的采集指标;
执行,依据解析生成的采集指标,将采集指标对应的信息结构传送至对应类型执行器。
作为优选,目标端抽象包括,
采集器配置文件的生成,用户端通过配置定义采集项与目标认证信息,生成采集器配置文件;
采集器配置文件的校验,依据采集器的测试功能对采集器配置文件进行校验;
采集器配置文件的解析,解析端依据采集器的配置文件解析出目标端需要的采集器配置文件和目标认证信息。
作为优选,执行通过Describe和Collector方法实现。对用户定义的指标进行配置分组,利用解析模块中的的连接信息对指标并发执行,提升同一组内多项指标的采集效率,同时将执行结果进行格式化封装,形成:(指标名称:指标值)的字典结构。
作为优选,采集项配置信息包括采集项类型、采集项名称,采集项描述和执行文本。
作为优选,解析包括步骤,
依据采集器的类型通过解析模块生成对应的解析器;
通过生成的解析器标记过滤出有效的采集器类型,并采集器的类型进行分组,对于相同类型的采集器再依据分组名进行二次分组,形成采集指标的信息结构;根据认证信息,初始化目标端连接。
一种用于Prometheus通用采集器的实现系统,其包括目标端抽象模块、执行过程抽象模块和执行结果抽象模块,通过目标端抽象模块抽象不同目标端采集器;执行过程抽象模块对于目标端的采集器通过抽象对应的执行过程,将具体指标项发送给目标端并返回目标端执行结果;执行结果抽象模块通过对执行过程返回的结果进行转换,并发送至Prometheus通道,完成结果输出。
作为优选,还包括注册路径变更模块,注册路径变更模块通过解析模块检查Prometheus请求的路径是否注册,当路径未注册,则进行路径注册。
作为优选,执行过程抽象模块包括编辑模块、解析模块和执行模块;配置模块对目标端的认证信息和采集项配置信息进行配置;
解析模块通过文件解析器读取配置模块用户保存的配置信息,生成内部结构体对象;执行模块依据解析模块生成的不同目标类型的多组采集指标,将具体的目标类型信息结构传递给对应类型执行器内。
本发明由于采用了以上技术方案,具有显著的技术效果:通过该方法对于常用的指标场景,例如执行数据库SQL,服务器运行简单命令,无需编程人员进行编码即可完成Prometheus采集器的实现;整个操作简单,省时省力。
本发明解决Prometheus采集器对于数据库SQL类,服务器命令等指标类采集需要针对性编码的问题,通过简单配置即可实现;通过更新配置文件中指标项即可完成对应指标的新增、更新、禁用和删除等操作,并且实时更新,无需重启服务;对不同类型数据库采集,只需要按照对应数据库约定调整SQL即可;可以灵活调整指标组内任意指标项暴露路径,降低指标间的相互影响;屏蔽Prometheus采集器调用原理,用户只需要关注具体采集命令;所有采集指标统一管理,降低维护难度。
附图说明
图1是本发明的组成示意图。
图2是本发明的实施例1组成图。
图3是本发明的实施例4组成图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
实施例1
一种用于Prometheus通用采集器的实现方法,包括如下步骤,目标端抽象,抽象不同目标端的采集器;
执行过程抽象,对于抽象后的目标端采集器,抽象对应的执行过程,并将抽象执行过程的具体指标项发送至目标端,同时返回目标端的执行结果;
执行结果抽象,通过转换模块对抽象执行过程返回的执行结果进行转换,并发送至Prometheus通道,完成结果输出。
通过该方法对于常用的指标场景,例如执行数据库SQL,服务器运行简单命令,无需编程人员进行编码即可完成Prometheus采集器的实现;整个操作简单,省时省力。
执行过程抽象包括配置、解析和执行;
配置,对目标端采集器的认证信息和采集项配置信息进行配置;
解析,通过文件解析模块读取配置信息,并生成内部结构体对象对应的采集指标;
执行,依据解析生成的采集指标,将采集指标对应的信息结构传送至对应类型执行器。
目标端抽象包括,
采集器配置文件的生成,用户端通过配置定义采集项与目标认证信息,生成采集器配置文件;
采集器配置文件的校验,依据采集器的测试功能对采集器配置文件进行校验;
采集器配置文件的解析,解析端依据采集器的配置文件解析出目标端需要的采集器配置文件和目标认证信息。
执行通过Describe和Collector方法实现。对用户定义的指标进行配置分组,利用解析模块中的的连接信息对指标并发执行,提升同一组内多项指标的采集效率,同时将执行结果进行格式化封装,形成:(指标名称:指标值)的字典结构。对于一个SQL执行分为几个阶段:打开目标数据库连接,发送执行SQL,获取游标(Rows Cursor),遍历游标获取具体结果,关闭数据库连接,SQL执行器即是对上述步骤的封装,完成用户配置项SQL到数据库执行并返回结果的过程。
采集项配置信息包括采集项类型、采集项名称,采集项描述和执行文本。
解析包括步骤,
依据采集器的类型通过解析模块生成对应的解析器;通过生成的解析器标记过滤出有效的采集器类型,并采集器的类型进行分组,对于相同类型的采集器再依据分组名进行二次分组,形成采集指标的信息结构;根据认证信息,初始化目标端连接。
实施例2
在实施例1基础上,本实施例还包括注册路径变更,通过解析模块检查Prometheus请求的路径是否注册,当路径未注册,则进行路径注册,Prometheus请求为轮询请求的方式。在被Prometheus Server轮询调用时,配置模块实时读取配置文件的最后修改时间,并与当前内存做比对,不一致时重新读取配置内容更新内存,实现配置项内容的实时更新,同时解析模块对每次调用均检查当前请求的路径是否已注册,若未注册,则进行路径注册,实现指标动态注册与变更。
实施例3
基于实施例1一种用于Prometheus通用采集器的实现方法,其组成的系统包括目标端抽象模块、执行过程抽象模块和执行结果抽象模块,通过目标端抽象模块抽象不同目标端采集器;执行过程抽象模块对于目标端的采集器通过抽象对应的执行过程,将具体指标项发送给目标端并返回目标端执行结果;执行结果抽象模块通过对执行过程返回的结果进行转换,并发送至Prometheus通道,完成结果输出。
执行过程抽象模块包括编辑模块、解析模块和执行模块;配置模块对目标端的认证信息和采集项配置信息进行配置;
解析模块通过文件解析器读取配置模块用户保存的配置信息,生成内部结构体对象;执行模块依据解析模块生成的不同目标类型的多组采集指标,将具体的目标类型信息结构传递给对应类型执行器内。
实施例4
在上述实施例基础上,本实施例还包括注册路径变更模块,注册路径变更模块通过解析模块检查Prometheus请求的路径是否注册,当路径未注册,则进行路径注册。
实施例5
在上述实施例基础上,对于SQL的执行过程,打开目标数据库连接,发送执行SQL,获取游标Rows Cursor,遍历游标获取具体结果,关闭数据库连接。在这个过程中,发送执行SQL,这个过程中的具体发送的“SQL”是由用户定义的,其他过程是用户不关心的,但是却是查询数据库所必须的步骤,所以进行相应的封装与抽象,将用户最终关心的SQL通过配置模块提供出来,让用户可以调整SQL,然后系统保存到配置文件中。
Claims (8)
1.一种用于Prometheus通用采集器的实现方法,其方法包括,
抽象目标端,抽象不同目标端的采集器;
抽象执行过程,对于抽象后的目标端采集器,抽象对应的执行过程,并将抽象执行过程的具体指标项发送至目标端,同时返回目标端的执行结果;
抽象执行过程包括配置模块、文件解析模块和执行模块,过程包括,
配置,抽象后的目标端采集器通过配置模块获得目标端采集器的认证信息和采集项配置信息;
解析,通过文件解析模块读取配置信息,并生成对应的采集指标;
执行,依据解析生成的采集指标,执行模块将采集指标对应的信息结构传送至对应类型执行器;
抽象执行结果,转换模块对抽象执行过程返回的执行结果进行转换,并发送至Prometheus通道输出抽象后的执行结果。
2.根据权利要求1所述的一种用于Prometheus通用采集器的实现方法,其特征在于,还包括注册路径变更,解析模块通过轮询请求的方式检查Prometheus请求的路径是否注册,请求的路径未注册,则进行路径注册并动态变更注册路径。
3.根据权利要求1所述的一种用于Prometheus通用采集器的实现方法,其特征在于,目标端抽象包括,
采集器配置文件生成,用户端通过配置定义采集器的采集项与目标认证信息,生成采集器配置文件;
采集器配置文件校验,依据采集器的测试功能对采集器配置文件进行校验;
采集器配置文件解析,解析端依据采集器的配置文件解析出目标端需要的采集器配置文件和目标认证信息。
4.根据权利要求1所述的一种用于Prometheus通用采集器的实现方法,其特征在于,执行通过Describe和Collector方法实现。
5.根据权利要求1所述的一种用于Prometheus通用采集器的实现方法,其特征在于,采集项配置信息包括采集项类型、采集项名称、采集项描述和执行文本。
6.根据权利要求1所述的一种用于Prometheus通用采集器的实现方法,其特征在于,解析包括步骤,
解析器的生成,依据采集器的类型通过解析模块生成对应的解析器;
采集指标的信息奢侈,通过生成的解析器标记过滤出有效的采集器类型,并根据采集器的类型进行分组;
根据认证信息,初始化目标端连接。
7.一种用于Prometheus通用采集器的实现系统,包括目标端抽象模块、执行过程抽象模块和执行结果抽象模块,其特征在于,通过目标端抽象模块抽象不同目标端采集器;
执行过程抽象模块对于目标端的采集器通过抽象对应的执行过程,将具体指标项发送给目标端并返回目标端执行结果;
执行过程抽象模块包括编辑模块、解析模块和执行模块;
配置模块对目标端的认证信息和采集项配置信息进行配置;
解析模块通过文件解析器读取配置模块用户保存的配置信息,生成内部结构体对象;
执行模块依据解析模块生成的不同目标类型的多组采集指标,将具体的目标类型信息结构传递给对应类型执行器内;
执行结果抽象模块通过对执行过程返回的结果进行转换,并发送至Prometheus通道,完成结果输出。
8.根据权利要求7所述的一种用于Prometheus通用采集器的实现系统,其特征在于,还包括注册路径变更模块,注册路径变更模块通过解析模块检查Prometheus请求的路径是否注册,当路径未注册,则进行路径注册。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110618179.7A CN113342373B (zh) | 2021-05-31 | 2021-05-31 | 一种用于Prometheus通用采集器的实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110618179.7A CN113342373B (zh) | 2021-05-31 | 2021-05-31 | 一种用于Prometheus通用采集器的实现方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342373A CN113342373A (zh) | 2021-09-03 |
CN113342373B true CN113342373B (zh) | 2022-04-22 |
Family
ID=77473118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110618179.7A Active CN113342373B (zh) | 2021-05-31 | 2021-05-31 | 一种用于Prometheus通用采集器的实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342373B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019071926A1 (zh) * | 2017-10-10 | 2019-04-18 | 武汉斗鱼网络科技有限公司 | 自动监控数据库服务的方法、存储介质、电子设备及系统 |
CN112084098A (zh) * | 2020-10-21 | 2020-12-15 | 中国银行股份有限公司 | 资源监控系统及工作方法 |
CN112764990A (zh) * | 2021-01-12 | 2021-05-07 | 北京自如信息科技有限公司 | 一种目标进程的监控方法、装置及计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347377B (zh) * | 2019-07-08 | 2023-04-18 | 紫光云技术有限公司 | 一种Prometheus exporter数据库监控系统 |
-
2021
- 2021-05-31 CN CN202110618179.7A patent/CN113342373B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019071926A1 (zh) * | 2017-10-10 | 2019-04-18 | 武汉斗鱼网络科技有限公司 | 自动监控数据库服务的方法、存储介质、电子设备及系统 |
CN112084098A (zh) * | 2020-10-21 | 2020-12-15 | 中国银行股份有限公司 | 资源监控系统及工作方法 |
CN112764990A (zh) * | 2021-01-12 | 2021-05-07 | 北京自如信息科技有限公司 | 一种目标进程的监控方法、装置及计算机设备 |
Non-Patent Citations (1)
Title |
---|
《容器监控实践—Prometheus部署方案》;weixin_33854644;《https://blog.csdn.net/weixin_33854644/article/details/88567304?ops_request_misc=&request_id=&biz_id=102&utm_term=prometheus%E9%83%A8%E7%BD%B2&utm_medium=distribute》;20190303;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113342373A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492012B (zh) | 一种数据实时统计和检索的方法、装置及存储介质 | |
CN112511416A (zh) | 基于规则式的数据通信协议转换系统、解码及编码方法 | |
CN106951694B (zh) | 一种电力系统二次设备在线监测系统自适应建模方法 | |
CN104268428B (zh) | 一种用于指标计算的可视化配置方法 | |
Sneed | Migrating from COBOL to Java | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN101354758B (zh) | 整合实时数据和关系数据的系统和方法 | |
CN112685433B (zh) | 元数据更新方法、装置、电子设备及计算机可读存储介质 | |
CN102880468B (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
CN103441900A (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
CN111752959B (zh) | 一种实时数据库跨库sql交互方法和系统 | |
CN103823797A (zh) | 基于ftp协议的行业数据库数据实时同步系统 | |
US8913264B2 (en) | Method and system for storing and retrieving data | |
CN108509185A (zh) | 用于任意软件逻辑建模的系统和方法 | |
CN106293891B (zh) | 多维投资指标监督方法 | |
CN111291054B (zh) | 一种数据处理方法、装置、计算机设备和存储介质 | |
CN116450616A (zh) | 一种基于解析树的通用异构关系型数据库sql迁移方法 | |
CN108763323B (zh) | 基于资源集和大数据技术的气象格点文件应用方法 | |
CN114691704A (zh) | 一种基于MySQL binlog的元数据同步方法 | |
CN111427940A (zh) | 一种自适应数据库转换方法及装置 | |
CN113342373B (zh) | 一种用于Prometheus通用采集器的实现方法和系统 | |
CN101645073A (zh) | 一种将已有数据库文件导入嵌入式数据库的方法 | |
CN113591422A (zh) | 芯片验证中测试案例流程信息的生成系统及应用 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN109062552A (zh) | 一种断路器试验多维度信息查询app的设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |