全链路监控方法、装置、终端设备及存储介质与流程

文档序号:17488601发布日期:2019-04-23 20:12阅读:165来源:国知局
全链路监控方法、装置、终端设备及存储介质与流程

本发明涉及网络监控技术领域,尤其涉及一种全链路监控方法、装置、终端设备及存储介质。



背景技术:

目前,在网络上提供商业服务的一个平台是node.js,node.js是用于可伸缩服务器侧和联网应用的软件平台。node.js应用是以javascript编写的,并且可以在运行期间在windows、macintosh操作系统和linux上运行而无需改变它们。node.js应用利用非阻塞式输入输出接口和异步事件来将吞吐量和效率最大化并且在单线程进程上运行。

现阶段市场上存在的node.jsapm工具主要为oneapm和newrelic等,大部分为代码侵入式,从而无法保证结点(node)应用的原生态。



技术实现要素:

本发明的主要目的在于提出一种全链路监控方法、装置、终端设备及存储介质,旨在解决现有技术中在软件监控过程中无法保证node应用的原生态的技术问题。

为实现上述目的,本发明提供一种全链路监控方法,所述全链路监控方法包括以下步骤:

获取用户基于当前待监控业务系统的触发信息,根据所述触发信息启动存储区域中的预设代理进程;

获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据;

判断所述全链路监控数据中是否包含目标监控数据;

在所述全链路监控数据中包含目标监控数据时,将所述目标监控数据进行展示。

优选地,所述根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据,包括:

判断所述当前待监控业务系统中是否含有低版本函数,在含有所述低版本函数时,控制所述预设代理进程采集所述低版本函数中的全链路监控数据。

优选地,所述判断所述当前待监控业务系统中是否含有低版本函数,在含有所述低版本函数时,控制所述预设代理进程采集所述低版本函数中的全链路监控数据,包括:

获取历史业务系统版本的函数更新列表,根据所述函数更新列表判断所述当前待监控业务系统中是否含有低版本函数,在含有所述低版本函数时,控制所述预设代理进程采集所述低版本函数中的全链路监控数据。

优选地,所述获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据之前,所述方法还包括:

判断所述当前待监控业务系统的框架类型,查找是否含有与所述框架类型对应的支持包,在不含有与所述框架类型对应的支持包时,对所述支持包进行导入,生成更新后的预设代理进程;

相应地,所述获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据,包括:

获取当前待监控业务系统的运行状态,根据所述运行状态控制所述更新后的预设代理进程采集当前待监控业务系统中的全链路监控数据。

优选地,所述判断所述当前待监控业务系统的框架类型,查找是否含有与所述框架类型对应的支持包,在不含有与所述框架类型对应的支持包时,对所述支持包进行导入,生成更新后的预设代理进程,包括:

提取所述当前待监控业务系统的主函数,获取预先存有的历史主函数与历史框架类型的对应关系,根据所述对应关系确定所述主函数对应的框架类型,查找是否含有与所述框架类型对应的支持包,在不含有与所述框架类型对应的支持包时,对所述支持包进行导入,生成更新后的预设代理进程。

优选地,所述获取用户基于当前待监控业务系统的触发信息,根据所述触发信息启动存储区域中的预设代理进程之前,所述方法还包括:

接收用户输入的添加指令,根据所述添加指令将所述预设代理进程写入所述存储区域。

优选地,所述判断所述全链路监控数据中是否包含目标监控数据,包括:

提取所述全链路监控数据中的特征信息,将所述特征信息与所述目标监控数据进行比较,判断所述全链路监控数据中是否包含所述目标监控数据。

此外,为实现上述目的,本发明还提出一种全链路监控装置,所述全链路监控装置包括:

获取模块,用于获取用户基于当前待监控业务系统的触发信息,根据所述触发信息启动存储区域中的预设代理进程;

控制模块,用于获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据;

判断模块,用于判断所述全链路监控数据中是否包含目标监控数据;

展示模块,用于在所述全链路监控数据中包含目标监控数据时,将所述目标监控数据进行展示。

此外,为实现上述目的,本发明还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的全链路监控程序,所述全链路监控程序配置为实现如上所述的全链路监控方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有全链路监控程序,所述全链路监控程序被处理器执行时实现如上文所述的全链路监控方法的步骤。

本发明提出的全链路监控方法,通过在预设区域设有代理进程,通过对当前待监控业务系统的运行状态,通过对代理进程进行控制,有效地采集待监控业务系统的监控数据,从而通过在不修改原生node的情况下实现对当前待监控业务系统的监控。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;

图2为本发明全链路监控方法第一实施例的流程示意图;

图3为本发明全链路监控方法第二实施例的流程示意图;

