CN113888311A - 风险预警方法、装置、计算机设备和计算机可读存储介质 - Google Patents
风险预警方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113888311A CN113888311A CN202111198098.2A CN202111198098A CN113888311A CN 113888311 A CN113888311 A CN 113888311A CN 202111198098 A CN202111198098 A CN 202111198098A CN 113888311 A CN113888311 A CN 113888311A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- calling
- time period
- preset time
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000007246 mechanism Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 90
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010792 warming Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种风险预警方法、装置、计算机设备和存储介质。上述方法包括:在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。上述风险预警***通过目标应用的日志文件来获取目标业务在预设时间周期内的调用信息,进而确定目标业务的风险等级。因此,上述方法不需要通过人工介入的方式修改目标应用的底层程序代码,进而对目标应用不会造成应用侵入性问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种风险预警方法、装置、计算机设备和计算机可读存储介质。
背景技术
企业活动作为集合经济、科学、技术、管理、组织等各方面因素的综合性社会活动,各因素存在不确定性,也就意味着各方面存在着风险。例如,对于金融行业以及电信行业来说,任何一个不可预知的风险都会带给企业不可估量的损失。因此,需要通过风险预警***对风险进行预判,进而降低风险带来的损失。
现有的风险预警***通常是针对特定的应用,该风险预警***与对应的应用是高度耦合的,因此,现有的风险预警***不具备通用性,比如说对于银行类应用有对应的风险预警***,该风险预警***不能应用于购物类应用。如果需要将银行类应用的风险预警***应用于购物类应用时,需要通过人工介入的方式修改购物类应用的底层程序代码,使得修改后的购物类应用能够与银行类应用对应的风险预警***相适配。但是,由于对该购物类应用的底层程序代码进行了修改,所以又会出现应用侵入性问题。
现有方法中,将同一个风险预警***与多个不同应用进行适配以进行风险预警时,存在应用侵入性问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够风险预警***通用性的风险预警方法、装置、计算机设备和计算机可读存储介质。
一种风险预警方法,所述方法包括:
在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;
针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,根据所述业务对应的日志消息计算所述业务在所述预设时间周期内的调用信息;
从各所述业务中确定所述目标业务,根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警。
在其中一个实施例中,所述在预设时间周期内,获取目标应用执行不同业务所生成的日志文件,包括:
在所述预设时间周期内,采用Java类加载机制对所述目标应用中的不同业务进行类加载,获取所述目标应用执行所述不同业务所生成的日志文件。
在其中一个实施例中,所述调用信息包括调用次数;所述根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警,包括:
根据所述目标业务在所述预设时间周期内的目标调用次数及所述目标应用中各所述业务在所述预设时间周期内对应的第一调用次数,计算所述目标业务的调用特征值;
根据所述调用特征值以及区间模型,计算所述目标业务在所述预设时间周期内的风险等级;所述区间模型用于表征所述调用特征值与所述风险等级之间的关系。
在其中一个实施例中,所述调用特征值包括目标占比;所述计算所述目标业务的调用特征值,包括:
计算所述目标调用次数在所述第一调用次数之和中的占比,生成目标占比。
在其中一个实施例中,所述区间模型包括多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系;所述根据所述调用特征值以及区间模型,计算所述目标业务在所述预设时间周期内的风险等级,包括:
从所述多个调用特征值对应的区间中,确定与所述目标业务的调用特征值对应的目标区间;
从多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系中,获取与所述目标区间对应的风险等级,作为所述目标业务在所述预设时间周期内的风险等级。
在其中一个实施例中,上述风险预警方法,还包括:
获取所述目标业务在所述预设时间周期内的实际风险等级;
判断所述目标业务在所述预设时间周期内的风险等级与所述目标业务在所述预设时间周期内的实际风险等级是否一致;
若否,则对所述区间模型中多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系进行动态调整。
在其中一个实施例中,所述针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,包括:
为所述目标应用中的各所述业务添加标识信息,所述标识信息用于在所述目标应用中确定所述业务;
根据所述业务的标识信息,从所述日志文件中获取与所述业务对应的日志消息。
一种风险预警装置,所述装置包括:
日志文件获取模块,用于在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;
调用信息生成模块,用于针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,根据所述业务对应的日志消息计算所述业务在所述预设时间周期内的调用信息;
风险预警模块,用于从各所述业务中确定所述目标业务,根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上方法的步骤。
上述风险预警方法、装置、计算机设备和存储介质,应用环境包括风险预警***、应用以及服务器,风险预警***以及应用分别运行在服务器上。上述风险预警方法包括:风险预警***首先在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;然后,针对目标应用中的各业务,风险预警***从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;最后,风险预警***从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。上述风险预警***通过目标应用的日志文件,来获取目标业务在预设时间周期内的调用信息,进而通过目标业务的调用信息来确定目标业务的风险等级。因此,上述风险预警***不需要通过人工介入的方式修改目标应用的底层程序代码,进而对目标应用不会造成应用侵入性问题。故而,该风险预警***可以与不同的应用进行适配以进行风险预警。
附图说明
图1为一个实施例中风险预警方法的应用环境图;
图2为一个实施例中风险预警方法的流程示意图;
图3为一个实施例中根据目标业务的调用信息对目标业务进行风险预警步骤的流程示意图;
图4为一个实施例中根据调用特征值以及区间模型计算目标业务在预设时间周期内的风险等级步骤的流程示意图;
图5为另一个实施例中风险预警方法的流程示意图;
图6为一个实施例中从日志文件中获取与业务对应的日志消息步骤的流程示意图;
图7为一个具体实施例中风险预警方法的流程示意图;
图8为一个具体实施例中目标业务的调用权重变化示意图;
图9为一个具体实施例中函数动态区间模型示意图;
图10为一个实施例中风险预警装置的结构框图;
图11为一个实施例中风险预警执行模块的结构框图;
图12为一个实施例中区间模型调整模块的结构框图;
图13为一个实施例中调用信息生成模块的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的风险预警方法,可以应用于如图1所示的应用环境中。其中,终端120通过网络与服务器140进行通信,目标应用142以及风险预警***144分别部署在服务器140中。其中,终端120可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器140可以用独立的服务器或者是多个服务器组成的服务器集群来实现,目标应用142包括多个业务,目标业务为风险预警***144需进行风险监控的业务,其中,目标业务可以为多个。
具体的,如图1所示,首先,风险预警***144在预设时间周期内,获取目标应用142执行不同业务所生成的日志文件;然后,针对目标应用中的各业务,风险预警***144从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;最后,风险预警***144从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警,风险预警***144将风险预警信息通过网络发送至终端120中,使用人员可以通过终端120接收到风险预警***发送的风险预警信息,可以对目标业务采取相应的规避手段进而对风险进行管控。
在一个实施例中,如图2所示,提供了一种风险预警方法,以该方法应用于图1中的应用环境为例进行说明,包括步骤220至步骤260:
步骤220、在预设时间周期内,获取目标应用执行不同业务所生成的日志文件。
其中,预设时间周期为风险预警***对目标应用进行监控的时间段,比如,预设时间周期可以为“8:00-17:00”、“12:00-13:00”、“18:00-23:00”等。当预设时间周期为“8:00-17:00”时,风险预警***在当前时间处于“8:00-17:00”时间段时,开始对目标应用进行监控,对于当前时间不位于“8:00-17:00”时间段时,风险预警***不会对目标应用进行监控。
其中,应用可以理解为满足用户不同领域、不同问题的需求而提供的应用软件,而应用软件可以理解为一个程序的集合。进一步的,应用包括多个业务,每个业务可以满足用户在该领域下不同问题的需求。比如,针对于银行类应用,可以包括本或外币结算业务、银行卡业务、信用证业务、备用信用证业务、票据担保业务、贷款承诺业务、衍生金融工具业务、代理业务、咨询顾问业务、涵盖结算业务、代理业务、担保业务、信托业务、租赁业务、融资业务、信息咨询业务、衍生金融工具交易业务等。针对应用中的每个业务,在底层代码的实现中对应了具体的类,也就是说,可以将一个应用理解为多个类的集合。
其中,日志文件记录了目标应用中各个业务的日志信息,上述日志文件以文件的形式存储在一个具体的路径中,比如上述路径可以为“D:\Software\目标应用\*.log”,上述路径表示在D盘中的Software文件夹中具有目标应用文件夹,在上述目标应用文件夹中存储有后缀名为.log的日志文件。上述日志信息包括但不限于各个业务被调用时的标识信息、各个业务开始执行时的开始时间信息、各个业务执行结束时的结束时间信息、各个业务执行时对服务器中CPU或内存的资源占有率信息等,本申请对此不作限定。
可选的,在预设时间周期内,风险预警***获取目标应用的存储路径,上述目标应用的存储路径为使用人员输入风险预警***的参数,通过上述存储路径,风险预警***可以获取目标应用执行不同业务所生成的日志文件。
步骤240、针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息。
其中,日志信息包括但不限于业务被调用时的标识信息、业务开始执行时的开始时间信息、业务执行结束时的结束时间信息、业务执行时对服务器中CPU或内存的资源占有率信息、业务执行过程中向用户发送数据的结果信息等,本申请对此不作限定。下面对上述提到的日志信息进行简单的介绍:
(1)、业务被调用时的标识信息用于基于该唯一标识信息在目标应用中识别对应的业务,比如,目标应用包括5个业务类型,具体为:业务A、业务B、业务C、业务D以及业务E,业务A在底层代码中包括对应的类函数A、业务B在底层代码中包括对应的类函数B、业务C在底层代码中包括对应的类函数C、业务D在底层代码中包括对应的类函数D、以及业务E在底层代码中包括对应的类函数E。为了在目标应用的日志文件中识别出对应的业务类型,可以在业务或类函数被调用时在日志文件中输出一段与该业务或类函数对应的输出内容。比如:当类函数A被调用时,在日志文件中输出“functionA()is called,print xxx”,当类函数B被调用时,在日志文件中输出“functionB()is called,print xxx”,当类函数C被调用时,在日志文件中输出“functionC()is called,print xxx”,当类函数D被调用时,在日志文件中输出“functionD()is called,print xxx”,以及当类函数E被调用时,在日志文件中输出“functionE()is called,print xxx”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时间周期内的调用情况。
(2)、业务开始执行时的开始时间信息用于表征用户向服务器发送业务请求指令后,服务器依据用户发送的业务请求指令开始执行目标应用中对应的业务的时间。比如,用户向目标应用所在的服务器发送业务A请求指令,上述服务器在接受到业务A请求指令后,开始执行目标应用中对应的业务A,也就是调用业务A对应的类函数A,上述时间为“2021年9月23日8点13分27秒”,则在日志文件中输出“类函数A的开始时间为:2021年9月23日8点13分27秒”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定业务或类函数在预设时周期内开始执行时的开始时间信息。
(3)、业务执行结束时的结束时间信息用于表征用户向服务器发送业务请求指令后,服务器依据用户发送的业务请求指令开始执行目标应用中对应的业务,该业务执行结束的时间。比如,用户向目标应用所在的服务器发送业务A请求指令,上述服务器在接受到业务A请求指令后,开始执行目标应用中对应的业务A,也就是调用业务A对应的类函数A,业务A执行结束的时间为“2021年9月23日10点35分12秒”,则在日志文件中输出“类函数A的结束时间为:2021年9月23日10点35分12秒”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定业务或类函数在预设时周期内执行结束时的结束时间信息。
(4)、业务执行时对服务器中CPU或内存的资源占有率信息用于表征业务在执行的过程中对服务器中CPU或内存的资源占有率。比如,业务A在执行过程中,也就是类函数A被调用的过程中,产生的运行数据占据服务器的CPU或者内存20%的资源,则在日志文件中输出“类函数A的资源占有率为20%”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定业务或类函数在预设时周期内执行时对服务器中CPU或内存的资源占有率信息。
(5)业务执行过程中向用户发送数据的结果信息用于表征服务器在执行目标应用的业务时,将向用户发送数据成功的数量以及向用户发送数据失败的数量。比如,用户向服务器发送业务A请求指令后,服务器开始执行目标企业中的业务A,并向用户发送相应的数据,但是服务器在向用户发送数据的过程中,不能保证所有的数据是完好无损的发送出去,可能会有一部分数据没有发送成功,因此,服务器开始执行目标企业中的业务A的过程中,可以将向用户发送数据成功的数量以及向用户发送数据失败的数量写入日志文件中,比如。若服务器向用户发送数据的过程中共有1000个字节发送成功,共有20个字节发送失败,则日志文件中输出“1000字节发送成功,20字节发送失败”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定业务执行过程中向用户发送数据的结果信息。
其中,调用信息包括但不限于业务的调用次数、业务的调用权重、业务的交易响应时间、业务的每秒交易数、执行业务时服务器资源占用率、业务的网络吞吐量等,本申请对此不作限定。下面对上述提到的调用信息进行简单的介绍:
(1)、业务的调用次数为在预设时间周期内各个业务执行的次数,上述各个业务的调用次数在底层代码中具体体现为,各个业务对应的类在预设时间周期内被调用的次数。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时周期内的调用次数。比如,目标应用包括3个业务类型,具体为:业务A、业务B以及业务C,业务A在底层代码中包括对应的类函数A、业务B在底层代码中包括对应的类函数B以及业务C在底层代码中包括对应的类函数C。规定:当类函数A被调用时,在日志文件中输出“functionA()is called,print xxx”,当类函数B被调用时,在日志文件中输出“functionB()is called,print xxx”,当类函数C被调用时,在日志文件中输出“functionC()is called,print xxx”。若规定:预设时间周期为“8:00-17:00”,在当前时间处于“8:00-17:00”时间段时,风险预警***实时读取目标应用对应的日志文件,获取日志文件中业务A、业务B以及业务C的调用次数,比如,若日志文件中“functionA()iscalled,print xxx”出现了100次,“functionB()is called,print xxx”出现了300次,“functionC()is called,print xxx”出现了200次,则,风险预警***获取业务A在8:00-17:00时间段内的调用次数为100次、业务B在8:00-17:00时间段内的调用次数为300次以及业务C在8:00-17:00时间段内的调用次数为200次。
(2)、业务的调用权重为业务的调用次数与所有业务的调用次数的占比,上述业务的调用权重在底层代码中具体体现为,在预设时间周期内各个业务对应的类的调用次数与所有业务对应的类的调用次数的占比。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时周期内的调用权重。比如,基于以上所提的例子,在预设时间周期“8:00-17:00”内,若日志文件中“functionA()is called,printxxx”出现了100次,“functionB()is called,print xxx”出现了300次,“functionC()iscalled,print xxx”出现了200次,那么业务A的调用权重为业务A的调用次数与业务A、业务B以及业务C的调用次数之和的占比,也就是说,风险预警***获取业务A在8:00-17:00时间段内的调用权重为1/6、业务B在8:00-17:00时间段内的调用权重为1/2以及业务C在8:00-17:00时间段内的调用权重1/3。
(3)业务的交易响应时间为服务器在接收到用户发送的业务请求信息后,等待对应的业务被执行,中间的等待时间为业务的交易响应时间。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时周期内开始执行时的开始时间信息,随后风险预警***通过用户向服务器发送业务请求信息的时间信息以及该业务开始执行时的开始时间信息,进而获得业务的交易响应时间。比如,用户向目标应用所在的服务器发送业务A请求指令的时间为“2021年9月23日8点13分25秒”,上述服务器在接受到业务A请求指令后,开始执行目标应用中对应的业务A,也就是调用业务A对应的类函数A,上述时间为“2021年9月23日8点13分27秒”,则在日志文件中输出“类函数A的开始时间为:2021年9月23日8点13分27秒,风险预警***可以通过日志文件中记录的业务A开始执行时的开始时间信息“2021年9月23日8点13分27秒”以及用户向目标应用所在的服务器发送业务A请求指令的时间“2021年9月23日8点13分25秒”,可以得到业务A的响应时间为2秒。
(4)业务的每秒交易数为业务在预设时间周期内,业务每秒被执行的次数,上述业务的每秒交易数在底层代码中具体体现为,在预设时间周期内业务对应的类每秒被调用的次数。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时周期内的每秒交易数。比如,基于以上所提的例子,在预设时间周期“8:00-17:00”内,若在9:00时刻时,日志文件中“functionA()is called,print xxx”出现了20次,“functionB()is called,print xxx”出现了30次,“functionC()is called,printxxx”出现了10次,风险预警***获取业务A在9:00时刻的每秒交易数为20、业务B在9:00时刻的每秒交易数为30以及业务C在9:00时刻的每秒交易数为10。
(5)执行业务时服务器资源占用率为业务在预设时间周期内,业务在被执行时占据服务器的CPU或者内存的占用率。业务的网络吞吐量为在预设时间周期内,各个业务被执行时数据的传输速率。比如,在预设时间周期“8:00-17:00”,若在9:00时刻时,业务A在执行过程中,也就是类函数A被调用的过程中,产生的运行数据占据服务器的CPU或者内存10%的资源,则在日志文件中输出“类函数A的资源占有率为10%”。进而,风险预警***可以确定在9:00时刻时执行业务A时对服务器中CPU或内存的资源占有率为10%。
(6)业务的网络吞吐量为在单位时间内,服务器在执行目标应用的业务时,向用户成功发送的数据的数量。比如,用户向服务器发送业务A请求指令后,服务器开始执行目标企业中的业务A,并向用户发送相应的数据,若服务器向用户发送数据的过程中共有1000个字节发送成功,共有20个字节发送失败,则日志文件中输出“1000字节发送成功,20字节发送失败”。进而,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定业务A在执行过程中的网络吞吐量1000。
步骤260、从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。
其中,目标业务为风险预警***需进行监控的业务,上述目标业务具有标识信息,标识信息为目标业务的唯一标识码,用于在目标应用的各个业务中确定目标业务。比如,目标应用包括5个业务类型,具体为:业务A、业务B、业务C、业务D以及业务E,业务A在底层代码中包括对应的类函数A、业务B在底层代码中包括对应的类函数B、业务C在底层代码中包括对应的类函数C、业务D在底层代码中包括对应的类函数D、以及业务E在底层代码中包括对应的类函数E。若规定业务B为目标业务,则为业务B对应的类函数B添加标识信息,比如,为业务B对应的类函数B添加标识信息“System.Out.Println()”,也就是说,标识信息“System.Out.Println()”为业务B的唯一标识码,可以在目标应用的各个业务中确定作为目标业务的业务B。
具体的,当目标应用在运行的过程中,风险预警***会加载目标应用中各个业务对应的类函数到内部存储器,当一个类函数被调用时,内部存储器会读取类函数中的程序,当内部存储器解析到标识信息“System.Out.Println()”时,则说明目标业务被调用,此时,风险预警***会通过日志文件来获取目标业务在预设时间周期内的调用信息及目标应用中各个业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。上述调用信息包括但不限于业务的调用次数、业务的调用权重、业务的交易响应时间、业务的每秒交易数、执行业务时服务器资源占用率、业务的网络吞吐量等,本申请对此不作限定。风险预警***根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息确定目标业务的风险等级,风险预警***依据上述风险等级对目标业务采取相应的风险预警机制。比如,在预设时间周期“8:00-17:00”内,当内部存储器解析到标识信息“System.Out.Println()”时,风险预警***可以通过日志文件获取在预设时间周期“8:00-17:00”内的目标业务的调用次数以及其他各个业务的调用次数之和,若“functionA()is called,print xxx”在日志文件中出现了200次,“functionA()is called,printxxx”在日志文件中出现了400次,“functionB()is called,print xxx”在日志文件中出现了100次,“functionC()is called,print xxx”在日志文件中出现了300次,“functionD()is called,print xxx”在日志文件中出现了300次,“functionE()is called,print xxx”在日志文件中出现了200次,则,风险预警***认为业务A的调用次数为200,目标业务(业务B)的调用次数为100,业务C的调用次数为300,业务D的调用次数为300,业务E的调用次数为200。风险预警***根据目标业务(业务B)在预设时间周期内的调用次数及目标应用中其他业务在预设时间周期内对应的调用次数来确定业务B的风险等级,进而对业务B采取对应的风险预警机制。
上述风险预警方法中,包括:风险预警***首先在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;然后,针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;最后,从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。上述风险预警***通过目标应用的日志文件,来获取目标业务在预设时间周期内的调用信息,进而通过目标业务的调用信息来确定目标业务的风险等级。因此,上述风险预警***不需要通过人工介入的方式修改目标应用的底层程序代码,进而对目标应用不会造成应用侵入性问题。故而,该风险预警***可以与不同的应用进行适配以进行风险预警。
在其中一个实施例中,在预设时间周期内,获取目标应用执行不同业务所生成的日志文件,包括:
在预设时间周期内,采用Java类加载机制对目标应用中的不同业务进行类加载,获取目标应用执行不同业务所生成的日志文件。
其中,目标应用包括了多个业务,针对应用中的每个业务,在底层代码的实现中对应了具体的类函数,也就是说,可以将一个应用理解为多个类函数的集合。Java类加载机制是指Java虚拟机把描述类函数的数据从class文件加载到内部存储器中,并对数据进行校验,转换解析和初始化,最终形成可以被Java虚拟机直接使用的Java类型。因此,风险预警***可以是基于Java类加载机制下实现的统计模型,目标应用可以为使用Java语言编写的应用。
具体的,在风险预警***启动时,风险预警***可以将目标应用的各个业务对应的类函数加载至Java虚拟机的内存储器当中。随后风险预警***通过获取目标应用的存储路径,比如,上述存储路径可以为“D:\Software\目标应用\*.log”,该存储路径表示在D盘中的Software文件夹中具有目标应用文件夹,在上述目标应用文件夹中存储有后缀名为.log的日志文件。通过上述存储路径,风险预警***可以获取目标应用执行不同业务所生成的日志文件,并从目标应用的日志文件中获取目标业务对应的类函数的调用信息,依据目标业务的调用信息来对目标业务进行风险预警。
在本申请实施例中,在预设时间周期内,获取目标应用执行不同业务所生成的日志文件,包括:在预设时间周期内,采用Java类加载机制对目标应用中的不同业务进行类加载,获取目标应用执行不同业务所生成的日志文件。风险预警***通过采用Java类加载机制,将目标应用的各个业务对应的类函数加载至Java虚拟机中的内部存储器中,进而从目标应用的日志文件中获取目标业务对应的类函数的调用信息,依据目标业务的调用信息来对目标业务进行风险预警,进而上述风险预警***不需要通过人工介入的方式修改目标应用的底层程序代码,对目标应用不会造成应用侵入性问题。
在其中一个实施例中,如图3所示,调用信息包括调用次数;根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警,包括步骤262至步骤264:
S262、根据目标业务在预设时间周期内的目标调用次数及目标应用中各业务在预设时间周期内对应的第一调用次数,计算目标业务的调用特征值。
其中,调用信息包括但不限于业务的调用次数、业务的调用权重、业务的交易响应时间、业务的每秒交易数、执行业务时服务器资源占用率、业务的网络吞吐量等,本申请对此不作限定。可选的,当调用信息为调用次数,调用次数为目标业务在预设时间周期内被执行的次数,上述调用次数在底层代码中具体体现为,目标业务对应的类函数在预设时间周期内被调用的次数。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定该业务在预设时周期内的调用次数。比如,目标应用中业务A在底层代码中包括对应的类函数A。若规定:当类函数A被调用时,在日志文件中输出“functionA()iscalled,print xxx”,若预设时间周期为“8:00-17:00”,在当前时间处于“8:00-17:00”时间段时,风险预警***实时读取目标应用对应的日志文件的输出内容,获取日志文件中业务A调用次数,比如,若日志文件中“functionA()is called,print xxx”出现了100次,则,风险预警***获取业务A在8:00-17:00时间段内的调用次数为100次。
其中,第一调用次数为目标应用除了目标业务之外,其余各个业务的调用次数。调用特征值能够表示目标业务在预设时间周期内的调用信息的特征,其中,上述调用信息包括但不限于业务的调用次数、业务的调用权重、业务的交易响应时间、业务的每秒交易数、执行业务时服务器资源占用率、业务的网络吞吐量等。可选的,当调用信息为调用次数时,调用特征值可以为目标业务的调用权重,上述目标业务的调用权重为目标业务的调用次数与所有业务的调用次数的占比。
具体的,根据目标业务在预设时间周期内的目标调用次数及目标应用中各业务在预设时间周期内对应的第一调用次数,计算目标业务的调用特征值。比如,规定:当类函数A被调用时,在日志文件中输出“functionA()is called,print xxx”,当类函数B被调用时,在日志文件中输出“functionB()is called,print xxx”,当类函数C被调用时,在日志文件中输出“functionC()is called,print xxx”。预设时间周期为“8:00-17:00”时,若日志文件中“functionA()is called,print xxx”出现了100次,“functionB()is called,print xxx”出现了300次,“functionC()is called,print xxx”出现了200次,那么目标业务(业务A)的调用权重为目标业务(业务A)的调用次数与目标业务(业务A)、业务B以及业务C的调用次数之和的占比,也就是说,风险预警***获取目标业务(业务A)在8:00-17:00时间段内的调用权重为1/6,此时目标业务(业务A)的调用特征值为1/6。
S264、根据调用特征值以及区间模型,计算目标业务在预设时间周期内的风险等级;区间模型用于表征调用特征值与风险等级之间的关系。
其中,区间模型用于表征调用特征值与风险等级之间的关系。具体的,上述区间模型可以结合目标应用日常运行状况,可以有效反映出风险预判区间以及该风险预判区间对应的风险等级,进而可以更好的指导目标应用的生产经营。上述区间模型的表达式为:
其中,γ表示目标应用的目标业务对应的类函数的调用特征值,比如,当调用信息为调用次数时,调用特征值可以为目标业务的调用权重,[0,a)、[a,b)、[b,c)以及[c,d)为调用特征值对应的区间,不同的区间对应不同的风险等级,。L1、L2、L3以及L4为调用次数特征区间对应的风险等级。上述调用特征值与风险等级之间的关系是预先设置的,也就是说,调用特征值对应的区间以及不同区间对应的风险等级是可以动态调整的,比如,若目标业务的调用次数特征为目标业务的调用权重,则上述区间模型的表达式为:
其中,γ1表示目标应用的目标业务对应的类函数的调用权重,[0,11.37)、[11.37,17.9)、[17.9,23)以及[23,31)为目标应用的目标业务对应的类函数的调用权重在不同风险等级所对应的区间。L1、L2、L3以及L4为调用次数特征区间对应的风险等级,也就是说,当目标业务的调用权重在区间[0,11.37)时,表示该目标业务的风险等级为normal;当目标业务的调用权重在区间[11.37,17.9)时,表示该目标业务的风险等级为warming;当目标业务的调用权重在区间[17.9,23)时,表示该目标业务的风险等级为dangerous;当目标业务的调用权重在区间[23,31)时,表示该目标业务的风险等级为down。上述区间以及对应的风险等级是预先设置的,也就是说,区间[0,11.37)、[11.37,17.9)、[17.9,23)、[23,31)与其对应的风险等级normal、warming、dangerous、down之间的映射关系以及区间范围是可以动态变化的,比如,若目标业务的调用权重为12.34,此时,目标业务的调用权重位于区间[11.37,17.9),区间[11.37,17.9)对应的风险等级为warming。但是,通过长时间监控使用人员发现,当目标业务的调用权重为12.34时,目标业务的风险等级较小,因此,使用人员可以对区间模型最中调用特征值与风险等级之间的关系进行调整,比如可以调整为:
在本申请实施例中,调用信息包括调用次数;根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警,包括:根据目标业务在预设时间周期内的目标调用次数及目标应用中各业务在预设时间周期内对应的第一调用次数,计算目标业务的调用特征值;根据调用特征值以及区间模型,计算目标业务在预设时间周期内的风险等级;区间模型用于表征调用特征值与风险等级之间的关系。区间模型可以结合目标应用日常运行状况,可以有效反映出风险预判区间以及该风险预判区间对应的风险等级,可以更好的指导目标应用的目标业务进行准确的风险预警,进而提高了风险预警的准确度。
在其中一个实施例中,调用特征值包括目标占比;计算目标业务的调用特征值,包括:计算目标调用次数在第一调用次数之和中的占比,生成目标占比。
其中,调用特征值包括目标占比,上述目标占比为目标业务的调用权重,即目标业务的调用次数与目标应用中所有业务的调用次数的占比。具体的,风险预警***通过读取日志文件中业务或类函数对应的输出内容,可以确定目标业务在预设时周期内的调用权重。比如,在预设时间周期“8:00-17:00”内,若日志文件中“functionA()is called,printxxx”出现了100次,“functionB()is called,print xxx”出现了300次,“functionC()iscalled,print xxx”出现了200次,那么目标业务(业务A)的调用权重为业务A的调用次数与目标业务(业务A)、业务B以及业务C的调用次数之和的占比,也就是说,风险预警***获取目标业务(业务A)在8:00-17:00时间段内的调用权重为1/6。
在本申请实施例中,调用特征值包括目标占比;计算目标业务的调用特征值,包括:计算目标调用次数在第一调用次数之和中的占比,生成目标占比。通过对目标业务的目标占比进行计算,进而可以利用目标占比对于目标业务进行风险预警,从而实现了不需要通过人工介入的方式修改目标应用的底层程序代码,即可实现对目标业务进行较为准确的风险预警。
在其中一个实施例中,如图4所示,区间模型包括多个调用特征值对应的区间及与区间对应的风险等级之间的关系;根据调用特征值以及区间模型,计算目标业务在预设时间周期内的风险等级,包括步骤320至步骤340:
S320、从多个调用特征值对应的区间中,确定与目标业务的调用特征值对应的目标区间。
其中,调用特征值包括但不限于业务的调用次数、业务的调用权重、业务的交易响应时间、业务的每秒交易数、执行业务时服务器资源占用率、业务的网络吞吐量等,本申请对此不作限定。当调用特征值为目标业务的调用权重时,上述目标业务的调用权重为目标业务的调用次数与所有业务的调用次数的占比。调用特征值对应的区间为曲面模型中针对目标应用中目标业务的不同风险等级对应的区间范围。目标业务的调用特征值对应的目标区间为目标应用中目标业务的调用特征值在不同风险等级对应的区间范围中的一个目标区间范围。
比如,针对公式(2),调用特征值为目标业务的调用权重,调用特征值对应的区间为[0,11.37)、[11.37,17.9)、[17.9,23)以及[23,31)。也就是说,[0,11.37)、[11.37,17.9)、[17.9,23)以及[23,31)为目标应用的目标业务对应的类函数的调用权重在不同风险等级时对应的区间。若风险预警***获取到的目标应用的目标业务对应的类函数的调用权重为12.3%,基于上述调用权重确定与该调用权重12.3%对应的目标区间为[11.37,17.9)。
S340、从多个调用特征值对应的区间及与区间对应的风险等级之间的关系中,获取与目标区间对应的风险等级,作为目标业务在预设时间周期内的风险等级。
其中,一个调用特征值对应的区间对应一个风险等级,比如,[0,11.37)、[11.37,17.9)、[17.9,23)以及[23,31)为目标应用的目标业务对应的类函数的调用权重对应的区间,normal、warming、dangerous以及down为上述不同的区间对应的风险等级。也就是说,当目标业务的调用权重在区间[0,11.37)时,表示该目标业务的风险等级为normal;当目标业务的调用权重在区间[11.37,17.9)时,表示该目标业务的风险等级为warming;当目标业务的调用权重在区间[17.9,23)时,表示该目标业务的风险等级为dangerous;当目标业务的调用权重在区间[23,31)时,表示该目标业务的风险等级为down。当风险预警***获取到的目标应用的目标业务对应的类函数的调用权重为12.3%,基于上述调用权重确定与该调用权重12.3%对应的区间为[11.37,17.9),风险预警***获取与目标区间[11.37,17.9)对应的风险等级为warming,故而,该目标业务的风险等级为warming。
在本申请实施例中,区间模型包括多个调用特征值对应的区间及与区间对应的风险等级之间的关系;根据调用特征值以及区间模型,计算目标业务在预设时间周期内的风险等级,包括:从多个调用特征值对应的区间中,确定与目标业务的调用特征值对应的目标区间;从多个调用特征值对应的区间及与区间对应的风险等级之间的关系中,获取与目标区间对应的风险等级,作为目标业务在预设时间周期内的风险等级。风险预警***通过曲线模型以及目标业务的调用次数特征可以获取目标业务的风险等级,可以更好的指导目标应用的目标业务进行准确的风险预警,并无需对目标应用的底层代码进行修改就可实现对目标业务的风险预警。
在其中一个实施例中,如图5所示,上述风险预警***,还包括步骤282至步骤284:
S282、获取目标业务在预设时间周期内的实际风险等级。
其中,实际风险等级为目标业务在实际中风险等级,比如,实际风险等级可以为normal、warming、dangerous以及down。使用人员通过对目前目标应用中目标业务的运行状态进行分析,可以获得目标业务在预设时间周期内的实际风险等级。
S284、判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致;
若否,则对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整。
其中,使用人员在获得目标业务的风险等级后,可以判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致,若目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是不一致的,则对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整。比如,若目标业务的调用权重为12.34,此时,目标业务的调用权重位于区间[11.37,17.9),区间[11.37,17.9)对应的风险等级为warming。但是,通过长时间监控使用人员发现,当目标业务的调用权重为12.34时,目标业务的风险等级较小,因此,使用人员可以对区间模型最中调用特征值与风险等级之间的关系进行调整,将风险等级为normal的区间修改为[0,14.38),将风险等级为warming的区间修改为[14.38,17.9)。
在本申请实施例中,上述风险预警***,还包括:获取目标业务在预设时间周期内的实际风险等级;判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致;若否,则对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整。使用人员通过判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致,来对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整,进而提高了区间模型对目标业务的风险预警的准确度。
在其中一个实施例中,如图6所示,针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,包括步骤242至步骤244:
S242、为目标应用中的各业务添加标识信息,标识信息用于在目标应用中确定业务。
其中,标识信息包括但是不限于业务被调用时的标识、业务开始执行时的开始时间、业务执行结束时的结束时间、业务执行时对服务器中CPU或内存的资源占有率、业务执行过程中向用户发送数据的结果等,本申请对此不作限定。比如,目标应用包括业务A,业务A被调用时的标识可以为“functionA()is called,print xxx”,业务A开始执行时的开始时间的标识可以为“functionA start time:2021年9月23日8点13分27秒”,业务A执行结束时的结束时间的标识可以为“functionA end time:2021年9月23日10点35分12秒”,业务A执行时对服务器中CPU或内存的资源占有率的标识可以为“functionA CPU/内存:14%”,业务A执行过程中向用户发送数据的结果的标识可以为“functionA状态:成功”。
S244、根据业务的标识信息,从日志文件中获取与业务对应的日志消息。
其中,日志信息包括但不限于业务被调用时的标识信息、业务开始执行时的开始时间信息、业务执行结束时的结束时间信息、业务执行时对服务器中CPU或内存的资源占有率信息、业务执行过程中向用户发送数据的结果信息等,本申请对此不作限定。具体的,日志信息为日志文件中存储的目标业务对应的标识信息,比如,目标应用包括业务A,业务A被调用时的标识可以为“functionA()is called,print xxx”,因此,当内部存储器从日志文件中获取有日志信息“functionA()is called,print xxx”,则风险预警***人为业务A被调用一次。
在本申请实施例中,针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,包括:为目标应用中的各业务添加标识信息,标识信息用于在目标应用中确定业务;根据业务的标识信息,从日志文件中获取与业务对应的日志消息。通过对目标应用中各业务添加标识信息,风险预警***可以从日志文件中获取与目标业务对应的日志信息,通过日志信息可以获取目标业务的调用信息,因此风险预警***不需要通过人工介入的方式修改目标应用的底层程序代码实现获得目标业务的调用信息。
在一个具体的实施例中,如图7所示,提供了一种风险预警方法,包括步骤301至步骤309:
S301、在预设时间周期内,采用Java类加载机制对目标应用中的不同业务进行类加载,获取目标应用执行不同业务所生成的日志文件;
S302、为目标应用中的各业务添加标识信息,标识信息用于在目标应用中确定业务;
S303、根据业务的标识信息,从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;
S304、根据目标业务在预设时间周期内的目标调用次数及目标应用中各业务在预设时间周期内对应的第一调用次数,计算目标业务的调用特征值;
S305、从多个调用特征值对应的区间中,确定与目标业务的调用特征值对应的目标区间;
S306、从多个调用特征值对应的区间及与区间对应的风险等级之间的关系中,获取与目标区间对应的风险等级,作为目标业务在预设时间周期内的风险等级;
S307、获取目标业务在预设时间周期内的实际风险等级;
S308、判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致;
S309、若否,则对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整。
假设目标应用包括4个业务类型,具体为:业务A、业务B、业务C以及业务D,业务A在底层代码中包括对应的类函数A、业务B在底层代码中包括对应的类函数B、业务C在底层代码中包括对应的类函数C以及业务D在底层代码中包括对应的类函数D。
可选的,为了在目标应用的日志文件中识别出对应的业务类型,可以在业务或类函数被调用时在日志文件中输出一段与该业务或类函数对应的输出内容。比如:当类函数A被调用时,在日志文件中输出“functionA()is called,print xxx”,当类函数B被调用时,在日志文件中输出“functionB()is called,print xxx”,当类函数C被调用时,在日志文件中输出“functionC()is called,print xxx”,当类函数D被调用时,在日志文件中输出“functionD()is called,print xxx”。另外,假设目标应用的目标业务为业务A,为了使得目标应用在运行的过程中,风险预警***可以确定所监控的目标对象,为目标业务(业务A)添加标识信息“System.Out.Println()”,当Java虚拟机中的内部存储器解析到标识信息“System.Out.Println()”时,说明目标业务(业务A)被调用一次。
可选的,在目标应用运行的过程中,当Java虚拟机中的内部存储器在预设时间周期内解析到标识信息“System.Out.Println()”,则认为目标业务(业务A)被执行一次,此时,Java虚拟机中的内部存储器获取到日志文件中目标应用中各业务的调用次数以及目标业务(业务A)的调用次数。比如,若内部存储器解析到日志文件中标识信息“functionA()is called,print xxx”总共出现了200次,则认为目标业务(业务A)的调用次数为200,若内部存储器解析到日志文件中标识信息“functionB()is called,print xxx”总共出现了300次,则认为业务B的调用次数为300,若内部存储器解析到日志文件中标识信息“functionC()is called,print xxx”总共出现了100次,则认为业务C的调用次数为100,若内部存储器解析到日志文件中标识信息“functionD()is called,print xxx”总共出现了400次,则认为业务D的调用次数为400。
可选的,目标业务的调用特征值可以为目标业务的调用权重,若目标业务(业务A)的调用次数为200,业务B的调用次数为300,业务C的调用次数为100,业务D的调用次数为400,则目标业务(业务A)的调用权重为20%。图8为一具体实施例中目标业务的调用权重变化示意图,如图8所示,风险预警***可以获取在预设时间周期内目标业务的调用特征值,也就是业务A在在预设时间周期内的调用权重变化。从图8中可以看出,随着时间的推移,业务A的调用权重逐渐增大,使用人员可以通过业务A的权重变化来判断业务A的风险等级。比如,若业务A的在某一个时间段的调用权重急剧上升,则说明日志文件的内存具有被占满的风险,风险预警***检测到该风险时,向监控人员发送风险预警,并自动启动对应的风险预警机制,来规避内存占满的风险。
图9为一具体实施例中函数动态区间模型示意图,如图9所示,风险预警***可以获取在预设时间周期内目标业务的在各个时刻的调用次数。从图9中可以看出,在11:00时刻,业务A对应的类函数A的调用次数急剧上升,并且类函数A的调用次数在很长一段时间内未有下降趋势。使用人员可知类函数A在11:00时刻并不是业务A的高峰期,因此,说明类函数A有可能会作为恶意攻击的入口。另外,业务A对应的类函数A的调用次数急剧上升会导致磁盘的内存被占满而导致磁盘的写入功能失效的问题,进而导致线程挂起无法闭环,从而引发内存耗尽的问题,风险预警***检测到该风险时,向监控人员发送风险预警,并自动启动对应的风险预警机制,从而降低风险的发生。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图10所示,提供了一种风险预警装置400,包括:日志文件获取模块420、调用信息生成模块440以及风险预警模块460,其中:
日志文件获取模块420,用于在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;
调用信息生成模块440,用于针对目标应用中的各业务,从日志文件中获取与业务对应的日志消息,根据业务对应的日志消息计算业务在预设时间周期内的调用信息;
风险预警执行模块460,用于从各业务中确定目标业务,根据目标业务在预设时间周期内的调用信息及目标应用中各业务在预设时间周期内对应的调用信息,对目标业务进行风险预警。
在其中一个实施例中,日志文件获取模块420,还用于在预设时间周期内,采用Java类加载机制对目标应用中的不同业务进行类加载,获取目标应用执行不同业务所生成的日志文件。
在其中一个实施例中,如图11所示,风险预警执行模块460,包括:调用次数特征生成单元462以及风险等级确定单元464,其中:
调用特征值生成单元462,用于根据目标业务在预设时间周期内的目标调用次数及目标应用中各业务在预设时间周期内对应的第一调用次数,计算目标业务的调用特征值;
风险等级确定单元464,用于根据调用特征值以及区间模型,计算目标业务在预设时间周期内的风险等级;区间模型用于表征调用特征值与风险等级之间的关系。
在其中一个实施例中,调用特征值生成单元462,还用于计算目标调用次数在第一调用次数之和中的占比,生成目标占比。
在其中一个实施例中,风险等级确定单元464,还用于从多个调用特征值对应的区间中,确定与目标业务的调用特征值对应的目标区间;
从多个调用特征值对应的区间及与区间对应的风险等级之间的关系中,获取与目标区间对应的风险等级,作为目标业务在预设时间周期内的风险等级。
在其中一个实施例中,如图12所示,风险预警装置400,还包括:区间模型调整模块480,其中,区间模型调整模块480,包括:实际风险等级获取单元482、风险等级判断单元484以及区间模型调整单元486,其中:
实际风险等级获取单元482,用于获取目标业务在预设时间周期内的实际风险等级;
风险等级判断单元484,用于判断目标业务在预设时间周期内的风险等级与目标业务在预设时间周期内的实际风险等级是否一致;
区间模型动态调整单元486,用于对区间模型中多个调用特征值对应的区间及与区间对应的风险等级之间的关系进行动态调整。
在其中一个实施例中,如图13所示,调用信息生成模块440,包括:标识信息添加单元442以及日志消息获取单元444,其中:
标识信息添加单元442,用于为目标应用中的各业务添加标识信息,标识信息用于在目标应用中确定业务;
日志消息获取单元444,用于根据业务的标识信息,从日志文件中获取与业务对应的日志消息。
关于风险预警装置的具体限定可以参见上文中对于风险预警方法的限定,在此不再赘述。上述风险预警装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储风险预警数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种风险预警方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行风险预警方法的步骤。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行风险预警方法。
本申请实施例所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种风险预警方法,其特征在于,所述方法包括:
在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;
针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,根据所述业务对应的日志消息计算所述业务在所述预设时间周期内的调用信息;
从各所述业务中确定所述目标业务,根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警。
2.根据权利要求1所述的方法,其特征在于,所述在预设时间周期内,获取目标应用执行不同业务所生成的日志文件,包括:
在所述预设时间周期内,采用Java类加载机制对所述目标应用中的不同业务进行类加载,获取所述目标应用执行所述不同业务所生成的日志文件。
3.根据权利要求1所述的方法,其特征在于,所述调用信息包括调用次数;所述根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警,包括:
根据所述目标业务在所述预设时间周期内的目标调用次数及所述目标应用中各所述业务在所述预设时间周期内对应的第一调用次数,计算所述目标业务的调用特征值;
根据所述调用特征值以及区间模型,计算所述目标业务在所述预设时间周期内的风险等级;所述区间模型用于表征所述调用特征值与所述风险等级之间的关系。
4.根据权利要求3所述的方法,其特征在于,所述调用特征值包括目标占比;所述计算所述目标业务的调用特征值,包括:
计算所述目标调用次数在所述第一调用次数之和中的占比,生成目标占比。
5.根据权利要求3所述的方法,其特征在于,所述区间模型包括多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系;所述根据所述调用特征值以及区间模型,计算所述目标业务在所述预设时间周期内的风险等级,包括:
从所述多个调用特征值对应的区间中,确定与所述目标业务的调用特征值对应的目标区间;
从多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系中,获取与所述目标区间对应的风险等级,作为所述目标业务在所述预设时间周期内的风险等级。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述目标业务在所述预设时间周期内的实际风险等级;
判断所述目标业务在所述预设时间周期内的风险等级与所述目标业务在所述预设时间周期内的实际风险等级是否一致;
若否,则对所述区间模型中多个调用特征值对应的区间及与所述区间对应的风险等级之间的关系进行动态调整。
7.根据权利要求1所述的方法,其特征在于,所述针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,包括:
为所述目标应用中的各所述业务添加标识信息,所述标识信息用于在所述目标应用中确定所述业务;
根据所述业务的标识信息,从所述日志文件中获取与所述业务对应的日志消息。
8.一种风险预警装置,其特征在于,所述装置包括:
日志文件获取模块,用于在预设时间周期内,获取目标应用执行不同业务所生成的日志文件;
调用信息生成模块,用于针对所述目标应用中的各所述业务,从所述日志文件中获取与所述业务对应的日志消息,根据所述业务对应的日志消息计算所述业务在所述预设时间周期内的调用信息;
风险预警模块,用于从各所述业务中确定所述目标业务,根据所述目标业务在所述预设时间周期内的调用信息及所述目标应用中各所述业务在所述预设时间周期内对应的调用信息,对所述目标业务进行风险预警。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198098.2A CN113888311A (zh) | 2021-10-14 | 2021-10-14 | 风险预警方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198098.2A CN113888311A (zh) | 2021-10-14 | 2021-10-14 | 风险预警方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113888311A true CN113888311A (zh) | 2022-01-04 |
Family
ID=79002788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111198098.2A Pending CN113888311A (zh) | 2021-10-14 | 2021-10-14 | 风险预警方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113888311A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103123602A (zh) * | 2011-11-18 | 2013-05-29 | 阿里巴巴集团控股有限公司 | 基于java的异常报警监控方法及其装置 |
CN103617038A (zh) * | 2013-11-28 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种分布式应用***的服务监控方法及装置 |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
CN110673973A (zh) * | 2019-09-27 | 2020-01-10 | 聚好看科技股份有限公司 | 应用程序编程接口api的异常确定方法和装置 |
CN111290928A (zh) * | 2018-12-06 | 2020-06-16 | ***通信集团陕西有限公司 | 一种原子业务重要性确定方法、装置、介质和设备 |
CN113434135A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 接口的调用重复度确定方法和装置、存储介质及电子装置 |
-
2021
- 2021-10-14 CN CN202111198098.2A patent/CN113888311A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103123602A (zh) * | 2011-11-18 | 2013-05-29 | 阿里巴巴集团控股有限公司 | 基于java的异常报警监控方法及其装置 |
CN103617038A (zh) * | 2013-11-28 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种分布式应用***的服务监控方法及装置 |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
CN111290928A (zh) * | 2018-12-06 | 2020-06-16 | ***通信集团陕西有限公司 | 一种原子业务重要性确定方法、装置、介质和设备 |
CN110673973A (zh) * | 2019-09-27 | 2020-01-10 | 聚好看科技股份有限公司 | 应用程序编程接口api的异常确定方法和装置 |
CN113434135A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 接口的调用重复度确定方法和装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110782240B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN108876133B (zh) | 基于业务信息的风险评估处理方法、装置、服务器和介质 | |
CN108389121B (zh) | 贷款数据处理方法、装置、计算机设备和存储介质 | |
CN110232565B (zh) | 资源清算方法、装置、计算机设备和存储介质 | |
CN109087208B (zh) | 贷前数据处理方法、装置、计算机设备和存储介质 | |
CN109194495B (zh) | 服务器、报文处理方法和计算机可读存储介质 | |
JP2012533824A (ja) | リアルタイムバッチ口座処理用のシステムおよび方式 | |
CN108256810B (zh) | 保险业务审批流程处理方法和装置 | |
CN108416665B (zh) | 数据交互方法、装置、计算机设备和存储介质 | |
CN109034603B (zh) | 业务流程执行方法、设备及计算机可读存储介质 | |
CN109492856B (zh) | 业务请求处理方法、装置、计算机设备以及存储介质 | |
CN110032846B (zh) | 身份数据的防误用方法及装置、电子设备 | |
CN110851298A (zh) | 异常分析及处理方法、电子装置及存储介质 | |
US20110238428A1 (en) | Prediction Apparatus and Prediction Method | |
CN113687800A (zh) | 文件打印处理方法、装置、计算机设备和存储介质 | |
CN111489175B (zh) | 在线身份认证方法、装置、***及存储介质 | |
CN113919664A (zh) | Api资产风险控制方法、装置、计算机设备和存储介质 | |
CN106612263B (zh) | 一种用于处理应用访问请求的方法与设备 | |
CN110009476A (zh) | 一种处理放款申请的方法及设备 | |
CN111709709A (zh) | 基于保理业务的信息处理方法、***和计算机设备 | |
CN113888311A (zh) | 风险预警方法、装置、计算机设备和计算机可读存储介质 | |
CN112433925A (zh) | 基于人工智能的日志生成方法、装置、计算机设备和介质 | |
CN111340635A (zh) | 一种数据核查方法、设备、服务器及可读存储介质 | |
WO2022116587A1 (zh) | Web端数据签名方法、装置及计算机设备 | |
US11763362B2 (en) | Prototype message service |
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 |