1.本发明涉及数据采集领域,特别涉及一种数据采集程序状态监控方法、装置、设备及存储介质。
背景技术:
2.数据采集程序状态监控指的是对工作中的数据采集程序的运行状态的情况进行实时监控,从而使得在有不安全性的运行状态时,监控人员能够采取措施,在故障发生时能够及时发现再处理。
3.一般的数据采集程序状态监控依赖于日志的收集,其消耗的存储资源比较大,并且其发现问题是倒置式,由问题产生的结果反查问题发生的原因,并且大量的日志存储会拖慢原本采集程序的运行速率,导致监控拖慢采集效率的现象。
技术实现要素:
4.基于此,本技术实施例提供了一种数据采集程序状态监控方法、装置、设备及存储介质,可以在保持采集程序运行效率的情况下,从不同维度监控采集程序的运行状态和辅助排查潜在的程序问题。
5.第一方面,提供了一种数据采集程序状态监控方法,该方法包括:
6.通过内嵌程序获取目标数据采集程序运行时所产生的各项指标的数据;所述内嵌程序内嵌于所述目标数据采集程序中,所述指标包括地址类指标和状态类指标;
7.将所述各项指标的数据存储进基于时间序列的数据库中;
8.基于用户端向所述数据库发送的目标指标请求,得到所述数据库返回目标指标的数据;其中,所述目标指标包括一项地址类指标和至少一项状态类指标;
9.根据返回的目标指标的数据对所述目标数据采集程序的运行状态进行分析。
10.可选地,所述根据返回的目标指标的数据对所述目标数据采集程序的运行状态进行分析,包括:
11.根据一项地址类指标的数据和至少一项状态类指标的数据进行分析,根据预设的指标组合关系得到所述目标数据采集程序的运行状态分析结果,并向用户端进行展示。
12.可选地,将所述各项指标的数据存储进基于时间序列的数据库中,包括:
13.将具有相同时间节点的地址类指标与状态类指标的数据进行绑定封装后存储进基于时间序列的数据库中。
14.可选地,在将所述各项指标的数据存储进基于时间序列的数据库中,还包括:
15.将所述各项指标的数据存储进缓存队列,将所述缓存队列中的数据存储进基于时间序列的数据库中。
16.可选地,所述地址类指标的数据至少包括:采集程序名称、采集程序所在系统ip、采集程序采集的url以及请求ip;
17.所述状态类指标的数据至少包括:采集成功的当天数据、采集成功的历史数据、采
集成功的404数据、采集成功的封禁数据、解析失败的数据、响应失败的数据、请求失败的数据。
18.可选地,当所述地址类指标为程序名称,状态类指标为目标数据采集程序采集成功状态时,根据预设的指标组合关系得到所述目标数据采集程序的运行状态分析结果包括:
19.分析可得到所述目标数据采集程序的日平均采集成功总数,并配合各采集请求的大小就能得出所述目标数据采集程序占用的网络带宽大小和存储需要的磁盘大小;
20.其中,通过第一公式确定网络带宽大小和存储需要的磁盘大小,第一公式具体包括:
[0021][0022][0023]
其中,bandwidth表示网络带宽大小,successtoday表示当日请求成功页面,k1表示请求成功页面占存均值,notfoundtoday表示当日请求404页面,,k2表示请求失败页面占存均值,memory表示日采集总量占用磁盘空间大小。
[0024]
第二方面,提供了一种数据采集程序状态监控装置,该装置包括:
[0025]
获取模块,用于通过内嵌程序获取目标数据采集程序运行时所产生的各项指标的数据;所述内嵌程序内嵌于所述目标数据采集程序中,所述指标包括地址类指标和状态类指标;
[0026]
存储模块,用于将所述各项指标的数据存储进基于时间序列的数据库中;
[0027]
返回模块,用于基于用户端向所述数据库发送的目标指标请求,得到所述数据库返回目标指标的数据;其中,所述目标指标包括一项地址类指标和至少一项状态类指标;
[0028]
分析模块,用于根据返回的目标指标的数据对所述目标数据采集程序的运行状态进行分析。
[0029]
可选地,所述分析模块具体包括:
[0030]
根据一项地址类指标的数据和至少一项状态类指标的数据进行分析,根据预设的指标组合关系得到所述目标数据采集程序的运行状态分析结果,并向用户端进行展示。
[0031]
第三方面,提供了一种设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面任一所述的数据采集程序状态监控方法。
[0032]
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一所述的数据采集程序状态监控方法。
[0033]
本技术实施例提供的技术方案中,首先通过内嵌程序获取目标数据采集程序运行时所产生的各项指标的数据;内嵌程序内嵌于目标数据采集程序中,指标包括地址类指标和状态类指标;将各项指标的数据存储进基于时间序列的数据库中;基于用户端向数据库发送的目标指标请求,得到数据库返回目标指标的数据;其中,目标指标包括一项地址类指标和至少一项状态类指标;根据返回的目标指标的数据对目标数据采集程序的运行状态进行分析。可以看出,本技术中通过目标指标可以自由组合想要监控的一切状态,通过不同数据的不同维度的组合,可以达到从不同维度监控采集程序的运行状态和辅助排查潜在的程
序问题,设置某些数值的临界值之后,还能达到问题预警,预测问题发生前预警等功能,降低了程序的维护成本,极大的提高了纠错成本。
附图说明
[0034]
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0035]
图1为本技术实施例提供的一种数据采集程序状态监控方法的步骤流程图;
[0036]
图2为本技术实施例提供的一种数据采集程序状态监控的示意图;
[0037]
图3为本技术实施例提供的单点采集程序每小时采集成功走势图;
[0038]
图4为本技术实施例提供的不同采集程序日平均采集量示意图;
[0039]
图5为本技术实施例提供的单点采集程序不同时间的入库量展示图;
[0040]
图6为本技术实施例提供的单点采集程序每小时程序运行状态展示图;
[0041]
图7为本技术实施例提供的单点采集程序每小时不同状态采集速率及占比示意图;
[0042]
图8为本技术实施例提供的单点采集程序随着时间的增长不同状态的走势图;
[0043]
图9为本技术实施例提供的一种数据采集程序状态监控装置的框图;
[0044]
图10为本技术实施例提供的一种电子设备的示意图。
具体实施方式
[0045]
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
本方法主要以内嵌形式对采集程序产生的各个指标进行收集、过滤、清洗、入库、展示,进而对程序运行状态进行实时监控,对程序的未来可预见性的问题进行预测。为便于对本实施例进行理解,首先对本技术实施例所公开的一种数据采集程序状态监控方法进行详细介绍。
[0047]
请参考图1,其示出了本技术实施例提供的一种数据采集程序状态监控方法的流程图,在本技术中实施的主体可以是服务器,该方法可以包括以下步骤:
[0048]
步骤101,通过内嵌程序获取目标数据采集程序运行时所产生的各项指标的数据。
[0049]
其中,内嵌程序内嵌于目标数据采集程序中,指标包括地址类指标和状态类指标。
[0050]
在本技术实施例中,为了更全面的对一个采集程序的运行状态进行评估,本方法通过收集了大量的数据,再根据现象反推应有的属性变化,定义了一些可用对象并定义了其所包含的所有有效属性,对其进行不同的组合进行收集汇总,最后展示,达到发现、预测采集程序已发生或未来可能发生的问题。
[0051]
具体地,本技术中需要对目标数据采集程序的运行状态采集的数据包括了地址类指标和状态类指标:
[0052]
地址类指标可以指的是目标数据采集程序进行单次数据采集请求时所地址或名称,对于采集程序的地址类指标至少包括有:
[0053]
spider_name:采集程序名
[0054]
program_ip:采集程序所在系统ip
[0055]
url:采集程序采集的url,用于对采集网站的识别
[0056]
request_ip:请求ip
[0057]
状态类指标可以指的是目标数据采集程序进行单次数据采集请求时所反馈的状态,对于采集程序的状态类指标至少包括有:
[0058][0059]
为了使本监控程序能够细化到监控每一个请求的状态,从而反应出整个系统的运行状态,因此在收集采集信息的时候不仅收集响应信息,也收集请求信息中请求失败的信息,这样能够更准确,更客观的反应程序的运行状态,并且能更好的预测程序未来的运行问题。
[0060]
步骤102,将各项指标的数据存储进基于时间序列的数据库中。
[0061]
在本技术实施例中,因为要提高属性(指标)收集的效率,并且存在一定的可扩展性,所以采取地址和属性两两绑定封装对象的方法进行上传,这样做的目的是方便后期进行提取的时候能够高效的查询和对于某一个状态的展示的时候不会因为同一个对象有多个属性的时候,不同属性之间会产生影响的情况。
[0062]
由于整个系统的数据存储结构是一个三维的数据结构,同一个程序的某一个指标由两个维度甚至多个维度组成,且同一个指标又随着时间的增长而增量增长,不同的数据指标之间存在交叉,因此,传统的二维关系型数据库不能最大化的存储相关指标,为了提高存储和读取性能,并满足多维数据的展示,最终选择了一个基于时间序列的数据库进行数据存储。
[0063]
在本技术一个可选的实施例中,在将各项指标的数据存储进基于时间序列的数据库中,还包括:
[0064]
将各项指标的数据存储进缓存队列,将缓存队列中的数据存储进基于时间序列的数据库中。通过将各项指标的数据先存储进缓存队列可以有效的提高存储效率。
[0065]
步骤103,基于用户端向数据库发送的目标指标请求,得到数据库返回目标指标的数据。
[0066]
其中,目标指标包括一项地址类指标和至少一项状态类指标。
[0067]
在本技术实施例中,数据库可以将存储的目标数据采集程序的各个指标进行展示,用户可以选择展示的几种指标作为目标指标,向数据库发送的目标指标请求,得到数据库返回目标指标的数据。
[0068]
步骤104,根据返回的目标指标的数据对目标数据采集程序的运行状态进行分析。
[0069]
在本技术实施例中,具体根据一项地址类指标的数据和至少一项状态类指标的数据进行分析,根据预设的指标组合关系得到目标数据采集程序的运行状态分析结果,并向用户端进行展示。
[0070]
以下给出几种地址类指标和状态类指标的进行组合后得到数据采集程序的运行状态分析结果:
[0071]
用程序名称组合采集成功状态,即可展示某个采集程序的日平均采集成功总数,配合每一个请求的相应大小就能得出这个采集程序占用的网络带宽大小和存储需要的磁盘大小;
[0072]
具体地,通过第一公式确定网络带宽大小和存储需要的磁盘大小,第一公式具体包括:
[0073][0074][0075]
其中,bandwidth表示网络带宽大小,successtoday表示当日请求成功页面,k1表示请求成功页面占存均值,notfoundtoday表示当日请求404页面,k2表示请求失败页面占存均值,故带宽值为当日请求成功页面累加值∑successtoday乘以平均请求成功页面占存系数k1加上当日请求404页面累加值∑notfoundtoday乘以平均响应404页面占存系数k2的和,除以一天时间精确到秒,再换算成带宽。
[0076]
memory表示采集总量占存大小,successtoday表示当日请求成功页面,k1表示请求成功页面占存均值,notfoundtoday表示当日请求404页面,k2表示请求失败页面占存均值,故带宽值为当日请求成功页面累加值∑successtoday乘以平均请求成功页面占存系数k1加上当日请求404页面累加值∑notfoundtoday乘以平均响应404页面占存系数k2的和,再换算成g单位,即每日采集数据总量占用磁盘空间大小。
[0077]
用采集某一个采集程序(地址类指标)的响应成功的状态数量组合响应为404页面的数量(状态类指标)就能求出采集成功率,从而调节采集程序的采集频率,进而达到请求资源优化,物理磁盘合理占用的问题。具体地,通过第二公式确定网络带宽大小和存储需要的磁盘大小,第二公式具体包括:
[0078][0079]
其中,today表示采集成功率,success表示响应成功的状态数量,notfound表示响应为404页面的数量。
[0080]
用某一个domain(地址类指标)的所有采集状态的集合的曲线(状态类指标),能直观的反映出哪些时刻,该domain信息更新的频次比较高,哪些时间段更新的频次比较低,可
用于调节采集程序的采集频次,进而优化资源配比。
[0081]
用某一个ip(地址类指标)的所有请求的平均值曲线和总数(状态类指标),即可直观的展示该ip下的资源消耗情况,从而调节硬件资源配比和性能占用不均问题。
[0082]
用某一个网站(地址类指标)的请求成功且返回有效数据(状态类指标)的曲线图即可预测该网站是否存在域名更换,参数更换等情况,进而预测可预见的程序问题。
[0083]
用某一个程序(地址类指标)的请求失败和响应失败的数据与总请求的数据之商状态类指标),即可直观的反映出采集程序的健硕性,再通过该请求的程序ip即可精准的定位问题所在程序的所在位置,再配合预测可预见的问题,即可快速找到问题所在并更正。
[0084][0085]
其中,robust表示采集程序的健硕性,responseerror表示响应失败的数据,requesterror表示请求失败的数据,resquests表示总请求量,故程序健硕性就等于请求失败与响应失败的总和与总请求量之比。
[0086]
可以看出,如图2,本技术提出的程序监控方式,可以自由组合想要监控的一切状态,通过不同数据的不同维度的组合,可以达到从不同维度监控采集程序的运行状态和辅助排查潜在的程序问题,设置某些数值的临界值之后,还能达到问题预警,预测问题发生前预警等功能,降低了程序的维护成本,极大的提高了纠错成本。
[0087]
如图3,给出了本技术实施例提供的单点采集程序每小时采集成功走势图,其中横坐标表示时间、纵坐标表示采集程序采集成功次数。
[0088]
如图4,给出了本技术实施例提供的不同采集程序日平均采集量示意图,用于发现程序问题。
[0089]
如图5,给出了本技术实施例提供的单点采集程序不同时间的入库量展示图,其中横坐标表示时间、纵坐标表示采集程序入库数量。
[0090]
如图6,给出了本技术实施例提供的单点采集程序每小时程序运行状态展示图;其中,还包括设置预警上下线和日采集总量展示(预警问题程序)。
[0091]
如图7,给出了本技术实施例提供的单点采集程序每小时不同状态采集速率及占比示意图,用于展示采集程序健硕性。
[0092]
如图8,给出了本技术实施例提供的单点采集程序随着时间的增长不同状态的走势图,用于预测程序或网站发生问题。
[0093]
请参考图9,其示出了本技术实施例提供的一种数据采集程序状态监控装置200的框图。如图9所示,该装置200可以包括:获取模块201、存储模块202、返回模块203以及分析模块204。
[0094]
获取模块201,用于通过内嵌程序获取目标数据采集程序运行时所产生的各项指标的数据;内嵌程序内嵌于目标数据采集程序中,指标包括地址类指标和状态类指标;
[0095]
存储模块202,用于将各项指标的数据存储进基于时间序列的数据库中;
[0096]
返回模块203,用于基于用户端向数据库发送的目标指标请求,得到数据库返回目标指标的数据;其中,目标指标包括一项地址类指标和至少一项状态类指标;
[0097]
分析模块204,用于根据返回的目标指标的数据对目标数据采集程序的运行状态进行分析。
[0098]
在本技术一个实施例中,分析模块204具体包括:根据一项地址类指标的数据和至少一项状态类指标的数据进行分析,根据预设的指标组合关系得到目标数据采集程序的运行状态分析结果,并向用户端进行展示。
[0099]
关于数据采集程序状态监控装置的具体限定可以参见上文中对于数据采集程序状态监控方法的限定,在此不再赘述。上述数据采集程序状态监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0100]
在一个实施例中,提供了一种设备,该电子设备可以是计算机,其内部结构图可以如图10所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于数据采集程序状态监控数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据采集程序状态监控方法。
[0101]
本领域技术人员可以理解,如图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0102]
在本技术的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据采集程序状态监控方法的步骤。
[0103]
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
[0104]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以m种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(symchlimk)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0105]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0106]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护
范围。因此,本技术专利的保护范围应以所附权利要求为准。
转载请注明原文地址:https://tc.8miu.com/read-312.html