一种性能采集方法、装置和设备与流程

文档序号:23891916发布日期:2021-02-09 10:17阅读:75来源:国知局
一种性能采集方法、装置和设备与流程

[0001]
本发明涉及一种性能采集方法、装置和设备。


背景技术:

[0002]
在it监控系统的应用场景中,不同行业的it用户有着不同的对数据粒度的要求,比如在证券、移动、金融等行业中都要求监控采集的粒度在10分钟以内。近年来,随着大数据库、云计算平台的普及,用户开始对更小粒度的监控采集提出了很高且较为迫切的要求,但是由于it监控系统往往都是上线多年的老系统,存在系统中的资源不能重新发现接入,只能在原有采集(probe)程序进行优化。
[0003]
在原有的采集程序probe中,由发现设备的probe自己管理,其它probe不能管理,原有的probe有三种工作任务:
[0004]
1.自动发现,节点重发现,此种任务采集压力不大,采集间隔一般也比较大;
[0005]
2.状态轮询接口ping,采集相对固定,可以批量设置,配置灵活;
[0006]
3.采集调度,不可预测采集内容,采集压力可能较大,不方便配置;
[0007]
可见上述probe采集的第三种采集任务具有采集调度的采集压力过大问题。


技术实现要素:

[0008]
本发明提供了一种性能采集方法、装置和设备,以优化、扩展原有上线系统的采集能力。
[0009]
第一方面,本发明提供了一种性能采集方法,包括:为目标采集程序部署接力采集程序;在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大;在所述目标采集程序的采集压力过大时,利用所述接力采集程序分担所述目标采集程序的采集调度任务。
[0010]
在一些实施例中,接力采集程序具有探测所述目标采集程序进程cpu和内存,并把cpu状态和内存状态周期性写入数据库表中的能力。
[0011]
在一些实施例中,为目标采集程序部署接力采集程序,包括:对所述目标采集程序进行复制,得到所述接力采集程序;对所述目标采集程序的配置文件进行复制,并将复制后的配置文件中的指示目标采集程序名称的字段更改为所述接力采集程序的名称,和将指示目标采集程序回调端口的字段更改为预设端口,得到所述接力采集程序的配置文件;构建数据库表,所述数据库表用于存储所述目标采集程序进程cpu占用率和内存占用率。
[0012]
在一些实施例中,在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大,包括:在所述接力采集程序启动时,加载并判断所述接力采集程序启动的配置文件中的标识字段值是否为预设值,在所述标识字段值为预设值时,所述接力采集程序启动新线程周期性获取所述目标采集程序的cpu占有率和内存占有率,并将所述cpu占有率和内存占有率写入所述数据库表;利用所述新线程判断所述数据库表中标识所述cpu占有率的第一字段数值和标识所述内存占有率的第二字段数值,若所述
第一字段数值大于其对应的阈值或所述第二字段数值大于其对应的阈值,则确定所述目标采集程序的采集压力过大;若所述第一字段数值不大于其对应的阈值且所述第二字段数值亦不大于其对应的阈值,则确定所述目标采集程序的采集压力正常。
[0013]
在一些实施例中,性能采集方法还包括:在确定所述目标采集程序的采集压力过大时,关闭所述新线程;在确定所述目标采集程序的采集压力正常时,所述新线程继续周期性获取所述目标采集程序的cpu占有率和内存占有率。
[0014]
在一些实施例中,利用所述接力采集程序分担所述目标采集程序的采集调度任务,包括:在配置端重新建立性能采集任务和轮询任务,使所述接力采集程序分担所述目标采集程序的采集调度任务;停止所述目标采集程序中已经由所述接力采集程序分担的采集调度任务。
[0015]
在一些实施例中,所述目标采集程序为上线系统中不可预测采集内容、采集压力大的采集程序。
[0016]
第二方面,本发明提供了一种性能采集装置,包括:程序部署单元,用于为目标采集程序部署接力采集程序;压力判断单元,用于在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大;压力分担单元,用于在所述目标采集程序的采集压力过大时,利用所述接力采集程序分担所述目标采集程序的采集调度任务。
[0017]
第三方面,本发明提供了一种性能采集设备,包括:包括处理器和存储器;存储器,存储计算机可执行指令;处理器,所述计算机可执行指令在被执行时使处理器执行性能采集方法。
[0018]
第四方面,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有一个或多个计算机程序,一个或多个计算机程序被执行时实现性能采集方法。
[0019]
本发明为目标采集程序部署接力采集程序,在目标采集程序采集压力过大时,利用接力采集程序分担目标采集程序的采集任务,以优化、扩展原有上线系统的采集能力,在分担采集任务的过程中,接力采集程序不需要重新发现接入设备,不需要进行复杂的配置,能够提升运维效率及it监控软件的稳定性。
附图说明
[0020]
图1为本发明实施例示出的性能采集方法的流程图;
[0021]
图2为本发明实施例示出的扩展性能采集的详细流程图;
[0022]
图3为本发明实施例示出的性能采集装置的结构框图;
[0023]
图4为本发明实施例示出的性能采集设备的结构示意图。
具体实施方式
[0024]
本发明实施例提供一种性能采集方法,为目标probe部署接力probe,在目标probe采集压力过大时,利用接力probe分担目标probe的采集任务,以优化、扩展原有上线系统的采集能力,在分担采集任务的过程中,接力probe不需要重新发现接入设备,不需要进行复杂的配置,能够提升运维效率及it监控软件的稳定性。本发明实施例还提供了相应的装置、设备和计算机可读存储介质,以下分别进行详细说明。
[0025]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0026]
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0027]
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0028]
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
[0029]
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读存储介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。
[0030]
本发明提供一种性能采集方法。
[0031]
图1为本发明实施例示出的性能采集方法的流程图,如图1所示,本实施例的方法包括:
[0032]
s110,为目标采集程序部署接力采集程序。
[0033]
本实施例部署的接力采集程序用于分担所述目标采集程序的采集调度任务。
[0034]
s120,在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大。
[0035]
s130,在所述目标采集程序的采集压力过大时,利用所述接力采集程序分担所述目标采集程序的采集调度任务。
[0036]
本实施例为目标采集程序部署接力采集程序,在目标采集程序采集压力过大时,利用接力采集程序分担目标采集程序的采集任务,以优化、扩展原有上线系统的采集能力,在分担采集任务的过程中,接力采集程序不需要重新发现接入设备,不需要进行复杂的配置,能够提升运维效率及it监控软件的稳定性。
[0037]
下面结合图1对上述步骤s110-s130进行详细说明。
[0038]
首先,执行步骤s110,即为目标采集程序部署接力采集程序;其中,目标采集程序为上线系统中不可预测采集内容、采集压力大的采集程序,对应为用于采集第三种工作任
务的采集程序。
[0039]
本实施例中,接力采集程序具有探测所述目标采集程序进程cpu和内存,并把cpu状态和内存状态周期性写入数据库表中的能力。
[0040]
通过下述方法部署接力采集程序:
[0041]
1、对所述目标采集程序进行复制,得到所述接力采集程序。
[0042]
示例性的,把目标采集程序复制出一份,可以和目标采集程序在一台主机也可以单独设置一台主机部署接力采集程序。
[0043]
2、对所述目标采集程序的配置文件进行复制,并将复制后的配置文件中的指示目标采集程序名称的字段更改为所述接力采集程序的名称,和将指示目标采集程序回调端口的字段更改为预设端口,得到所述接力采集程序的配置文件。
[0044]
示例性的,更改接力采集程序的配置文件conf/probeconf.xml中的如下两个字段:用于指示目标采集程序名称的字段probeconf name和用于指示目标采集程序回调端口的字段callbackport,即,
[0045]
<probeconf name="接力probe的名称"callbackport="接力probe回调端口">;
[0046]
例如,将字段probeconf name的值更改为jl_probe,将字段callbackport的值更改为51095。
[0047]
3、构建数据库表,所述数据库表用于存储所述目标采集程序进程cpu占用率和内存占用率。
[0048]
示例性的,所构建的数据库表包括:cpu状态表(probe_cpu_status)和内存状态表(probe_mem_status)。
[0049]
其中,cpu状态表的格式为:
[0050][0051]
内存状态表的格式为:
[0052][0053]
由此,基于上述步骤1、2和3完成了对接力采集程序的部署。
[0054]
在为目标采集程序部署接力采集程序之后,继续执行步骤s120,即在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大。
[0055]
在一个实施例中,通过下述方法判断目标采集程序的采集压力:
[0056]
首先、在所述接力采集程序启动时,加载并判断所述接力采集程序启动的配置文件中的标识字段值是否为预设值,在所述标识字段值为预设值时,所述接力采集程序启动新线程周期性获取所述目标采集程序的cpu占有率和内存占有率,并将所述cpu占有率和内存占有率写入所述数据库表。
[0057]
示例性的,在接力采集程序启动的时候,加载配置文件probeconf.xml并判断如下参数:
[0058]
参数1:标识字段isrelayprobe,
[0059]
参数2:名称字段probeconf name
[0060]
参数3:回调端口字段callbackport
[0061]
如果标识字段isrelayprobe=true,则启动新线程周期性获取目标采集程序的cpu占有率和内存占有率,并写入数据库表。如果标识字段isrelayprobe=false,则不启动这个新线程,此时,接力采集程序只作为一个普通的采集程序使用。
[0062]
然后,利用所述新线程判断所述数据库表中标识所述cpu占有率的第一字段数值和标识所述内存占有率的第二字段数值,若所述第一字段数值大于其对应的阈值或所述第二字段数值大于其对应的阈值,则确定所述目标采集程序的采集压力过大;若所述第一字段数值不大于其对应的阈值且所述第二字段数值亦不大于其对应的阈值,则确定所述目标采集程序的采集压力正常。
[0063]
其中,在确定所述目标采集程序的采集压力过大时,关闭所述新线程;在确定所述目标采集程序的采集压力正常时,所述新线程继续周期性获取所述目标采集程序的cpu占有率和内存占有率。
[0064]
示例性的,可以通过linux的ps-ux命令,根据采集程序名称的关键字过滤出接力采集程序的cpu利用率和内存利用率的大小。例如通过下述脚本读取进程cpu占有率:
[0065]
ps aux|awk'{for(i=2;i<=nf;i++)printf $i"";printf"\n"}'|grep-v grep|grep probe进程名|awk'begin{total=0}{total+=$2}end{print total}'
[0066]
通过下述脚本读取进程内存占有率:
[0067]
ps aux|awk'{for(i=2;i<=nf;i++)printf $i"";printf"\n"}'|grep-v grep|grep probe进程名|awk'begin{total=0}{total+=$3}end{print total}'
[0068]
启动的新线程可以基于上述脚本读取cpu状态表中的cpu占有率字段probe_cpu_value值和内存状态表中的内存占有率字段probe_mem_value值并进行判断,若这两个值的任何一个超过了各自对应的阈值,则利用接力采集程序采集目标采集程序的采集对象,之后则会关闭此周期性检查线程,减少自身压力,这样接力采集程序就可以正常采集目标采集程序接入的资源了。若没有超出设置的阈值则不做任何采集相关的工作,接力采集程序等于只是一个周期性检测目标采集程序进程cpu利用率和内存利用率并入库的检查工具。
[0069]
在所述目标采集程序的采集压力过大时,继续执行步骤s130,即利用所述接力采集程序分担所述目标采集程序的采集调度任务。
[0070]
在一个实施例中,接力采集程序通过下述方法分担所述目标采集程序的采集调度任务:首先在配置端重新建立性能采集任务和轮询任务,使所述接力采集程序分担所述目标采集程序的采集调度任务;然后停止所述目标采集程序中已经由所述接力采集程序分担的采集调度任务,这样接力采集程序就分担了目标采集程序的采集和轮询任务,避免重复采集相同的任务。
[0071]
本实施例部署的接力采集程序具备以下两种能力:
[0072]
1、接力采集程序内置探测目标采集程序的进程cpu和内存能力的脚本,并把内存状态和cpu状态周期性写入数据库表中。
[0073]
2、接力采集程序在初次启动时候判断是否为接力采集程序,若是,则周期性从数据库表中读取目标采集程序的cpu状态和内存状态的数据,并分析数据库表中的目标采集程序的cpu和内存是否超出了需要接力的阈值范围,若超过,则接力采集程序具备分担原目标采集程序的采集任务的功能,且不用重新发现接入已被监控的资源,只需要在配置端重新对任务进行分配,就完成了采集接力的任务。
[0074]
如图2所示,利用接力采集程序进行接力采集的具体过程如下:
[0075]
s201,启动接力采集程序。
[0076]
s202,加载接力采集程序的配置文件。
[0077]
s203,读取接力采集程序的配置文件中的标识字段值,并对标识字段值是否为true进行判断,当标识字段值为false时,执行步骤s204;当标识字段值为true时,执行步骤s205。
[0078]
s204,此时接力采集程序作为普通的采集程序,采集自己发现的采集对象。
[0079]
s205,接力采集程序启动用于检测的新线程,周期性获取目标采集程序的cpu占有率和内存占有率,并写入数据库表中。
[0080]
s206,接力采集程序判断从数据库表中获取到的目标采集程序的cpu占有率是否超过第一阈值,内存占有率是否超过第二阈值,若cpu占有率超过第一阈值,和/或内存占有率超过第二阈值,则执行步骤s207,否则,若cpu占有率未超过第一阈值且内存占有率未超过第二阈值,执行步骤s205,继续按照所述周期获取目标采集程序的cpu占有率和内存占有率,并写入数据库表中。
[0081]
s207,执行界面操作,在配置端对需要分担采集的资源创建新的采集任务,用接力采集程序对新的采集任务进行采集。
[0082]
s208,从目标采集程序的采集任务中去掉目标采集程序,以避免重复采集。
[0083]
s209,接力采集完成。
[0084]
由此,本实施例实现对上线系统采集能力的扩展和优化。
[0085]
本发明还提供一种性能采集装置。
[0086]
图3为本发明实施例示出的性能采集装置的结构框图,如图3所示,本实施的性能采集装置,包括:
[0087]
程序部署单元,用于为目标采集程序部署接力采集程序;
[0088]
压力判断单元,用于在所述接力采集程序启动时,利用所述接力采集程序判断所述目标采集程序的采集压力是否过大;
[0089]
压力分担单元,用于在所述目标采集程序的采集压力过大时,利用所述接力采集程序分担所述目标采集程序的采集调度任务。
[0090]
在一些实施例中,程序部署单元对所述目标采集程序进行复制,得到所述接力采集程序;对所述目标采集程序的配置文件进行复制,并将复制后的配置文件中的指示目标采集程序名称的字段更改为所述接力采集程序的名称,和将指示目标采集程序回调端口的字段更改为预设端口,得到所述接力采集程序的配置文件;以及构建数据库表,所述数据库表用于存储所述目标采集程序进程cpu占用率和内存占用率。
[0091]
在一些实施例中,压力判断单元在所述接力采集程序启动时,加载并判断所述接力采集程序启动的配置文件中的标识字段值是否为预设值,在所述标识字段值为预设值时,所述接力采集程序启动新线程周期性获取所述目标采集程序的cpu占有率和内存占有率,并将所述cpu占有率和内存占有率写入所述数据库表;利用所述新线程判断所述数据库表中标识所述cpu占有率的第一字段数值和标识所述内存占有率的第二字段数值,若所述第一字段数值大于其对应的阈值或所述第二字段数值大于其对应的阈值,则确定所述目标采集程序的采集压力过大,关闭所述新线程;若所述第一字段数值不大于其对应的阈值且所述第二字段数值亦不大于其对应的阈值,则确定所述目标采集程序的采集压力正常,所述新线程继续周期性获取所述目标采集程序的cpu占有率和内存占有率。
[0092]
相应的,压力分担单元在配置端重新建立性能采集任务和轮询任务,使所述接力采集程序分担所述目标采集程序的采集调度任务;停止所述目标采集程序中已经由所述接力采集程序分担的采集调度任务。
[0093]
对于性能采集装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的性能采集装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0094]
本发明还提供了一种性能采集设备。
[0095]
图4为本发明实施例示出的性能采集设备的结构示意图,如图4所示,在硬件层面,该性能采集设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器等。当然,该计算机装置还可
能包括其他业务所需要的硬件。
[0096]
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0097]
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机可执行指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0098]
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成性能采集装置。处理器,执行存储器所存放的程序实现如上文描述的性能采集方法。
[0099]
上述如本说明书图4所示实施例揭示的性能采集装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上文描述的性能采集方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述性能采集方法的步骤。
[0100]
本发明还提供了一种计算机可读存储介质。
[0101]
该计算机可读存储介质存储一个或多个计算机程序,该一个或多个计算机程序包括指令,该指令当被处理器执行时,能够实现上文描述的性能采集方法。
[0102]
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
[0103]
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1