图4为本发明全链路监控方法第三实施例的流程示意图;

图5为本发明全链路监控装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。

如图1所示,该终端设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及全链路监控程序。

在图1所示的终端设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户终端,与终端进行数据通信;本发明终端设备通过处理器1001调用存储器1005中存储的全链路监控程序,并执行本发明实施例提供的全链路监控的实施方法。

基于上述硬件结构,提出本发明全链路监控方法实施例。

参照图2,图2为本发明全链路监控方法第一实施例的流程示意图。

在第一实施例中,所述全链路监控方法包括以下步骤:

步骤s10,获取用户基于当前待监控业务系统的触发信息,根据所述触发信息启动存储区域中的预设代理进程。

需要说明的是,所述当前待监控业务系统可为保险业务系统,金融业务系统,还可为其他业务系统,本实施对此不作限制,在本实施例中,以保险业务系统为例进行说明。

可以理解的是,所述触发信息为用户基于保险系统界面进行相应的流程操作,例如保险项目选择,保险金额的计算,个人资料的填写等,在接收到用户的操作数据时,将用户的操作数据作为触发信息,还可为通过定时器进行时间设定,在预设时间后进行触发,从而实现自动触发,还可为其他的触发方式,本实施对此不作限制。

在本实施例中,由于在一般情况下,通常为对node.js应用性能管理和监控(applicationperformancemanagement&monitoring,apm)工具主要为oneapm和newrelic,主要为代码侵入式的监控方式,调用预设存储区域中的预设代理进程实现对当前待监控业务系统的监控,从而通过代理进程进行端口监控即可实现,而不需要对原生node进行修改,保证原生node的原生态。

在具体实现中,获取node.js平台进行业务处理的网络信息和端口信息,其中,网络信息包括业务处理的响应时间,例如获取客户的个人资料查询请求或者客户账号的登陆请求,并展示反馈的结果信息,从而统计出系统的响应时间。在获取事件触发信息时,根据网络信息部署相应的代理监控进程,通过调用代理监控进程实现对数据的采集,从而无需应用程序管理工具对原生态代码的修改,降低监控的运行成本,例如,在端口部署socket接口小程序,通过socket获取端口事件的交互信息以及回调信息,还可通过封装超文本传输协议(hypertexttransferprotocol,http)进程实现对数据的采集。

步骤s20,获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据。

需要说明的是,所述运行状态可为当前待监控业务系统的版本信息或者使用的框架信息,还可为其他状态信息,本实施例对此不作限制在,在本实施例中,以当前待监控业务系统的版本信息或者使用的框架信息为例进行说明。

在一般情况下,在数据获取过程中,由于现有的监控工具存在版本兼容问题,从而无法实现对低版本的数据的采集,在本实施例中,对监控工具进行二次开发,获取预设低版本函数,将低版本函数添加入系统中,实现对低版本数据的采集,例如,对于苹果的ios8中苹果用uialertcontroller来统一管理alert和actionsheet,之前低版本中低版本函数为uialertview和uiactionsheet,为了实现对ios7兼容,在这种情况下,可通过代码加入uialertview和uiactionsheet函数的判断,在系统中加入低版本函数,从而实现对低版本的兼容。

在具体实现中,需要获取历史版本的更新信息,从更新信息中获取更新的函数信息,从而可通过精确的函数信息实现对版本的兼容,在本实施例中,只需通过加入低版本函数信息从而实现版本兼容,而无需判断具体的版本号信息即可实现对低版本的兼容,提高系统处理效率。

步骤s30,判断所述全链路监控数据中是否包含目标监控数据。

在具体实现中,可将采集信息中的无效数据进行屏蔽,例如采集信息中的冗余数据以及噪声数据的属性参数修改为不可见,从而实现对无效数据的屏蔽,使采集的数据均为有效数据,提高监控系统的处理效率,在本实施例中,还可通过业务需求,对刷选数据类型进行个性化定制,例如保险业务,只需要采集与保险业务相关的数据,从而提高node.js监控系统的灵活性。

步骤s40,在所述全链路监控数据中包含目标监控数据时,将所述目标监控数据进行展示。

本实施例通过上述方案,通过在预设区域设有代理进程,通过对当前待监控业务系统的运行状态,通过对代理进程进行控制,有效地采集待监控业务系统的监控数据,从而通过在不修改原生node的情况下实现对当前待监控业务系统的监控。

进一步地,如图3所示,基于第一实施例提出本发明全链路监控方法第二实施例,在本实施例中,所述步骤s20,包括:

步骤s201,判断所述当前待监控业务系统中是否含有低版本函数,在含有所述低版本函数时,控制所述预设代理进程采集所述低版本函数中的全链路监控数据。

需要说明的是,在一般低版本向高版本演进时,高版本中仍有关于低版本的函数信息,只是通过改进后的函数进行数据采集,例如对于苹果的ios8中苹果用uialertcontroller来统一管理alert和actionsheet,之前低版本中通过低版本函数uialertview和uiactionsheet进行管理,在本实施例中,监控的代理进程仍包有低版本的函数信息,在面对低版本时,可通过低版本函数实现对低版本的数据采集。

在具体实现中,为了实现低版本的数据采集,例如苹果ios7系统的监控数据的采集,在这种情况下,可通过在代理程序中加入uialertview和uiactionsheet低版本函数,获取低版本函数中使用的数据信息,从而实现对低版本的监控数据的采集。

进一步地,所述步骤s201,包括:

步骤s202,获取历史业务系统版本的函数更新列表,根据所述函数更新列表判断所述当前待监控业务系统中是否含有低版本函数,在含有所述低版本函数时,控制所述预设代理进程采集所述低版本函数中的全链路监控数据。

需要说明的是,在新版本发布时,一般在发布说明书中注明与旧版本之间的修改内容,从而可获取到新版本与旧版本的函数,可将发布的函数修改内容函数更新列表,通过函数更新列表判断获取低版本函数,将低版本函数的添加进代理进程中,从而实现对低版本业务系统的数据采集。

本实施例提供的方案,通过在监控的代理进程中添加低版本函数,从而通过低版本函数采集监控数据,实现对低版本的数据采集。

进一步地,如图4所示,基于第一实施例或第二实施例提出本发明全链路监控方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤s20之前,所述方法还包括:

步骤s203,判断所述当前待监控业务系统的框架类型,查找是否含有与所述框架类型对应的支持包,在不含有与所述框架类型对应的支持包时,对所述支持包进行导入,生成更新后的预设代理进程。

需要说明的是,对于不同的框架的流程类型也不同,一般情况下,监控工具无法实现对不同框架的兼容,在这种情况下,通过获取不同框架的支持包,根据支持包对代理进程进行导入,从而实现代理进程对各个框架的兼容,更有效地实现对待监控业务系统的数据采集。

相应地,所述步骤s20,包括:

步骤s204,获取当前待监控业务系统的运行状态,根据所述运行状态控制所述更新后的预设代理进程采集当前待监控业务系统中的全链路监控数据。

进一步地,所述步骤s203,包括:

步骤s205,提取所述当前待监控业务系统的主函数,获取预先存有的历史主函数与历史框架类型的对应关系,根据所述对应关系确定所述主函数对应的框架类型,查找是否含有与所述框架类型对应的支持包,在不含有与所述框架类型对应的支持包时,对所述支持包进行导入,生成更新后的预设代理进程。

需要说明的是,每个node.js框架具有特定的主函数,例如现在有node.js开发框架sail.js,node.js服务器端框架hapi.js,node.js高性能封装express.js等,其中,node.js服务器端框架hapi中的数据信息通常带有hapi函数,express.js框架通常带有express函数,可通过获取当前待监控业务系统的主函数,从而实现对框架类型的识别,针对不同框架类型控制采集对应的主函数进行监控,从而实现对不同node.js框架的兼容。

在具体实现中,可预先在预设存储区域中存有历史主函数与历史框架类型的对应关系,根据所述对应关系确定当前主函数对应的框架类型,例如在获取当前待监控业务系统的主函数为hapi函数时,则可查找到对应的框架类型为hapi.js框架,从而根据确定的框架类型导入对应的支持包,从而实现对不同框架类型的当前业务系统进监控。

进一步地,所述步骤s10之前,所述方法还包括:

步骤s101,接收用户输入的添加指令,根据所述添加指令将所述预设代理进程写入所述存储区域。

为了避免对原生node的修改,通常代理进程实现对数据采集,可预先将代理进行写入预设存储区域进行存储,在获取到触发信息时,根据所述触发信息调用预设存储区域中的代理进行对当前待监控业务系统进行监控,而无需对当前待监控业务系统的原生node进行修改,从而保证原生node的原生态。

进一步地,所述步骤s30,包括:

步骤s301,提取所述全链路监控数据中的特征信息,将所述特征信息与所述目标监控数据进行比较,判断所述全链路监控数据中是否包含所述目标监控数据。

在本实施例中,提取采集全链路监控数据中的特征信息,将特征信息与预设特征信息进行比较,根据比较结果,对采集的数据信息进行有效的筛选,其中,预设特征信息可为表示用户实际具体行为的数据,例如用户通过业务端口发起业务请求,还可为用户针对业务进行相应地操作,从而可识别用户实际的有效数据,使采集的监控数据更符合用户的需求,提高用户体验。

本实施例提供的方案,通过对不同框架的识别实现代理进程对各个框架的兼容,并且对监控数据进行有效处理,使采集的监控数据更符合用户的需求,提高用户体验。

本发明进一步提供一种全链路监控装置。

参照图5,图5为本发明全链路监控装置第一实施例的功能模块示意图。

本发明全链路监控装置第一实施例中,该全链路监控装置包括:

获取模块10,用于获取用户基于当前待监控业务系统的触发信息,根据所述触发信息启动存储区域中的预设代理进程。

需要说明的是,所述当前待监控业务系统可为保险业务系统,金融业务系统,还可为其他业务系统,本实施对此不作限制,在本实施例中,以保险业务系统为例进行说明。

可以理解的是,所述触发信息为用户基于保险系统界面进行相应的流程操作,例如保险项目选择,保险金额的计算,个人资料的填写等,在接收到用户的操作数据时,将用户的操作数据作为触发信息,还可为通过定时器进行时间设定,在预设时间后进行触发,从而实现自动触发,还可为其他的触发方式,本实施对此不作限制。

在本实施例中,由于在一般情况下,通常为对node.js应用性能管理和监控(applicationperformancemanagement&monitoring,apm)工具主要为oneapm和newrelic,主要为代码侵入式的监控方式,调用预设存储区域中的预设代理进程实现对当前待监控业务系统的监控,从而通过代理进程进行端口监控即可实现,而不需要对原生node进行修改,保证原生node的原生态。

在具体实现中,获取node.js平台进行业务处理的网络信息和端口信息,其中,网络信息包括业务处理的响应时间,例如获取客户的个人资料查询请求或者客户账号的登陆请求,并展示反馈的结果信息,从而统计出系统的响应时间。在获取事件触发信息时,根据网络信息部署相应的代理监控进程,通过调用代理监控进程实现对数据的采集,从而无需应用程序管理工具对原生态代码的修改,降低监控的运行成本,例如,在端口部署socket接口小程序,通过socket获取端口事件的交互信息以及回调信息,还可通过封装超文本传输协议(hypertexttransferprotocol,http)进程实现对数据的采集。

控制模块20,用于获取当前待监控业务系统的运行状态,根据所述运行状态控制所述预设代理进程采集当前待监控业务系统中的全链路监控数据。

需要说明的是,所述运行状态可为当前待监控业务系统的版本信息或者使用的框架信息,还可为其他状态信息,本实施例对此不作限制在,在本实施例中,以当前待监控业务系统的版本信息或者使用的框架信息为例进行说明。

在一般情况下,在数据获取过程中,由于现有的监控工具存在版本兼容问题,从而无法实现对低版本的数据的采集,在本实施例中,对监控工具进行二次开发,获取预设低版本函数,将低版本函数添加入系统中,实现对低版本数据的采集,例如,对于苹果的ios8中苹果用uialertcontroller来统一管理alert和actionsheet,之前低版本中低版本函数为uialertview和uiactionsheet,为了实现对ios7兼容,在这种情况下,可通过代码加入uialertview和uiactionsheet函数的判断,在系统中加入低版本函数,从而实现对低版本的兼容。

在具体实现中,需要获取历史版本的更新信息,从更新信息中获取更新的函数信息,从而可通过精确的函数信息实现对版本的兼容,在本实施例中,只需通过加入低版本函数信息从而实现版本兼容,而无需判断具体的版本号信息即可实现对低版本的兼容,提高系统处理效率。

判断模块30,用于判断所述全链路监控数据中是否包含目标监控数据。

在具体实现中,可将采集信息中的无效数据进行屏蔽,例如采集信息中的冗余数据以及噪声数据的属性参数修改为不可见,从而实现对无效数据的屏蔽,使采集的数据均为有效数据,提高监控系统的处理效率,在本实施例中,还可通过业务需求,对刷选数据类型进行个性化定制,例如保险业务,只需要采集与保险业务相关的数据,从而提高node.js监控系统的灵活性。

展示模块40,用于在所述全链路监控数据中包含目标监控数据时,将所述目标监控数据进行展示。

本实施例通过上述方案,通过在预设区域设有代理进程,通过对当前待监控业务系统的运行状态,通过对代理进程进行控制,有效地采集待监控业务系统的监控数据,从而通过在不修改原生node的情况下实现对当前待监控业务系统的监控。

此外,为实现上述目的,本发明还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的全链路监控程序,所述全链路监控程序配置为实现如上文所述的全链路监控方法的步骤。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有全链路监控程序,所述全链路监控程序被处理器执行如上文所述的全链路监控方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台智能终端(可以是手机,计算机,终端设备,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1