CN112306788A - 一种程序动态的监控方法和装置 - Google Patents

一种程序动态的监控方法和装置 Download PDF

Info

Publication number
CN112306788A
CN112306788A CN201910689921.6A CN201910689921A CN112306788A CN 112306788 A CN112306788 A CN 112306788A CN 201910689921 A CN201910689921 A CN 201910689921A CN 112306788 A CN112306788 A CN 112306788A
Authority
CN
China
Prior art keywords
monitoring
index
program
target
monitored
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.)
Pending
Application number
CN201910689921.6A
Other languages
English (en)
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.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information Technology 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 Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN201910689921.6A priority Critical patent/CN112306788A/zh
Publication of CN112306788A publication Critical patent/CN112306788A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种程序动态的监控方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取监控开启指令,根据监控开启指令确定待监控程序的目标监控指标,采集待监控程序中进程的目标监控指标的指标值;将进程的目标监控指标的指标值存入内存,并同步至共享内存;当获取观测指令,对共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示最终监控数据。该实施方式能够在内存中实时采集进程的指标值并将进程的指标值同步到共享内存中,当需要监控观测指标时再从共享内存中进行汇总计算从而获得最终的监控数据。实现了一种开箱即用、可开闭、还可以支持图形化展示的监控程序动态的方法。

Description

