服务端程序监控方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:28320554 阅读:30 留言:0更新日期:2021-05-04 13:00
本发明专利技术实施例公开了一种服务端程序监控方法、装置、计算机设备及存储介质。所述方法包括:建立并启动至少一个业务子进程;通过每个所述业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个所述业务子进程中;通过每个所述业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序;通过各所述监控探针,在所在业务子进程中,进行业务程序监控数据的采集。本发明专利技术实施例可以实现无侵入式服务端程序监控,提高进程监控的准确率。

【技术实现步骤摘要】
服务端程序监控方法、装置、计算机设备及存储介质
本专利技术实施例涉及服务端程序监控领域,尤其涉及一种服务端程序监控方法、装置、计算机设备及存储介质。
技术介绍
Nodejs服务在运行时,由于受到代码质量和流量等因素的影响,会在运行时出现性能问题。可以对Nodejs服务应用进行监控,及时监控到性能问题,并进行处理。目前监控方式包括:1、对原生nodejs进行改造,将监控的逻辑嵌入nodejs运行环境,在进程启动的时候进行监控。2、nodejs监控直接放在业务代码中,随着业务代码一起启动。但在使用上述方式时,监控代码往往与nodejs环境或者是业务代码产生耦合,监控代码的维护需要对nodejs环境或者是业务代码进行修改,维护成本较高。而且,在与nodejs环境耦合的监控代码通常会对进程管理工具一起监控,混淆有效监控数据,增加监控数据的处理复杂度。
技术实现思路
本专利技术实施例提供一种服务端程序监控方法、装置、计算机设备及存储介质,可以实现无侵入式服务端程序监控,提高进程监控的准确率。第一方面,本专利技术实施例提供了一种服务端程序监控方法,包括:建立并启动至少一个业务子进程;通过每个业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个业务子进程中;通过每个业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序;通过各监控探针,在所在业务子进程中,进行业务程序监控数据的采集。第二方面,本专利技术实施例还提供了一种服务端程序监控装置,包括:子进程建立模块,用于建立并启动至少一个业务子进程;监控探针运行模块,用于通过每个所述业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个所述业务子进程中;业务程序同步运行模块,用于通过每个所述业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序;业务程序监控模块,用于通过各所述监控探针,在所在业务子进程中,进行业务程序监控数据的采集。第三方面,本专利技术实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本专利技术实施例中任一所述的服务端程序监控方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例中任一所述的服务端程序监控方法。本专利技术实施例通过启动业务子进程之后,通过业务子进程先调用监控探针,在监控探针实例化后,再执行业务程序,并通过先调用的监控探针对同一业务子进程运行的业务程序进行监控数据的采集,解决了现有技术中监控业务程序的代码嵌入到业务程序或运行环境,导致监控代码的维护成本高和监控数据处理复杂的问题,监控探针可以在同一业务子进程中与业务程序并行执行,实现无侵入监控业务程序,降低监控探针与业务程序的耦合性,减少监控探针的维护成本,同时提高业务程序的安全性。附图说明图1是本专利技术实施例一中的一种服务端程序监控方法的流程图;图2a是本专利技术实施例二中的一种服务端程序监控方法的流程图;图2b是现有技术中的Node.js运行环境的运行流程图;图2c是现有技术中的进程管理模块的运行流程图;图2d是本专利技术实施例所适用的一种进程管理模块的运行流程图;图3是本专利技术实施例三中的一种服务端程序监控装置的结构示意图;图4是本专利技术实施例四中的一种计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一中的一种服务端程序监控方法的流程图的示意图,本实施例可适用于无侵入监控服务端程序的情况,该方法可以由本专利技术实施例提供的服务端程序监控装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体是在服务器中。如图1所示,本实施例的方法具体包括:S110,建立并启动至少一个业务子进程。进程是程序的一次动态执行过程,可以是指从代码加载、执行到执行完毕的一个完整过程。进程是系统进行资源分配和调度的独立单位。进程是由代码(堆栈段)、数据(数据段)、内核状态和一组寄存器组成。在多任务操作系统中,通过运行多个进程来并发地执行多个任务。可以通过为当前进程建立子进程的方式,建立并运行多个进程。例如,在Nodejs运行环境,操作系统可以为当前进程产生子进程,当前进程变为父进程,父进程和子进程共享代码空间,但数据空间相互独立,在建立子进程时,子进程的数据空间中的内容是当前父进程的数据空间中的内容完整拷贝。子进程可以用于执行与父进程不同的任务。业务子进程用于运行业务程序。不同业务子进程分别用于运行不同业务程序。示例性的,可以通过fork函数建立业务子进程。S120,通过每个业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个业务子进程中。监控探针用于对运行在同一个业务子进程的业务程序进行监控,以及采集监控数据。监控探针可以是指独立于业务程序运行的代码。业务子进程用于同时运行监控探针和业务程序。其中,优先运行监控探针,可以监控业务程序启动之前以及启动时的运行数据,增加监控数据的覆盖范围。将监控探针实例化至业务子进程,用于在业务子进程被分配的内存中为监控探针开辟内存空间,并将监控探针加载到开辟的内存空间中运行。S130,通过每个业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序。业务程序可以是指实现特定功能的程序。示例性的,业务程序为直播服务程序,接收客户端发送的直播业务请求,进行响应,并向客户端反馈直播业务数据。启动并执行匹配的业务程序可以包括:在业务子进程被分配的内存中为业务程序开辟内存空间,并将业务程序加载到开辟的内存空间中运行。S140,通过各监控探针,在所在业务子进程中,进行业务程序监控数据的采集。业务子进程中的监控探针用于对同一业务子进程运行的业务程序进行监控,监控具体可以是指在业务程序过程中,检测设定数据(如消息或事件等)并进行统计。不同业务子进程相互独立运行,同时不同业务子进程运行的监控探针相互独立运行,以及不同业务子进程运行的业务程序相互独立运行。监控数据用于描述业务程序的运行性能。可选的,所述监控数据包括虚拟机堆栈指标、进程接收请求耗时指标、进程每秒查询率指标、进程堆栈指标和垃圾回收暂停时间。虚拟机堆栈指标可以是指NodejsV8虚拟机中业务程序的堆栈数据对内存的占用随时间变化的数据,用于分析NodejsV8虚拟机中业务程序的内存使用情况。进程接收请求耗时指标用于描述从向业务程序发送到该业务程序接收到该请求的时长。每秒查询率(QueriesPerSecond,QPS)是本文档来自技高网...

