CN111831508A - 一种动态监控数据采集方法及装置 - Google Patents

一种动态监控数据采集方法及装置 Download PDF

Info

Publication number
CN111831508A
CN111831508A CN202010537229.4A CN202010537229A CN111831508A CN 111831508 A CN111831508 A CN 111831508A CN 202010537229 A CN202010537229 A CN 202010537229A CN 111831508 A CN111831508 A CN 111831508A
Authority
CN
China
Prior art keywords
data
acquisition
data acquisition
coroutine
configuration file
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.)
Granted
Application number
CN202010537229.4A
Other languages
English (en)
Other versions
CN111831508B (zh
Inventor
陈明鑫
何翔
刘志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN202010537229.4A priority Critical patent/CN111831508B/zh
Publication of CN111831508A publication Critical patent/CN111831508A/zh
Application granted granted Critical
Publication of CN111831508B publication Critical patent/CN111831508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种动态监控数据采集方法及装置,其中,启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;将所述协程采集到的数据写入内存。根据本方案,提供一种新的数据采集代理Agent(Exporter),可以实现监控数据的统一采集管理。

Description

一种动态监控数据采集方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种基于Prometheus的动态监控数据采集方法及装置。
背景技术
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库,Promethues支持多维度数据监控,具备灵活的查询语言,不依赖分布式存储,通过基于HTTP的Pull方式采集时序数据,数据采集时会定时的从Exporter中获取多维度的监控数据。而Exporter只需要暴露HTTP Server的端口给Prometheus的Server端。具备多种多样的图表和界面展示。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
(1)目前几乎每一种独立的服务或者工具,都是独立的一套Exporter,并且都需要启动单独的Http Server。可维护性较差,当多个需要监控的业务同时运行在一个主机上时,需要启动多个Http Server。
(2)现有的Exporter通用性极差,通常只能满足一部分需求,比如开源的NodeExporter就无法监控诸如磁盘异常、定时任务执行失败等自定的监控指标。
(3)Exporter本身开发需要对Prometheus原理有足够的认识才能进行开发。没有一套可以开箱即用的方案。
发明内容
本发明实施例提供一种动态监控数据采集方法及装置,提供一种新的数据采集代理Agent(Exporter),可以实现监控数据的统一采集管理。
为达到上述目的,一方面,本发明实施例提供了一种动态监控数据采集方法,所述方法包括:
启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;
根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;
将所述协程采集到的数据写入内存。
另一方面,本发明实施例提供了一种动态监控数据采集装置,所述装置包括:
启动单元,用于启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;
数据采集单元,用于根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;
存储单元,用于将所述协程采集到的数据写入内存。
上述技术方案具有如下有益效果:
本发明的技术方案由于使用了动态监控数据采集方法,本申请自主开发Agent通过配置文件的设置,实现对多种监控指标的整合,达到了统一管理的目的。支持自定义监控数据,更加方便灵活。非常适合生产环境中多变的监控需求。本申请通过Golang开发,尤其是在批量处理速度上有比较明显的优势。本申请部署流程十分简单,可运行的二进制文件+极少的参数表可以启动。比较适合规模的部署和生产环境上的实践。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种动态监控数据采集方法的流程图;
图2是本发明实施例一种动态监控数据采集装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请基于Prometheus实现了一种可以自定义监控数据指标的方案,发明出一种新的Agent(Exporter)可以实现监控数据的统一采集管理。
普通的Exporter只能采集某种类型的监控指标,如Node-Exporter、Redis-Exporter等等,这种Exporter虽然数据健全使用也很方便,但是采集的数据过于单一,面对生产环境上复杂的监控数据往往无法达到较好的效果,并且官方提供的Exporter重构的成本比较高。
对需要监控的数据指标目前分成两种,一种为已经存在的通用的监控,如Node-Exporter等,一种为根据生产环境上的不同需求需要添加的自定义的监控,如定时任务是否执行的监控等。本发明实现对两种情况的兼容。
这种新的Agent(Exporter)实现了众多工厂类,基本采集方式保持不变,通过暴露HTTP Server端口的方式让Prometheus可以Pull数据。该Agent通过读取指定的配置文件并加载配置文件内容的方式实现对监控数据的采集。配置文件主要分成三个模块Info、Metric、Json。
1、Info模块:实现对基础信息的添加,诸如主机IP、主机角色、Agent版本等信息。
2、Metric模块:实现对Prometheus直接可用的采集工具,如Node-Exporter等。这些工具直接执行并被Agent整合成一个数据接口,通过HTTP Server暴露出去。
3、Json模块:这个模块主要定义可执行文件(一般为脚本),对开发语言没有要求,主要可以生成指定格式的Json数据即可。Agent会根据得到的Json数据转化成PrometheusServer可以使用的Metric数据。
如图1所示,是本发明实施例一种动态监控数据采集方法的流程图,所述方法包括:
S101:启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;优选地,在启动数据采集代理之前,还包括:将数据采集指令加入数据采集代理的配置文件内容中。
具体地,Agent启动时程序会调用Configcontroller类实现对配置文件的加载,并完成配置文件的读取。
S102:根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;其中,信息协程是一种执行程序。
优选地,所述数据采集指令包括:
通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令;
通过脚本方式定义的数据采集指令;以及,
基础信息采集指令。
优选地,所述根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,包括:
对于通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令,通过协程读取URL以调用Prometheus中对应的通用采集工具,进行数据采集;即针对Metric模块下的配置采用直接代理的方式,调用Metriccontroller类,将数据写入内存中。即针对Json模块下的配置对其数据格式进行转换,调用Jsoncontroller类,将转换后的数据写入内存中。
对于通过脚本方式定义的数据采集指令,通过协程执行脚本的信息,进行数据采集,并将采集的数据转换为Json格式的数据后,进一步转换成Prometheus Server可以使用的Metric数据;
对于基础信息采集指令,通过协程执行所述基础信息采集指令,获取基础信息,并将基础信息添加到采集的数据中。
S103:将所述协程采集到的数据写入内存。
优选地,所述将采集到的数据写入内存,包括:
以覆盖更新模式将采集到的数据写入内存,并通过HTTP Server端口暴露内存中的数据。当接收到HTTP请求时,Agent直接将内存中的数据取出并返回结果。
对应于上述方法,如图2所示,是本发明实施例一种动态监控数据采集装置的结构示意图,所述装置包括:
启动单元21,用于启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;
数据采集单元22,用于根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;
存储单元23,用于将所述协程采集到的数据写入内存。
优选地,还包括配置单元,用于在启动数据采集代理之前,将数据采集指令加入数据采集代理的配置文件内容中。
优选地,所述数据采集指令包括:
通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令;
通过脚本方式定义的数据采集指令;以及,
基础信息采集指令。
优选地,所述数据采集单元具体用于:
对于通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令,通过协程读取URL以调用Prometheus中对应的通用采集工具,进行数据采集;
对于通过脚本方式定义的数据采集指令,通过协程执行脚本的信息,进行数据采集,并将采集的数据生成Json格式的数据后,转换成Prometheus Server可以使用的Metric数据;
对于基础信息采集指令,通过协程执行所述基础信息采集指令,获取基础信息,并将基础信息添加到采集的数据中。
优选地,所述存储单元具体用于:
以覆盖更新模式将采集到的数据写入内存,并通过HTTP Server端口暴露内存中的数据。
本发明通过配置文件设置实现数据采集,主要有以下优势:
Metriccontroller实现了代理采集功能,对于存在的工具不需要二次开发。其中包含抽象方法,可是实现对配置文件每个采集类别创建一个协程并执行配置文件中的命令。数据格式无需转化直接写入内存中,在内存中的数据保留方式采用覆盖更新模式,同一个Metric信息在内存中这会保存一份最新的数据。格式化的函数HandlerData会根据需要加入适当的Info模块中的信息实现定制化的监控数据构造,如增加项目信息、机房信息等。
Jsoncontroller实现了数据格式化,并将Json数据转化成Prometheus Server可以读取的Metric数据。其中定义了一个Map结构,用于动态的生成可用的数据接口。默认包含定时器,数据循环采集并写入内存中并对数据进行更新。
Prometheus广泛的应用容器监控,本申请创新的优化数据采集的方式,并解决了之前数据无法统一采集的痛点。支持了自定义的监控数据极大的方便了Prometheus使用者的成本。Agent开箱即用真正的实现了方便管理和简易部署。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种动态监控数据采集方法,其特征在于,包括:
启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;
根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;
将所述协程采集到的数据写入内存。
2.如权利要求1所述的动态监控数据采集方法,其特征在于,在启动数据采集代理之前,还包括:将数据采集指令加入数据采集代理的配置文件内容中。
3.如权利要求2所述的动态监控数据采集方法,其特征在于,所述数据采集指令包括:
通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令;
通过脚本方式定义的数据采集指令;以及,
基础信息采集指令。
4.如权利要求3所述的动态监控数据采集方法,其特征在于,所述根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,包括:
对于通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令,通过协程读取URL以调用Prometheus中对应的通用采集工具,进行数据采集;
对于通过脚本方式定义的数据采集指令,通过协程执行脚本的信息进行数据采集,并将采集的数据转换为Json格式的数据后,进一步转换成Prometheus Server可以使用的Metric数据;
对于基础信息采集指令,通过协程执行所述基础信息采集指令,获取基础信息,并将基础信息添加到采集的数据中。
5.如权利要求4所述的动态监控数据采集方法,其特征在于,所述将采集到的数据写入内存,包括:
以覆盖更新模式将采集到的数据写入内存,并通过HTTP Server端口暴露内存中的数据。
6.一种动态监控数据采集装置,其特征在于,包括:
启动单元,用于启动数据采集代理,数据采集代理在启动时加载配置文件并读取配置文件内容;
数据采集单元,用于根据配置文件内容创建协程,通过创建的协程执行配置文件内容中的数据采集指令,获得采集的数据;
存储单元,用于将所述协程采集到的数据写入内存。
7.如权利要求6所述的动态监控数据采集装置,其特征在于,还包括配置单元,用于在启动数据采集代理之前,将数据采集指令加入数据采集代理的配置文件内容中。
8.如权利要求7所述的动态监控数据采集装置,其特征在于,所述数据采集指令包括:
通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令;
通过脚本方式定义的数据采集指令;以及,
基础信息采集指令。
9.如权利要求8所述的动态监控数据采集装置,其特征在于,所述数据采集单元具体用于:
对于通过统一资源定位符URL调用Prometheus的通用采集工具以进行数据采集的指令,通过协程读取URL以调用Prometheus中对应的通用采集工具,进行数据采集;
对于通过脚本方式定义的数据采集指令,通过协程执行脚本的信息,进行数据采集,并将采集的数据转换为Json格式的数据后,进一步转换成Prometheus Server可以使用的Metric数据;
对于基础信息采集指令,通过协程执行所述基础信息采集指令,获取基础信息,并将基础信息添加到采集的数据中。
10.如权利要求9所述的动态监控数据采集装置,其特征在于,所述存储单元具体用于:
以覆盖更新模式将采集到的数据写入内存,并通过HTTP Server端口暴露内存中的数据。
CN202010537229.4A 2020-06-12 2020-06-12 一种动态监控数据采集方法及装置 Active CN111831508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010537229.4A CN111831508B (zh) 2020-06-12 2020-06-12 一种动态监控数据采集方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010537229.4A CN111831508B (zh) 2020-06-12 2020-06-12 一种动态监控数据采集方法及装置

Publications (2)

Publication Number Publication Date
CN111831508A true CN111831508A (zh) 2020-10-27
CN111831508B CN111831508B (zh) 2024-06-18

Family

ID=72898931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010537229.4A Active CN111831508B (zh) 2020-06-12 2020-06-12 一种动态监控数据采集方法及装置

Country Status (1)

Country Link
CN (1) CN111831508B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965874A (zh) * 2021-03-04 2021-06-15 浪潮云信息技术股份公司 一种可配置的监控告警方法及系统
CN113570476A (zh) * 2021-07-26 2021-10-29 广东电网有限责任公司 基于自定义告警规则的电网监控系统容器服务监控方法
CN115080336A (zh) * 2021-03-16 2022-09-20 网联清算有限公司 定时任务的监测方法、装置、服务器及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447138A (zh) * 2015-11-20 2016-03-30 北京京东尚科信息技术有限公司 用于服务器的方法及系统
CN106533838A (zh) * 2016-11-30 2017-03-22 国云科技股份有限公司 一种面向云平台的业务特征时序数据包采集方法
CN108829560A (zh) * 2018-06-01 2018-11-16 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
CN110347569A (zh) * 2019-06-28 2019-10-18 浙江吉利控股集团有限公司 一种服务器性能数据采集方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447138A (zh) * 2015-11-20 2016-03-30 北京京东尚科信息技术有限公司 用于服务器的方法及系统
CN106533838A (zh) * 2016-11-30 2017-03-22 国云科技股份有限公司 一种面向云平台的业务特征时序数据包采集方法
CN108829560A (zh) * 2018-06-01 2018-11-16 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
WO2019227689A1 (zh) * 2018-06-01 2019-12-05 平安科技(深圳)有限公司 数据监控方法、装置、计算机设备及存储介质
CN110347569A (zh) * 2019-06-28 2019-10-18 浙江吉利控股集团有限公司 一种服务器性能数据采集方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965874A (zh) * 2021-03-04 2021-06-15 浪潮云信息技术股份公司 一种可配置的监控告警方法及系统
CN112965874B (zh) * 2021-03-04 2023-02-28 浪潮云信息技术股份公司 一种可配置的监控告警方法及系统
CN115080336A (zh) * 2021-03-16 2022-09-20 网联清算有限公司 定时任务的监测方法、装置、服务器及可读存储介质
CN113570476A (zh) * 2021-07-26 2021-10-29 广东电网有限责任公司 基于自定义告警规则的电网监控系统容器服务监控方法

Also Published As

Publication number Publication date
CN111831508B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN111083225B (zh) 在物联网平台中的数据处理方法、装置及物联网平台
CN111831508A (zh) 一种动态监控数据采集方法及装置
CN108037961B (zh) 一种应用程序配置方法、装置、服务器和存储介质
US8839107B2 (en) Context based script generation
EP3709227A1 (en) System and method for interoperable communication of an automation system component with multiple information sources
CN102880503A (zh) 数据分析系统及数据分析方法
CN102566984B (zh) 一种配置参数的方法及装置
US9529578B2 (en) Automated service version upgrading
US10185472B2 (en) Method for providing a user interface, computer system and computer program product
US20090063395A1 (en) Mapping log sets between different log analysis tools in a problem determination environment
CN111708611B (zh) 轻量级Kubernetes监控系统及方法
CN110955674A (zh) 基于java服务的异步导出方法及组件
CN111147291B (zh) 一种服务维护方法及装置
CN110262809B (zh) 基于持续集成和虚拟化容器的校园应用发布方法及系统
CN111752916B (zh) 数据采集方法及装置、计算机可读存储介质、电子设备
CN112866049A (zh) 服务器主机指标采集方法及系统
CN107347075B (zh) 一种串口协议到snmp协议的转换方法及snmp协议转换器
CN113377620A (zh) 一种基于Kubernetes的自动化系统自检方法及系统
CN112764825B (zh) 服务集成系统及相应设备和存储介质
CN114020565A (zh) 日志智能采集处理方法、装置、电子设备及存储介质
CN114745448A (zh) 一种多通道规约适配处理方法、系统及装置
CN114356348A (zh) 一种运行引擎系统及其应用
CN113791819A (zh) 接口文档生成方法和装置、存储介质、电子设备
CN112639730A (zh) 用于程序文件编写和运行处理的方法及装置、系统
CN116028563A (zh) 一种基于opc ua的数据资产管理方法、装置、设备及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20230417

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant after: Sina Technology (China) Co.,Ltd.

Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant before: Sina.com Technology (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant