CN114706734B - 业务应用的监控方法和监控系统 - Google Patents
业务应用的监控方法和监控系统 Download PDFInfo
- Publication number
- CN114706734B CN114706734B CN202210619130.8A CN202210619130A CN114706734B CN 114706734 B CN114706734 B CN 114706734B CN 202210619130 A CN202210619130 A CN 202210619130A CN 114706734 B CN114706734 B CN 114706734B
- Authority
- CN
- China
- Prior art keywords
- data acquisition
- code
- monitoring
- tangent point
- enhancement
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书实施例提供了一种业务应用的监控方法及系统。在该方法中,首先针对业务应用的当前监控要求,确定至少一个第一切点;第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点;针对业务应用的当前监控要求,得到数据采集增强代码;该数据采集增强代码用于采集所述业务应用的监控指标;在所述业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码;利用所述数据采集增强代码采集到的监控指标进行监控分析。本说明书实施例能够简化业务应用的监控过程,提高效率。
Description
技术领域
本说明书一个或多个实施例涉及网络信息技术,尤其涉及业务应用的监控方法和监控系统。
背景技术
随着互联网技术的发展,出现了越来越多的业务应用,通过各种业务应用能够实现各种功能。比如,通过刷脸支付这种业务应用,可以实现用户只需要刷脸就能完成购物付款。为了提供更好的服务,需要在业务应用的运行中进行监控,以便实现各种监控功能,比如及时发现故障或者进行数据统计等。
目前,为了对业务应用进行监控,通常需要对业务应用的程序代码进行修改,从而实现监控功能。
通过修改业务应用的程序代码来对业务应用进行监控的方法,其实现过程过于复杂,大大降低了用户的满意度并增加了实现的成本。
发明内容
本说明书一个或多个实施例描述了业务应用的监控方法和监控系统,能够简化业务应用的监控过程,提高效率。
根据第一方面,提供了一种业务应用的监控方法,其中,包括:
根据业务应用的当前监控要求,确定至少一个第一切点;所述第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点;
针对业务应用的当前监控要求,得到数据采集增强代码;该数据采集增强代码用于采集满足当前监控要求的监控指标;
在所述业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码;
得到数据采集增强代码采集到的监控指标;
利用所述数据采集增强代码采集到的监控指标进行监控分析。
其中,所述确定至少一个第一切点包括:从预先设置的切点列表中选择至少一个第一切点;
其中,切点列表包括:满足业务应用的各种监控要求的、可被注入业务应用的程序代码中的各个切点;
所述切点列表的结构为树形的目录结构;切点列表中的每一个切点表征:在从所述业务应用的程序代码中的类到方法再到注入位置的逐级的树形目录结构中,采样点的位置。
其中, 该方法进一步包括:根据业务应用的当前监控要求,生成切面编排逻辑;该切面编排逻辑包括:需要选择的切点信息、需要注入的数据采集增强代码的信息;
相应地,根据所述切面编排逻辑确定至少一个第一切点;
相应地,根据所述切面编排逻辑得到所述数据采集增强代码。
所述需要注入的数据采集增强代码的信息包括:数据采集模块包的版本信息、代码流程的编织方法;其中,每一个数据采集模块包用于实现对一个监控指标的采集;
所述根据所述切面编排逻辑得到所述数据采集增强代码,包括:
根据所述切面编排逻辑中的数据采集模块包的版本信息,从预先设置的对应各种监控要求的各种版本的数据采集模块包中拉取指定版本的数据采集模块包;
按照所述代码流程的编织方法,对拉取的数据采集模块包进行处理,形成数据采集增强代码;数据采集增强代码中包括至少一个增强代码块,每一个增强代码块对应一个第一切点;
所述在所述业务应用的程序代码中的第一切点的位置上注入数据采集增强代码,包括:在所述业务应用的程序代码中的每一个第一切点的位置上,注入与该第一切点对应的增强代码块。
所述对拉取的数据采集模块包进行处理,包括:协议适配、对拉取的数据采集模块包的代码块进行分割,分割成对应于各个第一切点的各个增强代码块。
其中, 该方法进一步包括:根据业务应用的当前监控要求,生成管控配置策略;
所述注入数据采集增强代码的步骤进一步包括:在被注入的数据采集增强代码中生效所述管控配置策略。
其中,所述管控配置策略包括:开关状态和/或变量的取值。
其中,利用所述数据采集增强代码采集到的监控指标进行监控分析,包括如下中的至少一项:
利用所述数据采集增强代码采集到的监控指标,分析所述业务应用的程序代码是否存在错误;
利用所述数据采集增强代码采集到的监控指标,分析是否发生对该业务应用的攻击行为;
利用所述数据采集增强代码采集到的监控指标,确定该业务应用的运行是否符合性能要求;
利用所述数据采集增强代码采集到的监控指标,确定针对该业务应用的统计数据。
根据第二方面,提供了一种业务应用的监控系统,包括:
控制装置,配置为针对业务应用的当前监控要求,确定至少一个第一切点;所述第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点;向切面底座模块提供用于生成数据采集增强代码的信息;得到数据采集增强代码采集到的监控指标;利用数据采集增强代码采集到的监控指标进行监控分析;
切面底座模块,配置为针对业务应用的当前监控要求,根据控制装置提供的用于生成数据采集增强代码的信息得到数据采集增强代码;该数据采集增强代码用于采集所述业务应用的监控指标;在业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码。
根据第三方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
在本说明书实施例提供的业务应用的监控方法及系统中,当需要针对一种业务应用进行监控时,不需要对业务应用的程序代码进行修改,而是根据当前的监控要求,确定出各个第一切点,并生成适用于当前的监控要求的数据采集增强代码,这样在每一个第一切点的位置处向业务应用的程序代码注入该数据采集增强代码之后,就可以实现监控功能,也就是说,业务应用的程序代码无需下线修改,无需进行代码修改后的测试、审批、恢复业务应用运行等全套流程。因此大大简化了业务应用的监控流程,减少了时间成本及人力成本,提高了效率。并且,每当需要执行一种新的监控功能或者监控功能的指标发生变化时,都无需对业务应用的程序代码进行修改,而只需要改变切点及数据采集增强代码,因此,灵活性强。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例所应用的系统架构的示意图。
图2是本说明书一个实施例中业务应用的监控方法的流程图。
图3是本说明书一个实施例中业务应用的监控系统的结构示意图。
图4是本说明书另一个实施例中业务应用的监控系统的结构示意图。
图5是本说明书一个实施例中利用业务应用的监控系统实现监控方法的示意图。
图6是本说明书一个实施例中利用业务应用的监控系统实现的监控方法的流程图。
具体实施方式
首先需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
如前所述,为了对业务应用进行监控,现有技术通常需要对业务应用的程序代码进行修改。首先,需要得到业务应用的原程序代码,并走研发流程,从而对该原程序代码进行修改,使得修改后的程序代码能完成相应的监控功能;修改完毕之后,还需要将修改后的程序代码视为新程序代码来执行一系列过程比如包括测试、审批、恢复业务应用的上线运行等全套流程。可见,现有技术对业务应用的监控方法过于复杂,大大增加了时间成本及人力成本。并且,每当需要执行一种新的监控功能或者监控功能的指标发生变化时,都需要重新对业务应用的程序代码执行上述的一系列过程,灵活性差。
基于此,在本说明书实施例中,考虑到切面即面向切面编程(AOP,Aspect-oriented Programming)技术能够实现在不修改源代码的情况下给程序动态添加功能,因此,提供了一种基于安全切面模块技术实现的业务应用的监控方法,从而简化监控过程,并提高灵活性。
下面结合附图,对本说明书提供的方案进行描述。
为了方便对本说明书提供的方法进行理解,首先对本说明书所涉及和适用的系统架构进行描述。如图1中所示,该系统架构中主要包括两个网络节点:业务应用方、监控方。
其中业务应用方是安装并执行业务应用的一方,比如,业务应用被使用在终端设备时,该业务应用方可以是终端设备;再如,业务应用被使用在网络中的一个服务器上时,该业务应用方可以是该服务器。监控方可以是控制执行业务应用的监控的一方,比如该监控方可以是服务器。
应该理解,图1中的业务应用方及监控方的数目仅仅是示意性的。根据实现需要,可以选择和布设任意数目。
图2是本说明书一个实施例中业务应用的监控方法的流程图。该方法的执行主体为业务应用的监控系统。该系统可以位于上述图1中所述的监控方中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图1,该方法包括:
步骤201:针对业务应用的当前监控要求,确定至少一个第一切点;所述第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点。
步骤203:针对业务应用的当前监控要求,得到数据采集增强代码;该数据采集增强代码用于采集满足当前监控要求的监控指标。
步骤205:在业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码。
步骤207:得到数据采集增强代码采集到的监控指标。
步骤209:利用数据采集增强代码采集到的监控指标进行监控分析。
可见,在上述图2所示的流程中,当需要针对一种业务应用进行监控时,不需要对业务应用的程序代码进行修改,而是根据当前的监控要求,确定出各个第一切点,并生成适用于当前的监控要求的数据采集增强代码,这样在每一个第一切点的位置处向业务应用的程序代码注入该数据采集增强代码之后,就可以实现监控功能,也就是说,业务应用的程序代码无需下线修改,无需进行代码修改后的测试、审批、恢复业务应用运行等全套流程。因此大大简化了业务应用的监控流程,减少了时间成本及人力成本,提高了效率。并且,每当需要执行一种新的监控功能或者监控功能的指标发生变化时,都无需对业务应用的程序代码进行修改,而只需要改变切点及数据采集增强代码,因此,灵活性强。
根据上述图2所示的流程,业务应用的程序代码无需修改,无需增加配置,正常运行,因此,对于业务应用的开发方来说,整个监控过程对业务应用是无感的,即业务应用的开发及运行过程都不会受到监控过程的影响。
下面结合具体的实施例对上述图2所示的步骤分别进行说明。
首先在步骤201中,针对业务应用的当前监控要求,确定至少一个第一切点;所述第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点。
在步骤201之前,针对一个业务应用,在本说明书实施例中可以预先列出所有可能的对应于该业务应用的程序代码的切点,并将该所有的切点存储在切点列表中。也就是说,切点列表包括:满足业务应用的各种监控要求的、可被注入业务应用的程序代码中的各个切点。
可以理解,切点可以被注入业务应用的程序代码中,一个切点对应的是一个采样点,体现了在业务应用的程序代码中的采样点的位置。比如业务应用的程序代码的第三行代码位置处,可以体现用户进入刷脸支付程序的起点,因此可以设置一个切点,从而得到一个采样点的数据,诸如得到业务应用的程序代码执行到该第三行代码时的时间戳。再如,业务应用的程序代码的第五行代码位置处,可以体现结束程序的时间,因此可以设置一个切点,从而得到一个采样点的数据,诸如得到业务应用的程序代码执行到该第五行代码时的时间戳。可见,可以预先确定能够体现业务应用在运行过程中的关键信息(比如时间、次数、场景、用户信息等)的程序代码的位置,比如程序代码的第1、4、5、9行等,在这些位置处均可以设计一个切点,不同的切点组合可以用于完成不同的监控要求,并将设置的各个切点保存在切点列表中。
可以看出,不同的切点体现了不同的关键指标在业务应用的程序代码中的获取位置,因此,在切点列表中可以尽可能多地包括适用于更多各种监控要求的切点。可以理解,业务应用的程序代码越复杂,业务应用对应的监控要求就越多,切点列表中的切点的数量就会越多。在实际的业务实现中,为了更好地提供监控服务,切点列表中的切点的数量往往是很大的。因此,为了更加便于记录及管理这些切点,在本说明书一个实施例中,可以将切点列表的结构设置为目录结构,就好比书的目录一样,按照类、方法、注入位置的三级目录结构设置,这样,在保存了一个切点后,就可以根据该目录结构确定该切点对应的业务应用的程序代码行的具体位置;也就是说,在切点列表中的每一个切点表征:在从业务应用的程序代码中的类到方法再到注入位置的逐级的树形目录结构中,采样点的位置。
上述目录结构形式的切点列表便于查找相应的切点,比如在增加、删除、修改一个切点时,可以非常方便地利用目录结构快速定位到一个切点。
在按照上述实施例的方法,比如按照树形的目录结构设置了切点列表之后,则可以利用该切点列表执行步骤201的处理。
在实际的业务实现中,对于一个业务应用的监控要求往往是会存在多种类型,比如对程序代码的运行是否正常的监控、业务应用的性能的监控、网络攻击监控等。针对不同的监控要求,对应的切点及需要注入的数据采集增强代码都是不同的。因此,在本步骤201中,当产生了针对业务应用的当前的监控要求后,可以从切点列表中选择满足该当前监控要求的至少一个切点,为便于描述,将被选择的切点记为第一切点。比如,当前的监控要求是监控支付宝刷脸这个业务应用的性能比如刷脸的耗时,因此,可以从切点列表中选择与刷脸耗时相关的切点,比如在支付宝刷脸的程序代码中,第一行程序代码对应了开启刷脸,因此,可以选择对应于该第一行程序代码的位置的切点1,第200行程序代码表示了刷脸支付成功,因此,可以选择对应于该第200行程序代码的位置的切点2,这样,切点1和切点2就是对应于当前监控要求的第一切点。
可以理解,对应于其他的监控要求,会选择出不同的切点。
接下来在步骤203中,针对业务应用的当前监控要求,得到数据采集增强代码;该数据采集增强代码用于采集业务应用的监控指标。
在本步骤203中,可以存在至少如下两种方式来得到用于采集监控指标的数据采集增强代码:
方式一:针对业务应用的当前监控要求,实时生成数据采集增强代码。
方式二:预先生成能够满足各种监控要求的各种数据采集模块包(一个数据采集模块包是能够采集一个监控指标的代码块),并存储于数据库中,步骤203中从该数据库中拉取满足当前监控要求的数据采集模块包并进而形成数据采集增强代码。
可以理解,该方式二无需实时生成数据采集增强代码,能够进一步简化对业务应用的监控流程,进一步提高效率。
当采用该方式二时,可以由管控平台根据业务应用的当前监控要求,生成切面编排逻辑;该切面编排逻辑包括:需要选择的切点信息、需要注入的数据采集增强代码的信息。该切面编排逻辑的作用就是告诉执行方如何选择切点,如何组装成需要注入的数据采集增强代码。举例说明,数据采集增强代码就好比是需要搭建的城堡,切面编排逻辑就好比是用积木搭建该城堡的图纸,按照类似“图纸”的切面编排逻辑,就可以在上述步骤201中从切点列表中选择出第一切点,并且,按照类似“图纸”的切面编排逻辑,就可以在本步骤203中从数据库中拉取满足当前监控要求的数据采集模块并进而形成数据采集增强代码。
在本说明书一个实施例中,可以在管控平台中预先维护一个数据采集模块版本列表,在该列表中记录每个版本的数据采集模块包的标识及该数据采集模块包可以完成的功能,这样,比如一个管控平台就可以从上述的切点列表及数据采集模块版本列表中分别选择,选择出适用于当前监控要求的第一切点及某版本的数据采集模块包,并形成切面编排逻辑。
可见,在切面编排逻辑中,需要注入的数据采集增强代码的信息可以包括:数据采集模块包的版本信息、代码流程的编织方法;其中,每一个数据采集模块包用于实现对一个监控指标的采集。相应地,在本说明书一个实施例中,按照切面编排逻辑从数据库中拉取满足当前监控要求的数据采集模块包并进而形成数据采集增强代码的实现过程可以包括:
步骤2031:根据切面编排逻辑中的数据采集模块包的版本信息,从数据库中拉取指定版本的数据采集模块包;
步骤2033:按照切面编排逻辑中的代码流程的编织方法,对拉取的数据采集模块包进行处理,形成数据采集增强代码;数据采集增强代码中包括至少一个增强代码块,每一个增强代码块对应一个第一切点。
本步骤2033中,对拉取的数据采集模块包进行处理形成数据采集增强代码的处理可以包括比如:协议适配(比如根据业务应用的程序代码的协议格式要求进行协议适配)、对拉取的数据采集模块包的代码块进行分割,分割成对应于各个第一切点的各个增强代码块。在后续过程中,在每一个第一切点位置处,业务应用的程序代码跳转执行一次对应该第一切点处的增强代码块的逻辑。
对应所有第一切点的所有增强代码块共同构成了数据采集增强代码。
如前所述,利用切面编排逻辑指示了满足当前监控要求的第一切点、需要的数据采集模块包的版本以及如何利用数据采集模块包形成数据采集增强代码。在实际的业务实现中,即使对应同一种的监控要求,在不同的场景,不同的时期也会存在不同的需求,这样数据采集增强代码中也会存在不同的开关,变量也会存在不同的取值,不同的开关状态以及不同的变量取值可以适用于不同的监控要求。因此,在本说明书一个实施例中,除了生成切面编排逻辑,还需要生成管控配置策略,通过该管控配置策略来指示数据采集增强代码的执行要求。
举例来说,比如,监控要求是监控业务应用中的响应时间,该业务应用的程序代码在代码的第2、3、7行涉及该响应时间,第2、3行涉及的都是开始时间、第7行涉及的是结束时间。相应地,数据采集模块包中针对该第2、3、7行都会存在对应的代码实现,从而实现采集功能。根据不同的监控要求,可以存在如下三种管控配置策略:第一种管控配置策略是,让第2行生效,第3行不生效,此时起止时间就是第2、7行程序代码执行时对应的时间差,可以监控到响应时间;第二种管控配置策略是,让第3行生效,第2行不生效,起止时间就是第3、7行程序代码执行时对应的时间差,可以监控到响应时间;第二种管控配置策略是,让第2、3行都生效,起止时间可以是第2、7行程序代码执行时对应的时间差以及第3、7行程序代码执行时对应的时间差的平均值,也可以监控到响应时间。
因此,需要通过管控配置策略指示数据采集增强代码的执行要求。
在本说明书实施例中,根据业务应用的当前监控要求,需要生成上述的切面编排逻辑以及管控配置策略,通过比如一个切面底座来执行切面编排逻辑以及管控配置策略,实现数据采集增强代码的生成及配置。
管控配置策略可以包括:开关状态和/或变量的取值。其中,开关状态用于说明诸如上述的代码行的生效及不生效。变量的取值比如可以决定数据采集增强代码所执行的分支,从而对应不同的监控指标的值。
接下来对于步骤205:在业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码。
如上述步骤2033所示,因为对拉取的数据采集模块包的代码块进行分割,分割成对应于各个第一切点的各个增强代码块,因此,在本步骤205中,在业务应用的程序代码中的每一个第一切点的位置上,注入与该第一切点对应的增强代码块。在业务应用的程序代码中的不同第一切点的位置上,注入的增强代码块不同,所有增强代码块共同完成数据采集增强代码的功能。
在执行本步骤205中,在注入数据采集增强代码之后,需要在被注入的数据采集增强代码中生效上述的管控配置策略,从而实现对数据采集增强代码的诸如开关状态及变量取值等的配置。
接下来对于步骤207:得到数据采集增强代码采集到的监控指标。
在注入切点以及数据采集增强代码之后,对于业务应用的程序代码而言是无感的,该业务应用的程序代码按照原有方式正常运行即可,每当运行到一个切点位置时,会跳转到该切点对应的增强代码块,运行该增强代码块的逻辑,从而得到关于监控指标的信息,在该增强代码块执行完毕后,会跳转回到业务应用的程序代码的切点位置处继续执行后续的程序代码。通过运行每一个切点对应的增强代码块的逻辑,则执行了完整的数据采集增强代码,数据采集增强代码采集到了满足当前监控要求的监控指标。比如监控指标可以是:某一个应用在预定时间内的执行次数如TPM分钟量级、应用开始的时间点及结束的时间点、异常错误数等。
接下来对于步骤209:利用数据采集增强代码采集到的监控指标进行监控分析。
对于一个业务应用的监控分析可以有多种类型,比如对程序代码的运行是否正常的监控分析、业务应用的性能的监控分析、网络攻击监控分析等。在本说明书实施例中,本步骤209的实现过程可以包括如下中的至少一项:
利用数据采集增强代码采集到的监控指标分析所述业务应用的程序代码是否存在错误;
利用数据采集增强代码采集到的监控指标分析是否发生对该业务应用的攻击行为;
利用数据采集增强代码采集到的监控指标确定该业务应用的运行是否符合性能要求;
利用数据采集增强代码采集到的监控指标确定该业务应用的统计数据。
在本步骤209中,可以将数据采集增强代码采集到的监控指标传递给监控系统,由监控系统做统计数据分析和实时监控大盘展示。
在本说明书实施例中,只要保证注入点的执行逻辑足够简单并且耗时足够小,业务应用的程序代码跳转执行每一个增强代码块的运行时间就可以忽略不计。
在本说明书实施例中,通过切面来解决数据采集问题,再结合监控系统,可以实现实时的监控大盘展示和后期的统计数据分析。
在本说明书的一个实施例中,提供了一种业务应用的监控系统,参见图3,该系统包括:
控制装置301,配置为针对业务应用的当前监控要求,确定至少一个第一切点;所述第一切点为:满足当前监控要求的、需要注入业务应用的程序代码中的切点;向切面底座模块302提供用于生成数据采集增强代码的信息;得到数据采集增强代码采集到的监控指标;利用数据采集增强代码采集到的监控指标进行监控分析;
切面底座模块302,配置为针对业务应用的当前监控要求,根据控制装置301提供的用于生成数据采集增强代码的信息得到数据采集增强代码;该数据采集增强代码用于采集所述业务应用的监控指标;在业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码。
在本说明书装置的一个实施例中,控制装置301被配置为执行:从预先设置的切点列表中选择至少一个第一切点;
其中,切点列表包括:满足业务应用的各种监控要求的、可被注入业务应用的程序代码中的各个切点;
切点列表的结构为树形的目录结构;切点列表中的每一个切点表征:在从所述业务应用的程序代码中的类到方法再到注入位置的逐级的树形目录结构中,采样点的位置。
在本说明书装置的一个实施例中,参见图4,控制装置301中可以包括管控平台3011,该管控平台3011被配置为执行:根据业务应用的当前监控要求,生成切面编排逻辑;该切面编排逻辑包括:需要选择的切点信息、需要注入的数据采集增强代码的信息;管控平台3011将切面编排逻辑下发给切面底座模块302;
相应地,切面底座模块302被配置为执行:根据所述切面编排逻辑确定至少一个第一切点,并根据所述切面编排逻辑得到所述数据采集增强代码。
在本说明书装置的一个实施例中,管控平台3011中维护有各种版本的各种数据采集模块包;管控平台3011生成的需要注入的数据采集增强代码的信息包括:数据采集模块包的版本信息、代码流程的编织方法;其中,每一个数据采集模块包用于实现对一个监控指标的采集;
相应地,切面底座模块302被配置为执行:
根据切面编排逻辑中的数据采集模块包的版本信息,从预先设置的对应各种监控要求的各种版本的数据采集模块包中拉取指定版本的数据采集模块包;
按照所述代码流程的编织方法,对拉取的数据采集模块包进行处理,形成数据采集增强代码;数据采集增强代码中包括至少一个增强代码块,每一个增强代码块对应一个第一切点;
在业务应用的程序代码中的每一个第一切点的位置上,注入与该第一切点对应的增强代码块。
在本说明书装置的一个实施例中,切面底座模块302在形成数据采集增强代码时被配置为执行:协议适配、对拉取的数据采集模块包的代码块进行分割,分割成对应于各个第一切点的各个增强代码块。
在本说明书装置的一个实施例中,参见图4,控制装置301中可以包括管控平台3011,该管控平台3011被配置为执行:根据业务应用的当前监控要求,生成管控配置策略,将该管控配置策略下发给切面底座模块302;
相应地,切面底座模块302在注入数据采集增强代码之后,进一步在被注入的数据采集增强代码中生效管控配置策略。
上述管控配置策略包括:开关状态和/或变量的取值。
在本说明书装置的一个实施例中,参见图4,控制装置301中可以包括监控系统3012,监控系统3012被配置为执行:
利用数据采集增强代码采集到的监控指标分析所述业务应用的程序代码是否存在错误;
利用数据采集增强代码采集到的监控指标分析是否发生对该业务应用的攻击行为;
利用数据采集增强代码采集到的监控指标确定该业务应用的运行是否符合性能要求;
利用数据采集增强代码采集到的监控指标确定该业务应用的统计数据。
上述图4只是一种较佳的装置的实施例的结构,在实际的业务实现中,控制装置301中也可以有其他的组成方式,比如,控制装置301中只包括管控平台3011或者只包括监控系统3012,再如,控制装置301中除了包括管控平台3011及监控系统3012之外,还包括存储各种版本的数据采集模块包的数据库。
结合图5及图6,说明在本说明书一个实施例中,利用业务应用的监控系统实现的监控方法,包括:
步骤601:在管控平台3011中维护有切点列表及数据采集模块版本列表,管控平台3011生成切面编排逻辑以及管控配置策略,进行管控下发,即,将切面编排逻辑以及管控配置策略下发给切面底座模块302。
步骤603:切面底座模块302根据接收到的切面编排逻辑以及管控配置策略得到数据采集增强代码,执行代码注入(注入到业务应用的程序代码中的切点位置处)以及在注入的代码中进行管控配置策略的配置生效。
步骤605:业务应用的程序代码每当执行到第一切点位置时,会跳转执行该第一切点对应的数据采集增强代码中的增强代码块;
步骤607:数据采集增强代码采集到监控指标,将监控指标发送给监控系统3012;
步骤609:监控系统3012根据接收到的监控指标进行监控分析,比如进行实时大盘展示以及统计数据分析。
本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置、系统内的各模块之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (8)
1.业务应用的监控方法,其中,包括:
根据业务应用的当前监控要求,确定至少一个第一切点;
针对业务应用的当前监控要求,得到数据采集增强代码;该数据采集增强代码用于采集满足当前监控要求的监控指标;
在所述业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码;
得到数据采集增强代码采集到的监控指标;
利用所述数据采集增强代码采集到的监控指标进行监控分析;
该方法进一步包括:根据业务应用的当前监控要求,生成切面编排逻辑;该切面编排逻辑包括:需要选择的切点信息、需要注入的数据采集增强代码的信息;
相应地,根据所述切面编排逻辑确定至少一个第一切点;
相应地,根据所述切面编排逻辑得到所述数据采集增强代码;
所述需要注入的数据采集增强代码的信息包括:数据采集模块包的版本信息、代码流程的编织方法;其中,每一个数据采集模块包用于实现对一个监控指标的采集;
所述根据所述切面编排逻辑得到所述数据采集增强代码,包括:
根据所述切面编排逻辑中的数据采集模块包的版本信息,从预先设置的对应各种监控要求的各种版本的数据采集模块包中拉取指定版本的数据采集模块;
按照所述代码流程的编织方法,对拉取的数据采集模块包进行处理,形成数据采集增强代码;数据采集增强代码中包括至少一个增强代码块,每一个增强代码块对应一个第一切点;
所述在所述业务应用的程序代码中的第一切点的位置上注入数据采集增强代码,包括:在所述业务应用的程序代码中的每一个第一切点的位置上,注入与该第一切点对应的增强代码块。
2.根据权利要求1所述的方法,其中,所述确定至少一个第一切点包括:从预先设置的切点列表中选择至少一个第一切点;
其中,切点列表包括:满足业务应用的各种监控要求的、可被注入业务应用的程序代码中的各个切点;
所述切点列表的结构为树形的目录结构;切点列表中的每一个切点表征:在从所述业务应用的程序代码中的类到方法再到注入位置的逐级的树形目录结构中,采样点的位置。
3.根据权利要求1所述的方法,所述对拉取的数据采集模块包进行处理,包括:协议适配、对拉取的数据采集模块包的代码块进行分割,分割成对应于各个第一切点的各个增强代码块。
4.根据权利要求1所述的方法,其中,该方法进一步包括:根据业务应用的当前监控要求,生成管控配置策略;
所述注入数据采集增强代码的步骤进一步包括:在被注入的数据采集增强代码中生效所述管控配置策略。
5.根据权利要求4所述的方法,其中,所述管控配置策略包括:开关状态和/或变量的取值。
6.根据权利要求1所述的方法,其中,利用所述数据采集增强代码采集到的监控指标进行监控分析,包括如下中的至少一项:
利用所述数据采集增强代码采集到的监控指标,分析所述业务应用的程序代码是否存在错误;
利用所述数据采集增强代码采集到的监控指标,分析是否发生对该业务应用的攻击行为;
利用所述数据采集增强代码采集到的监控指标,确定该业务应用的运行是否符合性能要求;
利用所述数据采集增强代码采集到的监控指标,确定针对该业务应用的统计数据。
7.业务应用的监控系统,包括:
控制装置,配置为针对业务应用的当前监控要求,确定至少一个第一切点;向切面底座模块提供用于生成数据采集增强代码的信息;得到数据采集增强代码采集到的监控指标;利用数据采集增强代码采集到的监控指标进行监控分析;
切面底座模块,配置为针对业务应用的当前监控要求,根据控制装置提供的用于生成数据采集增强代码的信息得到数据采集增强代码;该数据采集增强代码用于采集所述业务应用的监控指标;在业务应用的程序代码中的第一切点的位置上,注入数据采集增强代码;
其中,控制装置包括管控平台,该管控平台被配置为执行:根据业务应用的当前监控要求,生成切面编排逻辑;该切面编排逻辑包括:需要选择的切点信息、需要注入的数据采集增强代码的信息;管控平台将切面编排逻辑下发给切面底座模块;
相应地,切面底座模块被配置为执行:根据所述切面编排逻辑确定至少一个第一切点,并根据所述切面编排逻辑得到所述数据采集增强代码;
管控平台中维护有各种版本的各种数据采集模块包;管控平台生成的需要注入的数据采集增强代码的信息包括:数据采集模块包的版本信息、代码流程的编织方法;其中,每一个数据采集模块包用于实现对一个监控指标的采集;
相应地,切面底座模块被配置为执行:
根据切面编排逻辑中的数据采集模块包的版本信息,从预先设置的对应各种监控要求的各种版本的数据采集模块包中拉取指定版本的数据采集模块包;
按照所述代码流程的编织方法,对拉取的数据采集模块包进行处理,形成数据采集增强代码;数据采集增强代码中包括至少一个增强代码块,每一个增强代码块对应一个第一切点;
在业务应用的程序代码中的每一个第一切点的位置上,注入与该第一切点对应的增强代码块。
8.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210619130.8A CN114706734B (zh) | 2022-06-02 | 2022-06-02 | 业务应用的监控方法和监控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210619130.8A CN114706734B (zh) | 2022-06-02 | 2022-06-02 | 业务应用的监控方法和监控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706734A CN114706734A (zh) | 2022-07-05 |
CN114706734B true CN114706734B (zh) | 2022-09-20 |
Family
ID=82177624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210619130.8A Active CN114706734B (zh) | 2022-06-02 | 2022-06-02 | 业务应用的监控方法和监控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706734B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861230B (zh) * | 2022-07-07 | 2022-11-01 | 支付宝(杭州)信息技术有限公司 | 终端设备中的隐私防护方法和装置 |
CN114995983B (zh) * | 2022-07-11 | 2022-12-13 | 支付宝(杭州)信息技术有限公司 | 数据流转链路的获取方法和装置 |
CN115277142A (zh) * | 2022-07-18 | 2022-11-01 | 支付宝(杭州)信息技术有限公司 | 一种安全防护方法、装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471768A (zh) * | 2017-09-08 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 业务问题的监控方法、装置以及电子设备 |
CN113849363A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种业务监控方法及相关装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100409626C (zh) * | 2006-10-09 | 2008-08-06 | 西安交通大学 | 基于aop技术的大规模集群管理监控系统中的报警方法 |
US8935670B2 (en) * | 2010-10-25 | 2015-01-13 | Sap Se | System and method for business function reversibility |
CN102831043B (zh) * | 2011-06-17 | 2015-05-20 | 阿里巴巴集团控股有限公司 | 应用程序监控方法和装置 |
CN106844153B (zh) * | 2017-01-20 | 2020-02-11 | 北京奇虎科技有限公司 | 应用程序运行监控方法、装置以及终端 |
CN112363902A (zh) * | 2020-11-27 | 2021-02-12 | 平安普惠企业管理有限公司 | 业务流程的监控方法、装置、计算机设备及存储介质 |
CN112422349B (zh) * | 2020-12-03 | 2023-04-07 | 广州瀚信通信科技股份有限公司 | 面向nfv的网管系统、方法、设备及介质 |
CN113419935B (zh) * | 2021-06-22 | 2023-10-20 | 康键信息技术(深圳)有限公司 | 移动端性能监控方法、装置、设备及存储介质 |
CN113778808A (zh) * | 2021-09-18 | 2021-12-10 | 上海中通吉网络技术有限公司 | 服务端应用的监控方法 |
-
2022
- 2022-06-02 CN CN202210619130.8A patent/CN114706734B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471768A (zh) * | 2017-09-08 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 业务问题的监控方法、装置以及电子设备 |
CN113849363A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种业务监控方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114706734A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114706734B (zh) | 业务应用的监控方法和监控系统 | |
CN110928772B (zh) | 一种测试方法及装置 | |
CN109299150B (zh) | 一种可配置多数据源适配规则引擎解决方法 | |
CN103049385B (zh) | 一种云环境下的php代码调试方法及系统 | |
CN111008154B (zh) | 一种基于强化学习的Android应用自动测试方法及系统 | |
CN110061910A (zh) | 一种语音短消息的处理方法、设备及介质 | |
Mantel et al. | A Generic Approach to the Security of Multi-Threaded Programs. | |
CN111339118A (zh) | 基于Kubernetes的资源变更历史记录方法及装置 | |
CN115599347A (zh) | 一种自动化代码开发实现方法和系统 | |
US20100218202A1 (en) | Method and Apparatus for Case-Based Service Composition | |
CN112685270A (zh) | 一种系统监控日志的采集方法、装置、电子设备及介质 | |
CN114861230B (zh) | 终端设备中的隐私防护方法和装置 | |
Mirbel et al. | Checking the temporal integrity of interactive multimedia documents | |
CN109389271B (zh) | 应用性能管理方法及系统 | |
CN113254315B (zh) | 埋点信息的上报方法、埋点方法、装置、介质、电子设备 | |
CN115658697A (zh) | 一种索引重建方法、装置、设备及存储介质 | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN111338609B (zh) | 信息获取方法、装置、存储介质及终端 | |
CN110738384B (zh) | 事件序列的校验方法及系统 | |
CN110413518A (zh) | 控件对象库的生成方法及生成装置和计算机可读存储介质 | |
CN109684158A (zh) | 分布式协调系统的状态监控方法、装置、设备及存储介质 | |
CN109871231B (zh) | 一种代码共享方法及系统 | |
CN108536507A (zh) | 一种图形应用文本化识别方法及系统 | |
CN114995983B (zh) | 数据流转链路的获取方法和装置 | |
Vasilevskaya et al. | Support for cross-domain composition of embedded systems using MARTE models |
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 |