【技术保护点】
1.一种服务端程序监控方法,其特征在于,包括:/n建立并启动至少一个业务子进程;/n通过每个所述业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个所述业务子进程中;/n通过每个所述业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序;/n通过各所述监控探针,在所在业务子进程中,进行业务程序监控数据的采集。/n

【技术特征摘要】
1.一种服务端程序监控方法,其特征在于,包括:
建立并启动至少一个业务子进程;
通过每个所述业务子进程,在启动后调用预先封装的监控探针,以将各所述监控探针实例化至每个所述业务子进程中;
通过每个所述业务子进程在完成监控探针的实例化后,启动并执行匹配的业务程序;
通过各所述监控探针,在所在业务子进程中,进行业务程序监控数据的采集。


2.根据权利要求1所述的方法,其特征在于,在建立并启动至少一个业务子进程之前,还包括:启动监控管理模块;
在通过每个所述业务子进程,在启动后调用预先封装的监控探针之后,还包括:
将每个所述业务子进程中的监控探针在所述监控管理模块上进行通信注册;
通过各所述监控探针,在所在业务子进程中,进行业务程序监控数据的采集之后,还包括:
通过各所述监控探针,将采集得到的监控数据发送至所述监控管理模块。


3.根据权利要求2所述的方法,其特征在于,还包括:
通过所述监控管理模块采集宿主设备的监控数据。


4.根据权利要求1所述的方法,其特征在于,所述建立至少一个业务子进程,包括:
运行Node.js运行环境;
在所述Node.js运行环境中运行进程管理模块;
通过所述进程管理模块运行进程监控程序;
通过所述进程监控程序建立至少一个业务子进程。


5.根据权利要求4所述的方法,其特征在于,所述通过每个所述业务子进程,在启动后调用预先封装的监控探针,包括:
通过业务子进程调用通用模块;
通过所述通用模块调用监控探针,所...

【专利技术属性】
技术研发人员:郑启光
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1