一种程序动态的监控方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序动态的监控方法和装置。
背景技术
随着互联网的迅猛发展,网络应用的业务流量日趋增大,对能扛大并发的高性能Web服务器需求越来越多。由于业务逻辑的日趋复杂,需要在服务器的基础上进行扩展的需求越来越多。近年来,复杂的业务逻辑多采用脚本类语言(如Lua)来编写,极大的降低了高性能服务器编程的门槛。然而,随着脚本类语言编写的业务逻辑越来越复杂,对于脚本类语言程序的运行监控越来越迫切,需要一种简单易用的方式,实现对线上应用程序的实时动态监控。
目前现有技术为基于linux内核的动态追踪方案。该类型的工具在运行时通过将探针代码动态植入内核态或者用户态代码的方式实现动态监控。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1)使用门槛非常高:上述技术方案需要有一定的linux内核知识,总体过于复杂、学习曲线高,用户需要掌握专门的如D语言之类的专用语言,增加了额外的学习成本;
2)使用风险较高:由于上述技术方案是基于linux内核,并且一般需要超级用户权限执行,一旦探针脚本编写有问题甚至可能对系统内核造成影响,给系统运营及稳定性带来一定的风险;
3)易用性较差:上述技术方案一般只考虑了将结果输出,缺少更直观和便利的观察方式,例如一般并不支持远端图形化的方式进行观测等。
发明内容
有鉴于此,本发明实施例提供一种程序动态的监控方法和装置,能够基于埋点的方式,在内存中实时采集进程的指标值,并将进程的指标值同步到共享内存中,当需要监控观测指标时再从共享内存中进行汇总计算从而获得最终的监控数据。实现了一种开箱即用、可开闭、还可以支持Web图形化展示的监控程序动态的方法。
为实现上述目的,根据本发明实施例的一个方面,提供了一种程序动态的监控方法,包括:
获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
可选地,根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
可选地,采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
可选地,在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
可选地,在确定目标监控指标的最终监控数据,并展示所述最终监控数据之后,还包括:
关闭监控,并对内存、共享内存进行清理。
根据本发明实施例的再一个方面,提供了一种程序动态的监控装置,包括:
采集模块,用于获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
存储模块,用于将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
展示模块,用于当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
可选地,所述采集模块根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
可选地,所述采集模块采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
可选地,所述展示模块在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
可选地,所述展示模块在确定目标监控指标的最终监控数据,并展示所述最终监控数据之后,还包括:
关闭监控,并对内存、共享内存进行清理。
根据本发明实施例的另一个方面,提供了一种程序动态的监控电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的程序动态的监控方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的程序动态的监控方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用基于埋点的方式,在内存中实时采集进程的指标值,并将进程的指标值同步到共享内存中,当需要监控观测指标时再从共享内存中进行汇总计算从而获得并展示最终的监控数据的一种简单、方便、快捷的技术手段,所以克服了现有技术中使用门槛高、风险大、易用性差的技术问题,进而实现了一种开箱即用、可开闭、还可以支持Web图形化展示的监控程序动态的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种程序动态的监控方法的主要流程的示意图;
图2是根据本发明实施例的一种程序动态的监控方法中采集并计算最终监控数据的方法的流程示意图;
图3是根据本发明实施例的一种程序动态的监控方法中采集进程的目标监控指标的指标值的方法的流程示意图;
图4是根据本发明实施例的一种程序动态的监控方法中在监控页面展示最终监控数据的流程示意图;
图5是根据本发明实施例的一种程序动态的监控方法中展示最终监控数据的一种可视化示意图;
图6是根据本发明实施例的一种程序动态的监控装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的一种程序动态的监控方法的主要流程的示意图,如图1所示,本发明实施例的一种程序动态的监控方法,包括:
步骤S101、获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
步骤S102、将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
步骤S103、当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
监控开启指令可以是用户在相应的监控页面上发出的打开监控开关的指令信息;监控开启指令中可以包含具体的监控指标信息;
当用户不发出监控开启指令时,程序可以正常执行,不同时进行监控;当用户发出监控开启指令时,程序在正常执行的过程中,还可以根据监控开启指令中包含的监控指标信息,同时对相关指标进行数据采集、实现监控。
所述内存可以是程序中各个进程内部访问的存储空间,每个进程只可访问其对应的内存空间;共享内存可以是所有进程都能够共享访问的存储空间。
观测指令可以是用户在相应的监控页面上发出的开始观测可视化结果的指令信息。
本发明通过上述步骤实现了一种部署简单、可开闭、还可以支持图形化展示的程序动态的监控方法。
图2是根据本发明实施例的一种程序动态的监控方法中采集并计算最终监控数据的方法的流程示意图;
如图2所示,本发明实施例中以脚本语言lua语言为例,通过采集组件dyn_statistics.lua进行指标进程内部计算,即采集待监控程序中进程的目标监控指标的指标值;再通过采集组件dyn_statistics.lua将指标值定时同步到共享内存中;最后通过计算组件dyn_calculate.lua进行指标共享内存计算,即对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据。
在一些实施例中,根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
监控开启指令中的监控指标信息中可以包含该次监控中所需监控的指标,对于需要监控的指标,监控指标信息中该指标的监控指标开关为打开状态;
由于判断总开关是否开启对程序运行性能影响较小,而依次判断各个指标开关是否开启对程序运行性能影响较大,所以可以通过设置监控总开关和监控指标开关这两层开关的方式,使得在没有监控需求的情况下,在判断总开关是否开启时就能够确定无需进行监控,从而提高整体性能。
图3是根据本发明实施例的一种程序动态的监控方法中采集进程的目标监控指标的指标值的方法的流程示意图;
如图3所示,程序执行开始;
判断总开关是否开启;若否,则结束监控;若是,进行下一步骤,判断指标开关是否开启;
若判断指标开关未开启,则结束监控;若判断指标开关开启,则在内存中采集/计算指标;
将采集/计算出的指标值存入内存,即进程级缓存中;
确认完成采集进程的目标监控指标的指标值。
在一些实施例中,采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
采用基于埋点的方式获取目标监控指标的指标值,简单易用,方便部署。以脚本语言lua语言为例,可以使用现有的埋点API,以满足大多场景下的指标需求,如表1所示:
表1埋点API
Figure BDA0002147563970000081
例如,当要监控各级缓存的命中率时,可以在待监控程序代码中加入如下埋点代码即可,进而可以在命中各级缓存时调用到如下埋点代码:
dyn_statistics.dyn_muti_rate(CACHE_HIT_RATE,CACHE_HIT_LOCAL),代表本地命中率;
dyn_statistics.dyn_muti_rate(CACHE_HIT_RATE,CACHE_HIT_REDIS),代表redis命中率;
dyn_statistics.dyn_muti_rate(CACHE_HIT_RATE,CACHE_HIT_DBS),代表数据库命中率;
当用户在Web监控页面打开CACHE_HIT_RATE监控指标时,即可观测到CACHE_HIT_LOCAL(本地命中率)、CACHE_HIT_REDIS(redis命中率)、CACHE_HIT_DBS(数据库命中率)分别占据的比例。
可以按如下方法在应用服务器上进行部署,引入dyn_monitor(监控组件),使得每次待监控程序被执行时,该监控组件就会被执行,当运行到埋点代码时,本发明的监控方法就会被启动;一可实施的部署代码如下:
Figure BDA0002147563970000091
举例说明基于埋点的采集指标值的方法,以计数器埋点的内存计算为例,一可实施代码如下:
Figure BDA0002147563970000101
上述代码中,所监控的指标名称为indicator_name(计数器),value代表计数器的值;上述代码执行的过程中只进行简单的累加,对待监控程序原本的正常业务的影响较小。
在采集到上述个进程的计数器指标值后,在共享内存中进行汇总计算时,仅会在观测监控指标值时进行计算,对待监控程序原本的主服务业务无影响。如对计数器埋点的进行汇总的一可实施算法代码如下:
Figure BDA0002147563970000102
在一些实施例中,在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
图4是根据本发明实施例的一种程序动态的监控方法中在监控页面展示最终监控数据的流程示意图;
如图4所示,Web监控页面可以使用定时任务从共享内存区获取监控指标数据,并通过dyn_caculate.lua(计算组件)进行汇总计算,计算结果通过dny_monitor.lua(监控组件)组装返回给Web监控页面。其中,采用定时任务可以灵活配置得到最终数据的频率,满足各种实际需求。
Web监控页面定时发送get_dyn_indicators(计数组件)的action指令给dyn_monitor,dyn_monitor收到指令后,调用dyn_calculate.lua对共享内存区的监控指标数据进行计算汇总,并且可以数据被封装成json格式传递给Web监控页面进行展示。
在Web监控页面收到JSON格式的监控数据后,可以使用图形化的开源UI插件(如highcharts)进行动态展示。在一具体实施例中,可以在“图形化展示指标”中输入监控指标名称,在“指标属性”中输入监控指标返回JSON数据的属性名称,例如需要图形化动态展示JSON中的cost_time(花费时间)值,则直接在“指标属性”输入:value.content.cost_time,点击“启动/停止图形更新”,调用javascript的eval函数,将字符串value.content.cost_time转换成JSON对象属性,并传递给UI插件,从而实现数据图形化动态展示。
图5是根据本发明实施例的一种程序动态的监控方法中展示最终监控数据的一种可视化示意图;如图5所示,为监控界面组件及其效果。
其中,在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还可以通过对汇总计算得到的监控结果进行签名,并且在展示最终监控数据之前验证该签名的方式,保护数据的安全,防止被未授权访问;
一可行的实施例如下:
在Web监控页面调用/dyn_monitor(监控组件)获取共享内存中的监控数据时需要进行签名,具体地,可以采用对当前时间戳加“盐”进行Md5散列的算法进行签名;同时,/dyn_monitor服务端对签名有效期进行验证,防止重放攻击。其中“盐”的具体值需要在Web监控页面(密码框)中输入,验签算法伪代码如下:
Figure BDA0002147563970000121
在一些实施例中,在确定目标监控指标的最终监控数据,并展示所述最终监控数据之后,还包括:
关闭监控,并对内存、共享内存进行清理。
在本发明以lua语言为例的具体实施例中,可以在Web监控页面通过发送dyn_set_observe的action指令给/dyn_monitor,从而实现监控指标的开启或者关闭。
Web监控页面可以将监控整体关闭,并且清理共享级内存及进程级内存的指标计算值,释放因监控计算产生的内存空间;整体关闭后,每个埋点仅需要做全局开关的判断,因此对总体性能影响微乎其微。
Web监控页面也可开启指定监控指标的或者开启所有监控指标,因为开启所有监控指标可能会对系统性能造成影响,一般在测试环境才允许开启全部监控,线上环境一般是按需开启指定的监控指标。
图6是根据本发明实施例的一种程序动态的监控装置的主要模块的示意图;如图6所示,本发明实施例的一种程序动态的监控装置600包括:
采集模块601,用于获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
存储模块602,用于将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
展示模块603,用于当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
监控开启指令可以是用户在相应的监控页面上发出的打开监控开关的指令信息;监控开启指令中可以包含具体的监控指标信息;
当用户不发出监控开启指令时,程序可以正常执行,不同时进行监控;当用户发出监控开启指令时,程序在正常执行的过程中,还可以根据监控开启指令中包含的监控指标信息,同时对相关指标进行数据采集、实现监控。
所述内存可以是程序中各个进程内部访问的存储空间,每个进程只可访问其对应的内存空间;共享内存可以是所有进程都能够共享访问的存储空间。
观测指令可以是用户在相应的监控页面上发出的开始观测可视化结果的指令信息。
在一些实施例中,所述采集模块601根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
监控开启指令中的监控指标信息中可以包含该次监控中所需监控的指标,对于需要监控的指标,监控指标信息中该指标的监控指标开关为打开状态;
由于判断总开关是否开启对程序运行性能影响较小,而依次判断各个指标开关是否开启对程序运行性能影响较大,所以可以通过设置监控总开关和监控指标开关这两层开关的方式,使得在没有监控需求的情况下,在判断总开关是否开启时就能够确定无需进行监控,从而提高整体性能。
在一些实施例中,所述采集模块601采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
采用基于埋点的方式获取目标监控指标的指标值,简单易用,方便部署。
在一些实施例中,所述展示模块603在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还可以通过对汇总计算得到的监控结果进行签名,并且在展示最终监控数据之前验证该签名的方式,保护数据的安全,防止被未授权访问;
在一些实施例中,所述展示模块603在确定目标监控指标的最终监控数据,并展示所述最终监控数据之后,还包括:
关闭监控,并对内存、共享内存进行清理。
在本发明以lua语言为例的具体实施例中,可以在Web监控页面通过发送dyn_set_observe的action指令给/dyn_monitor,从而实现监控指标的开启或者关闭。
Web监控页面可以将监控整体关闭,并且清理共享级内存及进程级内存的指标计算值,释放因监控计算产生的内存空间;整体关闭后,每个埋点仅需要做全局开关的判断,因此对总体性能影响微乎其微。
Web监控页面也可开启指定监控指标的或者开启所有监控指标,因为开启所有监控指标可能会对系统性能造成影响,一般在测试环境才允许开启全部监控,线上环境一般是按需开启指定的监控指标。
图7示出了可以应用本发明实施例的程序动态的监控方法或程序动态的监控装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理数据(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的程序动态的监控方法一般由服务器705执行,相应地,程序动态的监控装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括采集模块、存储模块、展示模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,采集模块还可以被描述为“向所连接的服务端发送图片获取请求的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101、获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;步骤S102、将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;步骤S103、当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
根据本发明实施例的技术方案,因为采用基于埋点的方式,在内存中实时采集进程的指标值,并将进程的指标值同步到共享内存中,当需要监控观测指标时再从共享内存中进行汇总计算从而获得并展示最终的监控数据的一种简单、方便、快捷的技术手段,所以克服了现有技术中使用门槛高、风险大、易用性差的技术问题,进而实现了一种开箱即用、可开闭、还可以支持Web图形化展示的监控程序动态的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种程序动态的监控方法,其特征在于,包括:
获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
2.根据权利要求1所述的方法,其特征在于,根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
3.根据权利要求1所述的方法,其特征在于,采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
4.根据权利要求1所述的方法,其特征在于,在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
5.一种程序动态的监控装置,其特征在于,包括:
采集模块,用于获取监控开启指令,根据所述监控开启指令确定待监控程序的目标监控指标,采集所述待监控程序中进程的目标监控指标的指标值;
存储模块,用于将所述进程的目标监控指标的指标值存入内存,并同步至共享内存;
展示模块,用于当获取观测指令时,对所述共享内存中的进程的目标监控指标的指标值进行汇总计算,确定目标监控指标的最终监控数据,并展示所述最终监控数据。
6.根据权利要求5所述的装置,其特征在于,所述采集模块根据监控开启指令确定待监控程序的目标监控指标,包括:
确认所述待监控程序的监控总开关打开;
在所述监控总开关打开的情况下,以监控指标开关打开的指标,作为所述待监控程序的目标监控指标。
7.根据权利要求5所述的装置,其特征在于,所述采集模块采集所述待监控程序中进程的目标监控指标的指标值,包括:
利用设置好的、与目标监控指标对应的埋点,采集目标监控指标的指标值。
8.根据权利要求5所述的装置,其特征在于,所述展示模块在对所述共享内存中的进程的目标监控指标的指标值进行汇总计算之后,还包括:
对所述汇总计算得到的监控结果进行签名,确定带签名的最终监控数据;
在展示所述最终监控数据之前,还包括:验证所述最终监控数据的签名;并在确认验证通过后,展示所述最终监控数据。
9.一种程序动态的监控电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201910689921.6A 2019-07-29 2019-07-29 一种程序动态的监控方法和装置 Pending CN112306788A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910689921.6A CN112306788A (zh) 2019-07-29 2019-07-29 一种程序动态的监控方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910689921.6A CN112306788A (zh) 2019-07-29 2019-07-29 一种程序动态的监控方法和装置

Publications (1)

Publication Number Publication Date
CN112306788A true CN112306788A (zh) 2021-02-02

Family

ID=74329860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910689921.6A Pending CN112306788A (zh) 2019-07-29 2019-07-29 一种程序动态的监控方法和装置

Country Status (1)

Country Link
CN (1) CN112306788A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115129573A (zh) * 2022-08-31 2022-09-30 国汽智控(北京)科技有限公司 程序运行的监控方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331327A (zh) * 2014-12-02 2015-02-04 山东乾云启创信息科技有限公司 大规模虚拟化环境中任务调度的优化方法及优化系统
WO2019056499A1 (zh) * 2017-09-20 2019-03-28 平安科技(深圳)有限公司 预测模型训练方法、数据监控方法、装置、设备及介质
CN109672580A (zh) * 2018-09-21 2019-04-23 平安科技(深圳)有限公司 全链路监控方法、装置、终端设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104331327A (zh) * 2014-12-02 2015-02-04 山东乾云启创信息科技有限公司 大规模虚拟化环境中任务调度的优化方法及优化系统
WO2019056499A1 (zh) * 2017-09-20 2019-03-28 平安科技(深圳)有限公司 预测模型训练方法、数据监控方法、装置、设备及介质
CN109672580A (zh) * 2018-09-21 2019-04-23 平安科技(深圳)有限公司 全链路监控方法、装置、终端设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115129573A (zh) * 2022-08-31 2022-09-30 国汽智控(北京)科技有限公司 程序运行的监控方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109597677B (zh) 用于处理信息的方法和装置
CN110262807B (zh) 集群创建进度日志采集系统、方法和装置
US9680719B2 (en) Communication system, client terminal, and server
CN110222775A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN110858172A (zh) 一种自动化测试代码生成方法和装置
CN109582317B (zh) 用于调试寄宿应用的方法和装置
US20240103928A1 (en) Information processing method and apparatus for animation resource, device, medium and product
WO2019019356A1 (zh) 应用程序测试方法、装置、计算机设备和存储介质
CN108038172B (zh) 基于人工智能的搜索方法和装置
CN109902726B (zh) 简历信息处理方法及装置
CN110673886B (zh) 用于生成热力图的方法和装置
CN111383038A (zh) 移动终端的广告展示方法、装置、移动终端和储存介质
CN112306788A (zh) 一种程序动态的监控方法和装置
CN112199923A (zh) 基于分布式系统的标识生成方法、系统、设备及介质
CN111382058B (zh) 一种服务的测试方法、装置,服务器及存储介质
CN112115149A (zh) 一种提供数据的方法和装置
CN115563134A (zh) 一种交互方法、装置、电子设备、计算机可读介质
CN110674426A (zh) 网页行为上报方法和装置
CN110399059A (zh) 用于展示信息的方法和装置
CN112565472B (zh) 静态资源的处理方法和装置
CN114025116A (zh) 视频生成方法、装置、可读介质和电子设备
CN112968876A (zh) 一种内容分享方法、装置、电子设备及存储介质
CN111241368A (zh) 数据处理方法、装置、介质和设备
CN112579428A (zh) 接口测试的方法、装置、电子设备和存储介质
CN111259178A (zh) 图像数据同步方法、装置和系统

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