CN112148576B - 一种应用性能监测方法、系统及存储介质 - Google Patents

一种应用性能监测方法、系统及存储介质 Download PDF

Info

Publication number
CN112148576B
CN112148576B CN202011040105.1A CN202011040105A CN112148576B CN 112148576 B CN112148576 B CN 112148576B CN 202011040105 A CN202011040105 A CN 202011040105A CN 112148576 B CN112148576 B CN 112148576B
Authority
CN
China
Prior art keywords
module
application process
probe
performance monitoring
naming
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.)
Active
Application number
CN202011040105.1A
Other languages
English (en)
Other versions
CN112148576A (zh
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 Keynote Network Inc
Original Assignee
Beijing Keynote Network Inc
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 Keynote Network Inc filed Critical Beijing Keynote Network Inc
Priority to CN202011040105.1A priority Critical patent/CN112148576B/zh
Publication of CN112148576A publication Critical patent/CN112148576A/zh
Application granted granted Critical
Publication of CN112148576B publication Critical patent/CN112148576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种应用性能监测方法、系统及存储介质,其中该系统,包括:探针装置,包括:性能监测模块,用于采集和发送性能数据;以及,探针启动模块,用于根据应用进程名称对应的禁用配置,确定是否启动性能监测模块;探针部署装置,包括:进程命名模块,用于获取用于命名的特征信息,根据该特征信息确定应用进程的应用进程名称,该应用进程名称作为应用进程的唯一标识;拦截器模块,用于挂载探针启动模块,以使其响应于应用进程的启动而启动;管理模块,用于获取确定得出的应用进程名称,并向服务器提供应用进程名称,从服务器获取应用进程名称对应的禁用配置,向探针启动模块提供该禁用配置。通过本申请,实现了应用进程的探针配置。

Description

一种应用性能监测方法、系统及存储介质
技术领域
本申请涉及应用程序性能管理(Application Performance Management,简称为APM)技术领域,尤其涉及一种应用性能监测方法、系统及存储介质。
背景技术
应用程序监测系统,可用于监测应用进程的事务执行性能、资源利用率、采集过程参数。通常使用探针来获取应用进程的内部数据,探针提供的监控数据质量和粒度远高于外部监控,例如:可以采集到程序内发起的HTTP外部请求等。
探针是由可执行代码组成,探针在应用进程启动时启动并与进程一起运行。由于探针与应用进程在一起运行,所以它可以访问进程中的内部数据。通常探针采集应用性能数据并发送到后端,以进行关联、分析、存储和可视化。
但是,探针的注入需要手动调整应用进程的启动条件。这些调整可以包括操作启动进程的命令行、设置或更改环境变量、修改配置文件等。手动修改这些流程启动条件,一方面需要详细了解探针启动机制及应用进程的启动方式,这是一项高度负责且风险很大的任务,由于不正确配置探针可能会导致进程在启动或以后崩溃或工作不正常;另一方面,它也是一个单调和重复的任务,例如,服务器场由运行相同或几乎相同配置的进程的大量相同配置的主机系统组成,所有这些进程都需要手动修改以注入探针。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种应用性能监测方法、系统及存储介质。
第一方面,本申请提供了一种应用性能监测系统,包括:探针装置,包括:性能监测模块,用于采集和发送性能数据;以及,探针启动模块,用于根据应用进程名称对应的禁用配置,确定是否启动性能监测模块;探针部署装置,包括:进程命名模块,用于获取用于命名的特征信息,根据用于命名的特征信息确定应用进程的应用进程名称,应用进程名称作为应用进程的唯一标识;拦截器模块,用于挂载探针启动模块,以使探针启动模块响应于应用进程的启动而启动;管理模块,用于获取进程命名模块确定得出的应用进程名称,并向服务器提供应用进程名称,从服务器获取应用进程名称对应的禁用配置,以及向探针启动模块提供应用进程名称对应的禁用配置。
在某些实施例中,上述探针部署装置,还包括:辅助模块,用于应用进程与管理模块和进程命名模块之间的通信。
在某些实施例中,上述探针启动模块,用于通过辅助模块与管理模块通信,以从管理模块获取应用进程名称对应的禁用配置;进程命名模块,用于响应于应用进程的启动,获取用于命名的特征信息,根据用于命名的特征信息确定应用进程的应用进程名称。
在某些实施例中,上述探针部署装置,管理模块,还用于向拦截器模块提供黑名单配置;拦截器模块,还用于判断应用进程是否在黑名单中,如果不在黑名单中,挂载所述探针启动模块,以使探针启动模块随应用进程启动。
在某些实施例中,上述进程命名模块,用于从应用进程的命令行中提取用于命名的特征信息;或者,用于从应用进程的命令行中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,用于从应用进程的环境变量中提取用于命名的特征信息;或者,用于从应用进程的环境变量中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,用于从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
在某些实施例中,上述管理模块,还用于根据应用进程的文件引用判断探针的嵌入状态,其中,如果文件引用包含探针启动模块和性能监测模块,探针为嵌入状态;如果文件引用包含探针启动模块但不包含性能监测模块,探针为禁用状态。
第二方面,本申请提供了一种应用性能监测方法,包括:扫描应用进程的信息;从应用进程的信息中提取用于命名的特征信息;根据用于命名的特征信息确定应用进程的应用进程名称,其中,应用进程名称作为应用进程的唯一标识;设置应用进程名称对应的禁用配置;响应于应用进程的启动,启动探针的探针启动模块;探针启动模块获取应用进程的应用进程名称,并获取应用进程名称对应的禁用配置;探针启动模块根据应用进程名称对应的禁用配置判断是否探针的启动性能监测模块;如果禁用配置为非禁用,启动性能监测模块,性能监测模块采集并发送应用进程的性能数据;如果禁用配置为禁用,不启动性能监测模块。
在某些实施例中,从应用进程的信息中提取用于命名的特征信息,包括:从应用进程的命令行中提取用于命名的特征信息;或者,从应用进程的命令行中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,从应用进程的环境变量中提取用于命名的特征信息;或者,从应用进程的环境变量中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
第三方面,本申请提供了一种应用性能监测方法,包括:响应于应用进程的启动,启动探针的探针启动模块;探针启动模块获取应用进程的应用进程名称,并获取应用进程名称对应的禁用配置,其中,应用进程名称作为应用进程的唯一标识;探针启动模块根据应用进程名称对应的禁用配置判断是否启动探针的性能监测模块;如果禁用配置为非禁用,启动性能监测模块,性能监测模块采集并发送应用进程的性能数据;如果禁用配置为禁用,不启动性能监测模块。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有探针启动程序,探针启动程序被处理器执行时实现应用性能监测方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,对应用进程命名,将应用进程名称作为应用进程的唯一标识,在应用进程启动时,启动探针的探针启动模块,根据应用进程名称对应的禁用配置判断是否启动探针的性能监测模块,实现了探针启动或禁用,并且通过探针启动模块进行启动判断,避免直接启动整个探针带来的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的应用性能监测系统一个示例的结构框图;
图2为本申请实施例提供的应用性能监测方法一个示例的流程图;
图3为本申请实施例提供的应用性能监测方法另一示例的流程图;
图4为本申请实施例提供的应用性能监测方法又一示例的流程图;
图5为本申请实施例提供的应用性能监测系统另一示例的结构框图;以及
图6为本申请实施例提供的计算机设备一个示例的硬件示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本申请实施例提供了一种应用性能监测系统,参考图1所示,应用性能监测系统包括:探针装置110和探针部署装置120。
操作系统每打开一个程序都会创建一个进程ID,即进程识别号(ProcessIdentification,简称为PID),也称为进程标识符。PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统随机分配的。在运行时PID是不会改变标识符的,但是终止程序后再运行PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。本申请实施例中,通过对应用进程命名得到应用进程名称,通过应用进程名称来唯一标识应用进程。并设置应用进程名称对应的禁用配置,使得应用进程重启前后的探针配置具有一致性,从而保证配置的可达性。
参考图1所示,探针装置110包括:性能监测模块112,用于采集和发送性能数据。探针启动模块114,与性能监测模块112相连,能够响应于应用进程的启动而启动,用于根据应用进程名称对应的禁用配置,确定是否启动性能监测模块114。
参考图1所示,探针部署装置120包括:进程命名模块122,用于获取用于命名的特征信息,根据用于命名的特征信息确定应用进程的应用进程名称,其中,应用进程名称作为应用进程的唯一标识;管理模块124,与进程命名模块122和探针启动模块114相连,用于获取进程命名模块122确定得出的应用进程名称,并向服务器(图中未示出)提供应用进程名称,从服务器获取应用进程名称对应的禁用配置,以及向探针启动模块114提供应用进程名称对应的禁用配置。
在某些实施例中,参考图1所示,探针部署装置120还包括:辅助模块126,用于应用进程与进程命名模块122和管理模块124之间的通信。
LXC(Linux Container)给Linux用户提供了用户空间的工具集,用户可以通过LXC创建和管理容器,在容器中创建运行操作系统就可以有效的隔离多个操作系统,实现操作系统级的虚拟化。在某些实施例中,探针启动模块114,用于通过辅助模块126与管理模块124通信,以从管理模块124获取应用进程名称对应的禁用配置。辅助模块126能够穿透LXC容器,实现容器内的应用进程与容器外的模块之间的通信。
参考图1所示,探针部署装置120还包括:拦截器模块128,与管理模块124相连,用于挂载探针启动模块114,以使探针启动模块114响应于应用进程的启动而启动。
在某些实施例中,管理模块124,还用于向拦截器模块128提供黑名单配置;拦截器模块128,用于判断应用进程是否在黑名单中,如果不在黑名单中,挂载探针启动模块114,以使探针启动模块114随应用进程启动。作为示例性说明,通过修改应用进程的启动参数来将探针启动模块114挂载到应用进程,例如对java应用进程增加-javaagent。
作为示例性说明,拦截器模块128,用于使用命令行判断应用进程是否在黑名单中,判断方式包括正则判断、包含判断等,但本申请实施例并不限于此。
在某些实施例中,进程命名模块122,用于从应用进程的命令行中提取用于命名的特征信息;或者,用于从应用进程的命令行中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,用于从应用进程的环境变量中提取用于命名的特征信息;或者,用于从应用进程的环境变量中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,用于从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
作为示例性说明,以对SpringBoot进程进行命名为例,首先尝试从命令行中提取Jar包的路径,定位jar文件后解压读取签名文件夹(META-INF)下的信息,如果获取到Start-Class,则用Start-Class命名,否则用jar文件名命名。
在某些实施例中,上述管理模块124,还用于根据应用进程的文件引用判断探针的嵌入状态,其中,如果文件引用包含探针启动模块和性能监测模块,探针为嵌入状态;如果文件引用包含探针启动模块但不包含性能监测模块,探针为禁用状态。
参考图1所示,探针启动模块114随应用进程启动后,通过调用进程命名模块122进行对应用进程进行命名,得到应用进程名称,向管理模块124请求应用进程名称对应的禁用配置,如果禁用配置为非禁用,则启动性能检测模块112。
应当理解,图1虽然示出了模块或部件的架构,但本申请实施例对此不做限定,本领域技术人员可以根据需要将一个或多个模块拆分为更多的模块,或者将多个模块合并为一个模块。例如,辅助模块126和进程命名模块122可作为一个模块。
本申请实施例还提供了一种应用性能监测方法,如图2所示,本申请实施例的应用性能监测方法的一个示例包括步骤S202至步骤S220。在该示例中,首先对应用进程进行命名,得到应用进程名称,配置得到应用进程名称对应的禁用配置。在应用进程启动时,启动探针的探针启动模块,并确定启动的应用进程的应用进程名称,进一步获取应用进程名称对应的禁用配置,并根据禁用配置确定是否启动探针的性能监测模块。
步骤S202,扫描应用进程的信息。作为一个示例性说明,应用进程的信息包括但不限于:应用进程的命令行、应用进程的环境变量、应用进程的文件内容等。
步骤S204,从应用进程的信息中提取用于命名的特征信息。
步骤S206,根据用于命名的特征信息确定应用进程的应用进程名称,其中,应用进程名称作为应用进程的唯一标识。
在步骤S206中,可按照预先设置的命名规则,根据用于命名的特征信息确定应用进程的应用进程名称。
步骤S208,设置应用进程名称对应的禁用配置。
作为一个示例性说明,禁用配置包括禁用和非禁用两种状态,但本申请实施例并不限于此。
在某些实施例中,在后端设置禁用配置,在实际应用中可根据一种或多种因素确定是否禁用探针,本申请实施例对此不做赘述。
步骤S210,响应于应用进程的启动,启动探针的探针启动模块。
在本申请实施例中,通过拦截器将探针启动模块挂载到应用进程,以使应用进程启动时启动探针启动模块。
步骤S212,探针启动模块获取应用进程的应用进程名称,并获取应用进程名称对应的禁用配置。
作为一个示例性说明,参考图1所示,探针启动模块调用进程命名模块,通过进程命名模块获取到应用进程名称,从管理模块获得应用进程名称对应的禁用配置。
步骤S214,探针启动模块根据应用进程名称对应的禁用配置判断是否探针的启动性能监测模块;如果禁用配置为非禁用,进入步骤S216;如果禁用配置为禁用,进入步骤S220。
步骤S216启动性能监测模块。
步骤S218,性能监测模块采集并发送应用进程的性能数据。
步骤S220,不启动性能监测模块。
在某些实施例中,上述步骤S203,从应用进程的信息中提取用于命名的特征信息,包括:从应用进程的命令行中提取用于命名的特征信息;或者,从应用进程的命令行中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,从应用进程的环境变量中提取用于命名的特征信息;或者,从应用进程的环境变量中提取路径信息,根据路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者,从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
图3为本申请实施例提供的应用性能监测方法另一示例的流程图,如图3所示,应用性能监测方法包括步骤S302至步骤S312。
步骤S302,响应于应用进程的启动,启动探针的探针启动模块。
在本申请实施例中,通过拦截器将探针启动模块挂载到应用进程,以使应用进程启动时启动探针启动模块。
步骤S304,探针启动模块获取应用进程的应用进程名称,并获取应用进程名称对应的禁用配置,其中,应用进程名称作为应用进程的唯一标识。
作为一个示例性说明,参考图1所示,探针启动模块调用进程命名模块,通过进程命名模块获取到应用进程名称,从管理模块获得应用进程名称对应的禁用配置。
步骤S306,探针启动模块根据应用进程名称对应的禁用配置判断是否启动探针的性能监测模块,如果禁用配置为非禁用,进入步骤S308;如果禁用配置为禁用,进入步骤S312。
步骤S308,启动性能监测模块。
步骤S310性能监测模块采集并发送应用进程的性能数据。
步骤S312,不启动性能监测模块。
本申请实施例提供的该方法,对应用进程命名,将应用进程名称作为应用进程的唯一标识,在应用进程启动时,启动探针的探针启动模块,根据应用进程名称对应的禁用配置判断是否启动探针的性能监测模块,实现了探针启动或禁用,并且通过探针启动模块进行启动判断,避免直接启动整个探针带来的问题。
图4为本申请实施例提供的应用性能监测方法又一示例的流程图,如图4所示,应用性能监测方法包括步骤S402至步骤S430。
步骤S402,扫描应用进程的信息。
步骤S404,从应用进程的信息中提取用于命名的特征信息。
步骤S406,根据用于命名的特征信息确定应用进程的应用进程名称,其中,应用进程名称作为应用进程的唯一标识。
步骤S408,设置应用进程名称对应的禁用配置。
步骤S410,挂载拦截器模块,以使进程加载模块在加载应用进程时加载拦截器模块。
步骤S412,拦截器模块获取黑名单配置。
步骤S414,拦截器模块判断应用进程是否在黑名单中,如果不在黑名单中,进入步骤S416;如果在黑名单中,进入步骤S418。
步骤S416,修改应用进程的启动参数,以使探针随应用进程启动。
步骤S418,不启动探针,结束。
步骤S420,响应于应用进程的启动,启动探针的探针启动模块。
步骤S422,探针启动模块获取应用进程的应用进程名称,并获取应用进程名称对应的禁用配置。
作为一个示例性说明,参考图1所示,探针启动模块调用进程命名模块,通过进程命名模块获取到应用进程名称,从管理模块获得应用进程名称对应的禁用配置。
步骤S424,探针启动模块根据应用进程名称对应的禁用配置判断是否探针的启动性能监测模块;如果禁用配置为非禁用,进入步骤S426;如果禁用配置为禁用,进入步骤S430。
步骤S426启动性能监测模块。
步骤S428,性能监测模块采集并发送应用进程的性能数据。
步骤S430,不启动性能监测模块。
图5为本申请实施例提供的应用性能监测系统另一示例的结构框图,该示例以Linux/Unix操作系统和OneAgent模式为例,对应用性能监测系统进行说明。
参考图5所示,在该示例中,应用性能监测系统包括:操作系统100、探针管理器(OneAgent)1(相当于图1所示的管理模块124)、辅助器(AgentHelper)2(相当于图1所示的辅助模块126和进程命名模块122)、探针启动单元(Agent Starter)31(相当于图1所示的探针启动模块114)、性能监测单元(Agent Core)32(相当于图1所示的性能监测模块112)、应用进程4、拦截器(lib interceptor)5(相当于图1所示的拦截器模块128)、预加载地址(/etc/ld.so.preload)6、黑名单库7、探针数据收集器(Agent Data Collector)8和数据收集器(Data Collector)9。应当理解,图5所示的模块或单元结构,仅作为示例性说明,本申请实施例并不限于图5所示的模块或单元结构。
在该示例中,探针管理器1,作为多个探针(包括探针启动单元31、性能监测单元32)的集合,被配置为接受控制配置,控制应用进程4是否配置探针,同步应用进程的信息通过探针数据收集器8透传给后端(例如服务器)。
探针数据收集器8,为独立的可分布式部署的数据收集器,具有数据聚合功能,负责透传并将聚合的数据发送给后端(例如服务器)的数据收集器9。
探针启动单元31,进程探针的一部分,用于决定是否加载性能监测单元32。性能监测单元32,探针的一部分,用于收集和发送性能数据。
预加载地址6是Linux系统自身支持的模块预加载技术,进程加载器在加载进程时,会在模块表中首先插入指定的预加载模块,然后再插入进程所依赖的其他模块,预加载模块在模块表的位置总是位于加载器之后。
Mount:mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。
在该示例中,安装探针管理器1时,检测系统兼容性,检测方法为局部生效拦截器并测试简单命令如cat、ls等。确认系统兼容无问题并运行良好后,解压探针包并安装文件到指定位置。
探针管理器1启动后与后端(例如,探针数据收集服务器)建立联系,初始化后同步黑名单、禁用名单、命名规则等配置信息。
探针管理器1定时扫描应用进程的信息,对于已识别的应用进程采集应用进程的信息(包括但不限于环境变量、命令行等),并对应用进程进行应用进程命名,通过辅助器2可以批量或单次对应用进程进行命名。
探针管理器1初始化成功后,可将拦截器5的Preload文件使用mount的形式挂载到预加载地址(/etc/ld.so.preload)6上,这种方式安全性更高,可以保证在重启后清空Preload文件,减少因为拦截器5造成的意外死机事故。
辅助器(AgentHelper)2,作为应用进程探针和探针管理器(OneAgent)1的通信桥梁,用于应用进程命名、状态同步、拉取配置等。辅助器2可以通过Socket和探针管理器1进行通信,获取禁用指令、配置等。辅助器2可以穿透LXC(Linux Container,简称为LXC)容器与宿主机上的探针管理器1进行通信。
在该示例中,辅助器2可以为探针和OneAgent提供应用进程命名服务,应用进程命名可以穿透LXC容器,读取命令行、配置文件、环境变量等,从中提取特征标识应用进程,可以保证重启后和重启前应用进程名称一致,从而保证配置的可达性。
探针启动单元(Agent Starter)31随应用进程4启动而启动,启动后调用辅助器(AgentHelper)2获取应用进程名及禁用配置,如果应用进程被标识为禁用则不加载性能监测单元(Agent Core)32,状态视为禁用状态。否则启动性能监测单元(Agent Core)32,状态为嵌码状态。
性能监测单元(Agent Core)32启动后与后端(例如,探针数据收集服务器)建立联系,发送应用的事务性能数据。同步嵌码功能及数据获取配置等。在OneAgent模式下,探针产生的文件均由OneAgent统一管理。
应用进程4启动时依据Linux系统特性自动读取/etc/ld.so.preload,初始化拦截器5拉起探针启动单元(Agent Starter)31。拦截器5从本地黑名单库7读取黑名单内容,检测黑名单,判断应用进程是否在黑名单中,如果在黑名单中则不启动探针(探针启动单元(Agent Starter)31和性能监测单元(Agent Core)32),未在黑名单中则修改应用进程4的启动参数附带探针(例如对java应用进程增加-javaagent)。
/etc/ld.so.preload和LD_PRELOAD属于同一个机制,皆有操作系统控制在应用进程启动时首先加载PRELOAD指定的动态库。
探针管理器(OneAgent)1初始化后同步黑名单到黑名单库7,黑名单库7供拦截器5单独使用,这样可以减少因为过多依赖带来的风险。
探针数据收集器8(Agent Data Collector),转发探针(性能监测单元(AgentCore)32)发来的数据,对部分数据进行加工,定时发送给后端数据收集器。
在该示例中,探针管理器(OneAgent)1存储在计算机操作系统的非临时数据存储中,通过网络与探针数据收集服务器建立连接,发送应用进程相关数据(包括但不限于应用进程名称、应用进程的环境变量、命令行等),接收控制数据(包括但不限于黑名单配置、禁用配置等)。
在该示例中,探针管理器(OneAgent)1负责挂载(Linux系统中的Mount命令,--bind参数可以挂载文件到另一个文件上,从而达到覆盖的效果,重启失效。)Preload文件到/etc/ld.so.preload,以便应用进程启动拉起应用探针。
探针(探针启动单元(Agent Starter)31、性能监测单元(Agent Core)32)存储在计算机操作系统的非临时数据存储中,探针随应用启动而启动,自动连接探针收集服务器建立连接,自动发送应用性数据能数据。探针启动后可以不受OneAgent约束,但应用探针产生的文件(包括但不限于日志、临时文件、缓存文件)由探针管理器(OneAgent)1统一管理(包括但不限于修改、删除、授权)。
在该示例中,对应用进程信息裁剪得到应用进程名称,便于重启后依然能标识应用进程及报表数据展示。其中,包括但不限于:从命令行中提取信息,命名应用进程;从命名行中提取路径信息,到路径下寻找相应的文件,提取内容命名应用进程;从应用进程环境变量中提取信息,命名应用进程;从应用进程的环境变量中提取路径信息,到路径下寻找相应的文件,提取内容命名应用进程;针对LXC(Linux Container)隔离的路径,以各种技术进入隔离的路径内寻找相应的文件,提取内容命名应用进程。
在该示例中,通过查看应用进程的文件引用,判断是否为嵌入探针或禁用探针,其中,嵌入状态,文件引用中包含探针启动单元(Agent Starter)31和性能监测单元(AgentCore)32;禁用状态,文件引用中有探针启动单元(Agent Starter)31,没有性能监测单元(Agent Core)32;待重启状态且不再黑名单中,文件引用中无探针启动单元(AgentStarter)31,无性能监测单元(Agent Core)32。
通过该示例,在计算机操作系统上启动OneAgent,对系统内所有识别的程序应用进程自动嵌码,无需人工干预,节省维护成本,有效避免错改漏改导致系统故障或应用错误。对应用进程进行命名可以保证每次重启都能针对这个应用进程拉取到和重启前的应用进程拉取到的配置信息一致,不用人工修改命令行或环境变量等添加特定的参数标识应用进程。
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图6所示。需要指出的是,图6仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如应用性能监测系统、应用性能监测方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如应用性能监测系统、应用性能监测方法的程序代码,以实现应用性能监测方法。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储应用性能监测系统、应用性能监测方法程序,被处理器执行时实现应用性能监测方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种应用性能监测系统,其特征在于,包括:
探针装置,包括:
性能监测模块,用于采集和发送性能数据;以及
探针启动模块,用于根据应用进程名称对应的禁用配置,确定是否启动所述性能监测模块,其中,如果应用进程名称被标识为禁用,不启动所述性能监测模块,所述探针装置进入禁用状态;否则启动所述性能检测模块,所述探针装置进入嵌入状态;
探针部署装置,包括:
进程命名模块,用于获取用于命名的特征信息,根据所述用于命名的特征信息确定应用进程的应用进程名称,其中,所述应用进程名称作为应用进程的唯一标识;
拦截器模块,用于挂载所述探针启动模块,以使所述探针启动模块响应于应用进程的启动而启动;
管理模块,用于获取所述进程命名模块确定得出的应用进程名称,并向服务器提供应用进程名称,从所述服务器获取应用进程名称对应的禁用配置,以及向所述探针启动模块提供应用进程名称对应的禁用配置;
其中,在所述禁用状态,文件引用包含所述探针启动模块但不包含所述性能监测模块;在所述嵌入状态,文件引用包含所述探针启动模块和所述性能监测模块。
2.根据权利要求1所述的应用性能监测系统,其特征在于,所述探针部署装置,还包括:辅助模块,用于应用进程与所述管理模块和所述进程命名模块之间的通信。
3.根据权利要求2所述的应用性能监测系统,其特征在于,所述探针启动模块,用于通过所述辅助模块与所述管理模块通信,以从所述管理模块获取应用进程名称对应的禁用配置;所述进程命名模块,用于响应于应用进程的启动,获取用于命名的特征信息,根据所述用于命名的特征信息确定应用进程的应用进程名称。
4.根据权利要求1至3中任一项所述的应用性能监测系统,其特征在于,所述管理模块,还用于向所述拦截器模块提供黑名单配置;所述拦截器模块,还用于判断应用进程是否在黑名单中,如果不在黑名单中,挂载所述探针启动模块,以使所述探针启动模块随应用进程启动。
5.根据权利要求1至3中任一项所述的应用性能监测系统,其特征在于,所述进程命名模块,
用于从应用进程的命令行中提取用于命名的特征信息;或者
用于从应用进程的命令行中提取路径信息,根据所述路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者
用于从应用进程的环境变量中提取用于命名的特征信息;或者
用于从应用进程的环境变量中提取路径信息,根据所述路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者
用于从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
6.根据权利要求1至3中任一项所述的应用性能监测系统,其特征在于,所述管理模块,还用于根据应用进程的文件引用判断探针的嵌入状态,其中,如果文件引用包含所述探针启动模块和所述性能监测模块,探针为嵌入状态;如果文件引用包含所述探针启动模块但不包含所述性能监测模块,探针为禁用状态。
7.一种应用性能监测方法,其特征在于,包括:
扫描应用进程的信息;
从应用进程的信息中提取用于命名的特征信息;
根据所述用于命名的特征信息确定应用进程的应用进程名称,其中,所述应用进程名称作为应用进程的唯一标识;
设置应用进程名称对应的禁用配置;
响应于应用进程的启动,启动探针的探针启动模块;
所述探针启动模块通过探针部署装置的进程命名模块获取应用进程的应用进程名称,并通过所述探针部署装置的管理模块从服务器获取应用进程名称对应的禁用配置;
所述探针启动模块根据所述应用进程名称对应的禁用配置判断是否启动探针的性能监测模块;
如果所述禁用配置为非禁用,启动所述性能监测模块,所述性能监测模块采集并发送应用进程的性能数据,探针进入嵌入状态,其中,在所述嵌入状态,文件引用包含所述探针启动模块和所述性能监测模块;
如果所述禁用配置为禁用,不启动所述性能监测模块,所述探针进入禁用状态,其中,在所述禁用状态,文件引用包含所述探针启动模块但不包含所述性能监测模块。
8.根据权利要求7所述的应用性能监测方法,其特征在于,从应用进程的信息中提取用于命名的特征信息,包括:
从应用进程的命令行中提取用于命名的特征信息;或者
从应用进程的命令行中提取路径信息,根据所述路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者
从应用进程的环境变量中提取用于命名的特征信息;或者
从应用进程的环境变量中提取路径信息,根据所述路径信息访问相应的应用进程文件,提取用于命名的特征信息;或者
从容器隔离的路径内访问相应的应用进程文件,提取用于命名的特征信息。
9.一种应用性能监测方法,其特征在于,包括:
响应于应用进程的启动,启动探针的探针启动模块;
所述探针启动模块通过探针部署装置的进程命名模块获取应用进程的应用进程名称,并通过所述探针部署装置的管理模块从服务器获取所述应用进程名称对应的禁用配置,其中,应用进程名称作为应用进程的唯一标识;
所述探针启动模块根据所述应用进程名称对应的禁用配置判断是否启动探针的性能监测模块;
如果所述禁用配置为非禁用,启动所述性能监测模块,所述性能监测模块采集并发送应用进程的性能数据,探针进入嵌入状态,其中,在所述嵌入状态,文件引用包含所述探针启动模块和所述性能监测模块;
如果所述禁用配置为禁用,不启动所述性能监测模块,所述探针进入禁用状态,其中,在所述禁用状态,文件引用包含所述探针启动模块但不包含所述性能监测模块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有探针启动程序,所述探针启动程序被处理器执行时实现如权利要求7至9任一项所述的应用性能监测方法的步骤。
CN202011040105.1A 2020-09-28 2020-09-28 一种应用性能监测方法、系统及存储介质 Active CN112148576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011040105.1A CN112148576B (zh) 2020-09-28 2020-09-28 一种应用性能监测方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011040105.1A CN112148576B (zh) 2020-09-28 2020-09-28 一种应用性能监测方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN112148576A CN112148576A (zh) 2020-12-29
CN112148576B true CN112148576B (zh) 2021-06-08

Family

ID=73894610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011040105.1A Active CN112148576B (zh) 2020-09-28 2020-09-28 一种应用性能监测方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN112148576B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980159A (zh) * 2005-12-08 2007-06-13 信息产业部电信传输研究所 网际协议网络端到端性能监测系统及方法
CN105229652A (zh) * 2013-03-28 2016-01-06 爱迪德技术有限公司 检测针对软件应用的利用
CN110472381A (zh) * 2019-07-31 2019-11-19 广州微算互联信息技术有限公司 基于安卓系统的root权限隐藏方法、系统及存储介质
CN110515806A (zh) * 2019-08-30 2019-11-29 北京博睿宏远数据科技股份有限公司 探针配置方法、装置、计算机设备及存储介质
CN111597099A (zh) * 2020-05-19 2020-08-28 山东汇贸电子口岸有限公司 一种监测部署于云平台的应用运行质量的无侵入仿真方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014004747A2 (en) * 2012-06-26 2014-01-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
CN106598790A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 一种服务器硬件故障检测方法及其装置和服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980159A (zh) * 2005-12-08 2007-06-13 信息产业部电信传输研究所 网际协议网络端到端性能监测系统及方法
CN105229652A (zh) * 2013-03-28 2016-01-06 爱迪德技术有限公司 检测针对软件应用的利用
CN110472381A (zh) * 2019-07-31 2019-11-19 广州微算互联信息技术有限公司 基于安卓系统的root权限隐藏方法、系统及存储介质
CN110515806A (zh) * 2019-08-30 2019-11-29 北京博睿宏远数据科技股份有限公司 探针配置方法、装置、计算机设备及存储介质
CN111597099A (zh) * 2020-05-19 2020-08-28 山东汇贸电子口岸有限公司 一种监测部署于云平台的应用运行质量的无侵入仿真方法

Also Published As

Publication number Publication date
CN112148576A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN103826215B (zh) 一种在终端设备上进行Root权限管理的方法和装置
CN110045991B (zh) 服务器的raid配置方法、装置、计算机设备和存储介质
CN109684155B (zh) 监控配置方法、装置、设备及可读存储介质
CN112615747B (zh) 一种网络设备自动部署配置的方法及装置
CN112596771A (zh) 一种不间断服务升级的方法及系统
CN111736876A (zh) 客户端更新控制方法、装置、存储介质及服务器
CN106897166A (zh) 一种移动终端及其修复方法
CN102073508A (zh) 一种终端及其软件升级方法和装置
CN101877655A (zh) 网络管理系统、网管服务器和方法
CN112148576B (zh) 一种应用性能监测方法、系统及存储介质
CN108595292B (zh) 一种系统的优化方法、移动终端及计算机存储介质
CN104111862A (zh) 云计算平台中获取虚拟机ip地址方法与系统
CN111625264A (zh) 一种多级管理系统的升级方法、装置、设备及介质
CN115437674A (zh) 一种固件升级方法、装置、介质及电子设备
EP4086756A1 (en) Method and apparatus for processing virtual machine component
CN108833128A (zh) 一种设备更新的方法
CN113656051A (zh) 一种安卓系统设备自动升级的方法
CN111092765B (zh) 智能驱动方法、系统、电子设备及可读存储介质
CN113204359A (zh) 一种服务器在线升级方法及装置
CN114546717A (zh) 安卓智能终端开机的方法、装置、智能终端和存储介质
CN113467801A (zh) 一种bmc固件应用更新方法、bmc、系统及存储介质
CN111008043A (zh) 一种云平台的服务器启动方法及终端
CN118467060B (zh) 基于sca及srtf分布式文件系统的组件加载系统及方法
CN111324384A (zh) 于预执行环境依装置消息选择开机图像文件的装置及方法
CN107844314B (zh) 一种升级Weblogic应用程序的方法及系统

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
GR01 Patent grant
GR01 Patent grant