CN114153712A - 异常处理方法、装置、设备及存储介质 - Google Patents

异常处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114153712A
CN114153712A CN202111385457.5A CN202111385457A CN114153712A CN 114153712 A CN114153712 A CN 114153712A CN 202111385457 A CN202111385457 A CN 202111385457A CN 114153712 A CN114153712 A CN 114153712A
Authority
CN
China
Prior art keywords
interface
time
service request
service
abnormal
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
CN202111385457.5A
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.)
Shenzhen Chenbei Technology Co Ltd
Original Assignee
Shenzhen Chenbei 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 Shenzhen Chenbei Technology Co Ltd filed Critical Shenzhen Chenbei Technology Co Ltd
Priority to CN202111385457.5A priority Critical patent/CN114153712A/zh
Publication of CN114153712A publication Critical patent/CN114153712A/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/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
    • 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

Abstract

本申请提供异常处理方法、装置、设备及存储介质,方法包括:获取目标业务请求的跟踪标识,目标业务请求为经业务系统处理对应异常响应的业务请求;根据跟踪标识,获取业务系统中处理目标业务请求的至少一个业务模块各自对应的时间相关信息;根据至少一个业务模块各自对应的时间相关信息,生成目标业务请求对应的疑似异常接口信息,疑似异常接口信息包括与异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,至少一个第一接口和异常信息在疑似异常接口信息中按与异常响应的相关度排列,其中,相关度基于时间相关信息得到。该方案可有助于开发人员快速定位到出现问题的业务模块,提高问题定位的效率。

Description

异常处理方法、装置、设备及存储介质
技术领域
本申请涉及请求处理领域,尤其涉及异常处理方法、装置、设备及存储介质。
背景技术
在由微服务模块实现功能的业务系统中,单个应用程序由多个松散耦合且可独立部署的较小组件或者服务组成,开发人员可根据具体的业务需求,将单个服务进行组合部署,得到与业务需求相对应的业务系统,业务系统可以由多个基于微服务实现的业务模块组成。
对于发送至业务系统的请求,一个请求会经由业务系统中的业务模块进行处理和响应,当这个请求在业务系统中收到异常响应时,需要人工进行问题定位,人工需要通过查看多个业务模块的日志才能找到出现问题的业务模块,效率不高。
发明内容
本申请提供异常处理方法、装置、设备及存储介质,以解决现有异常响应需要人工进行问题定位而导致的效率不高的技术问题。
第一方面,提供一种异常处理方法,包括:
获取目标业务请求的跟踪标识,所述目标业务请求为经业务系统处理对应异常响应的业务请求;
根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块各自包含的接口中与所述异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
在该技术方案中,通过根据在业务系统中产生异常响应的目标业务请求的跟踪标识,找到业务系统中处理该目标业务请求的业务模块处理该目标业务请求时所产生的时间信息,根据该时间信息生成目标业务请求对应的疑似异常接口信息,由于疑似异常接口信息中包含与异常响应相关的接口,且这些接口在疑似异常接口信息中按与异常响应的相关度进行排列,相关度基于时间信息得到,相当于是根据处理该目标业务请求的业务模块处理该目标业务请求所产生的时间信息确定了处理该目标业务请求的业务模块与异常响应的相关程度,因此,生成按相关度排列的疑似异常接口信息能够有助于开发人员快速定位到出现问题的业务模块,提高定位效率;另外,根据疑似异常接口信息中的各接口关联的异常情况,可方便开发人员确定接口出现异常的问题。
结合第一方面,在一种可能的实现方式中,所述根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,包括:根据所述跟踪标识,从日志系统中获取与所述跟踪标识对应的模块日志,所述模块日志用于记录所述至少一个业务模块处理所述目标业务请求所产生的日志信息,所述日志信息包括所述时间相关信息;从所述模块日志中获取所述至少一个业务模块各自对应的时间相关信息。
结合第一方面,在一种可能的实现方式中,所述目标业务请求为在所述业务系统中的处理时延大于预设延时阈值的请求,所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的第一时间和第二时间,所述第一时间为接口接收所述目标业务请求的时间,所述第二时间为接口响应所述目标业务请求的时间;所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,包括:根据第二接口对应的第一时间和第二时间,计算所述第二接口的接口时延,所述第二接口为所述至少一个业务模块包含的任一接口;计算所述第二接口的接口时延与所述第二接口对应的平均处理时延之间的差值,得到所述第二接口的时延差;根据所述至少一个业务模块各自包含的接口的时延差,对所述至少一个业务模块各自包含的接口进行排序,根据排序后的接口和所述排序后的接口的时延差,得到所述疑似异常接口信息。在目标业务请求为处理时延较大的慢请求的情况下,通过确定目标业务请求在各接口中的时延差,时延差反映了各接口处理该目标业务请求与处理其他请求之间的差距,根据时延差对接口进行排序,能够使开发人员优先定位到差距较大的接口。
结合第一方面,在一种可能的实现方式中,所述计算所述第二接口的接口时延与所述第二接口对应的平均处理时延之间的差值,得到所述第二接口的时延差之前,还包括:获取所述第二接口的预设数量的历史接口时延,所述历史接口时延为所述第二接口在历史时间中接收一次业务请求的时间至响应所述一次业务请求的时间之间的时长;对所述预设数量的历史接口时延求平均,得到所述第二接口对应的平均处理时延。
结合第一方面,在一种可能的实现方式中,所述目标业务请求为在所述业务系统中产生错误的请求;所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的日志时间,所述日志时间为接口处理所述目标业务请求生成日志的时间;所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,包括:在所述至少一个业务模块各自包含的接口中确定错误码不为预设码的接口;根据所述日志时间的先后顺序,对所述错误码不为预设码的接口进行排序,根据排序后的接口和所述排序后的接口对应的错误码,得到所述疑似异常接口信息。通过按日志时间对产生错误的接口进行排序,能够有助于开发人员快速找到最后出现错误的接口。
结合第一方面,在一种可能的实现方式中,所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息之后,还包括:确定所述疑似异常接口信息中的接口各自对应的第一频率,所述第一频率是指出现在所述目标业务请求对应的历史疑似异常接口信息中且在所述历史疑似异常接口信息中处于前N位的频率,N为大于等于1的正整数;在所述疑似异常接口信息中对所述第一频率高于预设频率阈值的接口进行突出标示。通过在疑似异常接口信息中对在历史响应中出现异常频率较高的接口进行突出标示,能够有助于开发人员快速定位到出现问题的接口。
结合第一方面,在一种可能的实现方式中,所述方法还包括:统计所述业务系统中各业务模块包含的接口各自对应的第二频率,所述第二频率是指在业务系统中生成的所有疑似异常接口信息中出现的频率;按所述第二频率对所述业务系统中各业务模块包含的接口进行排序后,生成所述业务系统的接口响应统计报表。通过统计业务系统中的接口在疑似异常接口信息中的出现频率,按出现频率对接口进行排序后再生成统计报表,能够有助于开发人员找到经常出现问题的业务模块,从而对业务模块进行改进。
第二方面,提供一种异常处理装置,包括:
标识获取模块,用于获取目标业务请求的跟踪标识,所述目标业务请求为在业务系统中对应异常响应的业务请求;
信息获取模块,用于根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
生成模块,用于根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块中与异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
第三方面,提供一种计算机设备,包括存储器以及一个或多个处理器,一个或多个处理器用于执行存储在存储器中的一个或多个计算机程序,一个或多个处理器在执行一个或多个计算机程序时,使得该计算机设备实现上述第一方面的异常处理方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行上述第一方面的异常处理方法。
本申请可以实现如下技术效果:根据处理该目标业务请求的业务模块处理该目标业务请求所产生的时间信息确定了处理该目标业务请求的业务模块与异常响应的相关程度,因此,生成按相关度排列的疑似异常接口信息能够有助于开发人员快速定位到出现问题的业务模块,提高定位效率;另外,根据疑似异常接口信息中的各接口关联的异常情况,可方便开发人员确定接口出现异常的问题。
附图说明
图1为本申请提供的一种业务系统的系统架构示意图;
图2为本申请实施例提供的异常处理方法的流程示意图;
图3是本申请实施例提供的一种异常处理装置的结构示意图;
图4是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请的技术方案可适用于如图1所示的业务系统架构中。图1为本申请提供的一种业务系统的系统架构示意图,该业务系统架构10可包括业务系统101、日志系统102和外部设备103。外部设备103可以为用户设备(如手机、个人电脑等),外部设备103中安装有访问业务系统101的客户端,客户端可基于用户需求,向业务系统发送业务请求;业务系统101包括系统网关1011和至少一个业务模块1012,系统网关1011用于接收外部设备103发送的业务请求,并将业务请求转发给业务系统内的业务模块1012进行处理。可选的,业务模块1012可以基于微服务技术实现,用于对业务系统内的请求进行处理,以实现某种业务功能。业务系统101中的业务模块1012运行会产生日志,日志中记录有业务模块1012的运行信息,其中,运行信息包括但不限于日期、时间、业务模块的标识、业务模块具体执行的操作信息;业务系统101可将业务模块1012运行产生的日志发送至日志系统102,日志系统102用于存储所有业务模块的日志。在业务系统101、日志系统102和外部设备103的基础之上,业务系统架构10还可以包括监控系统104和异常请求定位系统105,其中,业务系统101可以把各个业务模块1012处理外部设备103发送的业务请求所产生的接口时延上传至监控系统104,监控系统104用于对接口时延进行记录和保存。业务系统101还可以在检测到在业务系统101内产生异常响应的异常业务请求上报给异常请求定位系统105,异常请求定位系统105用于根据业务系统101上报的异常业务请求,生成与异常响应相关的异常分析信息,供开发人员查看。
基于图1所示的系统架构,可以实现本申请的技术方案,本申请的技术方案可具体实施于上述异常请求定位系统105中,以下具体进行介绍。
参见图2,图2为本申请实施例提供的异常处理方法的流程示意图,其中,该方法可应用于上述图1中的异常请求定位系统105中,如图2所示,该方法包括如下步骤:
S201,获取目标业务请求的跟踪标识。
这里,目标业务请求是指在业务系统中对应异常响应的业务请求,目标业务请求又可以称之为异常业务请求。其中,异常响应与正常响应相对应,产生正常响应的业务请求,是指在预设的超时时间内得到业务系统的响应,且能够从业务系统获取到所需资源的业务请求,对应地,产生异常响应的业务请求是指未在预设的时间内得到业务系统的响应,或未从业务系统中获取到所需资源的业务请求。具体地,异常业务请求可以是指在业务系统中的处理时延大于预设延时阈值的请求,也可以是指在业务系统中产生错误的请求,等等,不限于这里描述。
本申请实施例中,跟踪标识是指在业务系统中用于唯一指示该目标业务请求的标识,也即唯一指示该异常业务请求的标识。
在一种可行的实施方式,目标业务请求的跟踪标识可以是业务系统发送的,具体可以是业务系统直接将该跟踪标识发送给异常请求定位系统;或者可以是业务系统将跟踪标识携带在该目标业务请求对应的异常日志中发送给异常请求定位系统。比如,结合上述图1所示系统结构该方案可以是:系统网关1011在检测业务系统中存在产生异常响应的业务请求的情况下向异常请求定位系统104发送的。其中,目标业务请求的跟踪标识可以是由系统网关1011直接发送给异常请求定位系统105,也可以由系统网关携带在该目标业务请求对应的异常日志中发送给异常请求定位系统105。
在第一种可能的情况中,业务系统接收所有的业务请求,监测各个业务请求在业务系统中的处理时延,并将各个业务请求在业务系统中的处理时延分别与各个业务请求对应的预设延时阈值进行比较,其中,不同业务请求可对应不同的预设延时阈值,各业务请求对应的预设延时阈值可以由开发人员根据业务请求对应的业务类型预设在后台处理系统中,以方便动态修改。当业务系统接收到业务请求时,业务系统可根据业务请求对应的业务类型确定业务请求的延时阈值。若目标业务请求对应的处理时延大于目标业务请求对应的预设延时阈值,则业务系统确定目标业务请求为异常业务请求,将目标业务请求在业务系统(如系统网关)中的日志发送给异常请求定位系统。
其中,业务请求在业务系统中的处理时延是指业务系统接收到业务请求的时间至业务请求响应该业务请求的时间之间的时长,业务请求在业务系统中的处理时延可以等于业务请求在业务系统处理该业务请求的至少一个业务模块处产生的处理时延之和。业务请求在业务模块处产生的处理时延是指业务模块接收到业务请求的时间至业务模块响应该业务请求的时间之间的时长,业务请求在业务模块处产生的处理时延可以等于业务模块中的各个接口处理该业务请求的接口时延之和。接口处理业务请求的接口时延是指接口接收到业务请求的时间至接口响应业务请求的时间之间的时长。
举例进行说明,例如,有一个业务请求Q1,业务请求Q1对应的预设时延阈值为1s。经由业务系统中的业务模块A和业务模块B进行处理,业务模块A中包括接口a1和接口a2,业务模块B包括接口b1、接口b2和接口b3。接口a1在2021.10.1 12:00:00.000接收到业务请求Q1,在2021.10.1 12:00:00.167响应业务请求Q1,将业务请求Q1交由接口a2进行处理;接口a2在2021.10.112:00:00.355响应业务请求Q1,并将业务请求Q1交由接口b1进行处理;接口b1在2021.10.1 12:00:00.670响应业务请求Q1,并将业务请求Q1交由接口b2进行处理;接口b2在2021.10.1 12:00:00.960响应业务请求Q1,并将业务请求Q1交由接口b3进行处理,接口b3在12:00:01.096响应业务请求Q1。则接口a1处理业务请求Q1的接口时延为167微秒(us),接口a2处理业务请求Q1的接口时延为188us,业务请求Q1在业务模块A处的处理时延为355us;接口b1处理业务请求Q1的接口时延为315us,接口b2处理业务请求Q1的接口时延为290us,接口b3处理业务请求Q1的接口时延为130us,业务请求Q1在业务模块B处的处理时延为741us;业务请求Q1在业务系统中的处理时延为1096us(即1.096s),大于预设延时阈值1s,则业务请求Q1为异常业务请求,即目标业务请求。
示例性地,业务系统向异常请求定位系统发送的异常日志可以如下:
{“traceId”:“134543213141”,“requestData”:“test1”,“errorCode”:“0”};其中,traceId为业务请求的跟踪标识,requestData为业务请求所请求获取的资源,errorCode为业务系统处理业务请求返回的错误码信息。
可选地,业务系统在监测到各个业务请求在业务系统中各个接口处的处理时延时,还可以将各个业务请求在各个业务模块的各个接口的接口时延发送至监控系统。
在第二种可能的情况中,业务系统接收所有的业务请求,获取业务系统中的业务模块处理各个业务请求返回的错误码信息,若监测到目标业务请求对应的错误码不为预设码,则业务系统确定目标业务请求为异常业务请求,将目标业务请求在业务系统(如系统网关)中的日志发送给目标业务请求定位系统105。示例性地,业务系统向异常请求定位系统105发送的异常日志可以如下:
{“traceId”:“134543213141”,“requestData”:“test2”,“errorCode”:“123”}
其中,预设码是指业务模块正常响应业务请求返回的错误码信息,其中,业务模块正常响应业务请求是指业务模块处理业务请求时未产生错误。示例性地,预设码例如可以为0。
可选地,目标业务请求的跟踪标识也可以是异常请求定位系统直接获取得到的,其中,异常请求定位系统可以依次读取存储在日志系统中的日志和存储在监控系统中的接口时延,按上述业务系统判定业务请求是否为异常业务请求的方式确定出异常业务请求时,从日志系统中读取该异常业务请求的跟踪标识。又或者,异常请求定位系统与业务系统集成为一体,当业务系统监测到异常业务请求时,异常请求定位系统获取该异常业务请求的追踪标识。
有关于获取目标业务请求的跟踪标识的具体方式,本申请不做限制。
S202,根据目标业务请求的跟踪标识,获取业务系统中处理目标业务请求的至少一个业务模块各自对应的时间相关信息。
其中,一个业务模块对应的时间相关信息包括一个业务模块处理目标业务请求所产生的时间信息,一个业务模块对应的时间信息包括但不限于业务模块接收和响应该目标业务请求的时间、业务模块中的各个接口接收和响应该目标业务请求的时间、业务模块处理该目标业务请求产生的日志的日志时间、业务模块中的各个接口处理该异常响应所产生的日志的日志时间、业务模块处理完该目标业务请求并转发给另一个业务模块进行处理的时间、业务模块中的接口处理完该目标业务请求并转发给另一个接口进行处理的时间,等等,不限于这里的描述。
举例进行说明,以目标业务请求为前述业务请求Q1为例,对于业务模块A,其对应的时间信息包括:接口a1接收业务请求Q1的时间(2021.10.112:00:00.000)、接口a1响应业务请求Q1的时间(2021.10.1 12:00:00.167)、接口a转发业务请求Q1的时间(2021.10.112:00:00.167)、接口a2接收业务请求Q1的时间(2021.10.1 12:00:00.167)、接口a2响应业务请求Q2的时间(2021.10.1 12:00:00.355)、接口a2转发业务请求Q2的时间(2021.10.112:00:00.355)、记录接口a1处理业务请求Q1这一动作的日志的日志时间和记录接口a2处理业务请求Q1这一动作的日志的日志时间。
具体实现中,可以根据跟踪标识,从日志系统中获取与跟踪标识对应的模块日志,模块日志用于记录处理该目标业务请求的至少一个业务模块,在处理该目标业务请求时所产生的日志信息,日志信息中包含了业务模块处理该目标业务请求的所有时间信息,从模块日志中获取处理该目标业务请求的至少一个业务模块各自对应的时间相关信息。
S203,根据业务系统中处理目标业务请求的至少一个业务模块各自对应的时间相关信息,生成目标业务请求对应的疑似异常接口信息。
本申请实施例中,目标业务请求对应的疑似异常接口信息包括至少一个第一接口和至少一个第一接口各自关联的异常信息,其中,第一接口为处理目标业务请求的至少一个业务模块各自包含的接口中,与异常响应相关的接口;一个第一接口关联的异常信息是指该一个第一接口在处理目标业务请求时产生的与异常响应相关的信息。至少一个第一接口和至少一个第一接口各自关联的异常信息在疑似异常接口信息中按与异常响应的相关度排列,其中,第一接口与异常响应的相关度基于至少一个业务模块各自对应的时间相关信息得到。
具体地,在目标业务请求为前述步骤S201中介绍的第一种情况中的异常业务请求的情况下,可以获取每个业务模块的各个接口接收该目标业务请求的时间(以下称第一时间)和响应该目标业务请求的时间(以下称第二时间),然后按照如下步骤生成该目标业务请求对应的疑似异常接口信息:
J1、根据第二接口对应的第一时间和第二时间,计算第二接口的接口时延。
这里,第二接口可以为处理该目标业务请求的业务模块包含的任意一个接口。以目标业务请求为前述业务请求Q1为例,则前述接口a1、接口a2、接口b1、接口b2或接口b3均可以称之为第二接口。
具体实现中,可以计算第二接口的第二时间与第一时间之间的时间差,得到第二接口的接口时延。
J2、计算第二接口的接口时延与第二接口对应的平均处理时延之间的差值,得到第二接口的时延差。
这里,第二接口对应的平均处理时延是指第二接口在历史时间/历史相同所属时间段中处理业务请求的接口时延的平均情况,反映了第二接口处理业务请求的平均时延,可以理解为是正常处理业务请求时的时延情况。
在一些可行的实施方式中,可以获取第二接口的预设数量的历史接口时延,历史接口时延为第二接口在历史时间/历史相同所属时间段中接收一次业务请求的时间至响应一次业务请求的时间之间的时长,第二接口的预设数量的历史接口时延求平均,得到第二接口对应的平均处理时延。例如,第二接口为前述的接口a1,则可以获取接口a1在处理该目标业务请求之前的最近5次的接口时延,求取5次接口时延的平均值,作为接口a1的平均处理时延。
在另一些可行的实施方式中,也可以通过基于滑动窗的方式,获取多组历史接口时延,先将每个滑动窗中的历史接口时延求平均,得到各个滑动窗对应的平均接口时延,再将各个滑动窗口对应的平均接口时延求平均,得到平均处理时延。例如,第二接口为前述的接口a1,可以获取接口a1在处理该目标业务请求之前的最接近8次的接口时延,将前8次~前3次的接口时延作为一组历史接口时延,将前7次~前2次的接口时延作为一组历史接口时延,将前6次~前1次的接口时延作为一组历史接口时延,得到3组历史接口时延,分别求这3组历史接口时延的平均接口时延,再对这3组历史接口时延的平均接口时延求平均,作为接口a1的平均处理时延。基于滑动窗获取多组历史接口时延的方式,能够得到更准确地反映接口处理业务请求的平均时延情况的平均处理时延。
在又一些可行的实施方式中,还可以对第二接口的历史接口时延进行线性回归,得到反映第二接口的历史接口时延的发展变化情况的时延回归线,将处于时延回归线上的接口时延作为第二接口对应的平均处理时延。对于确定第二接口对应的平均处理时延的具体实现方式,本申请不做限制。
在一种具体实现方式中,异常请求定位系统可以从监控系统中获取第二接口的预设数量的历史接口时延,计算得到第二接口对应的平局处理时延。
J3、根据至少一个业务模块各自包含的接口的时延差,对至少一个业务模块各自包含的接口进行排序,根据排序后的接口和排序后的接口的时延差,得到疑似异常接口信息。
这里,接口对应的时延差反映了接口在处理该目标业务请求时的时延与该接口在正常处理业务请求时的时延之间的差距,时延差越大,则说明接口在处理该目标业务请求时的时延与该接口在正常处理业务请求时的时延之间的差距越大,接口出现异常的可能性越高,时延差越小,则说明接口在在处理该目标业务请求时的时延与该接口在正常处理业务请求时的时延之间的差距越小,接口出现异常的可能性越低。因此,根据至少一个业务模块各自包含的接口的时延差,对至少一个业务模块各自包含的接口进行排序,相当于是根据接口造成异常响应的可能性进行排序,排序后的接口可反映接口与该目标业务请求在业务系统中产生异常响应之间的相关度高低。
具体实现中,可以根据至少一个业务模块各自包含的接口的时延差,将时延差较大的接口排列在前,将时延差较小的接口排列在后,以此得到排序后的接口;再获取排序后的接口的时延差,与排序后的接口组合得到疑似异常接口信息。这样,可使开发人员在定位异常响应的问题时,能优先定位到时延差较大的接口,也即定位到与异常响应相关度较高的接口,有助于快速定位异常响应的问题所在。
例如,处理目标业务请求的模块分别有模块D、模块E、模块F,其中,模块D有接口D1,模块E有接口E1,模块F有接口F1,排序前的各接口和接口的时延差如下:
{
模块D:接口D1——3ms
模块E:接口E1——5ms
模块F:接口F1——-1ms
}
根据时延差排序后,排序后的接口与排序后的接口的时延差组合得到疑似异常接口信息如下:
{
模块E:接口E1——5ms
模块D:接口D1——3ms
模块F:接口F1——-1ms
}
可选地,在根据至少一个业务模块各自包含的接口的时延差,对至少一个业务模块各自包含的接口排序后,还可以在排序后的接口中剔除小于预设时延差阈值的接口,得到剔除后的接口;然后根据剔除后的接口和剔除后的接口的时延差,得到疑似异常接口信息;或者,也可以先剔除小于预设时延差阈值的接口,再对剔除后的接口进行排序。或者,也可以剔除本申请不做限制。
具体地,在目标业务请求为前述步骤S202中介绍的第二种情况中的异常业务请求的情况下,可以获取每个业务模块的业务模块中的各个接口处理该异目标业务请求所产生的日志的日志时间,日志时间是指接口处理目标业务请求生成日志的时间。然后按照如下步骤生成该目标业务请求对应的疑似异常接口信息:
K1、在至少一个业务模块各自包含的接口中确定错误码不为预设码的接口。
这里,有关于预设码的概念,可参考前述描述,此处不再赘述。
K2、根据日志时间的先后顺序,对错误码不为预设码的接口进行排序,根据排序后的接口和排序后的接口对应的错误码,得到疑似异常接口信息。
这里,日志时间的先后顺序反映了接口处理目标业务请求的先后顺序,根据日志时间对至少错误码不为预设码的接口进行排序,相当于是根据接口处理的先后顺序进行排序,接口出错的先后顺序反映了接口与异常响应之间的相关度。
具体实现中,可以根据日志时间,将日志时间较早的错误码不为预设码的接口排列在前,将日志时间较后的错误码不为预设码的接口排列在后。这样,可使开发人员在定位异常响应的问题时,能优先定位到最先出错的接口,也即与产生异常响应相关度最高的接口,从而方便开发人员从根本上解决问题。
例如,处理目标业务请求的模块分别有模块D、模块E,其中,模块D有接口D2,模块E有接口E2,模块F有接口F2,预设码为0,各个接口的日志时间和错误码信息如下:
{
模块D:接口D2——123 2021.10.1 12:00:00.333
模块E:接口E2——0 2021.10.1 12:00:00.666
模块F:接口F2——456 2021.10.1 12:00:00.108
}
则根据日志时间的先后顺序,将错误码不为预设码的接口进行排序后,排序后的接口与排序后的接口的错误码组合得到疑似异常接口信息如下:
{
模块F:接口F1——456 2021.10.1 12:00:00.108
模块D:接口D2——123 2021.10.1 12:00:00.333
}
在上述图2对应的技术方案中,通过根据在业务系统中对应异常响应的目标业务请求的跟踪标识,找到业务系统中处理该目标业务请求的业务模块处理该目标业务请求时所产生的时间信息,根据该时间信息生成目标业务请求对应的疑似异常接口信息,由于疑似异常接口信息中包含与异常响应相关的接口,且这些接口在疑似异常接口信息中按与异常响应的相关度进行排列,相关度基于时间信息得到,相当于是根据处理该目标业务请求的业务模块处理该目标业务请求所产生的时间信息确定了处理该目标业务请求的业务模块与异常响应的相关程度,因此,生成按相关度排列的疑似异常接口信息能够有助于开发人员快速定位到出现问题的业务模块,提高定位效率;;另外,根据疑似异常接口信息中的各接口关联的异常情况,可方便开发人员确定接口出现异常的问题。
可选地,在一些可行的实施方式中,在执行上述步骤S203后,还可以执行如下步骤:
L1、确定所述疑似异常接口信息中的接口各自对应的第一频率。
L2、在疑似异常接口信息中对第一频率高于预设频率阈值的接口进行突出标示。
这里,接口对应的第一频率是指疑似异常接口信息中的接口出现在目标业务请求对应的历史疑似异常接口信息中且在历史疑似异常接口信息中处于前N位的频率,N为大于等于1的正整数。其中,历史疑似异常接口信息是指在历史时间中处理该目标业务请求产生的疑似异常接口信息。接口对应的第一频率可以等于接口出现在目标业务请求对应的历史疑似异常接口信息中处于前N位的次数与历史疑似异常接口信息的总数量的比值。
例如,N=1,经过步骤S203确定的疑似异常接口信息为{a1,a2,b1,b2,b3},历史疑似异常接口信息有3组,分别为{b1,a2,b2,b3,a1},{a1,b3,b2,b1,a3}、{b1,b2,a2,b3,a1},则b1对应的第一频率为2/3,a1对应的第一频率为1/3。
在历史疑似异常接口信息处于前N位,说明在历史时间中与异常响应产生有较大的关系;在历史疑似异常接口信息中处于前N位的频率大于预设频率阈值,说明接口是造成异常响应的根本原因的可能性较大,通过对在历史时间中出现在前N位的频率较高的接口进行突出标示,可以方便开发人员对异常响应出现的根本原因进行快速定位。
具体实现中,可以以颜色高亮显示、加粗显示、下划线标注等方式突出标示第一频率高于预设频率阈值的接口。
可选地,在一些可行的实施方式中,上述方法还可以包括如下步骤:
G1、统计业务系统中各业务模块包含的接口各自对应的第二频率;
G2、按第二频率对业务系统中各业务模块包含的接口进行排序后,生成业务系统的接口响应统计报表。
这里,接口对应的第二频率是指在业务系统中生成的所有疑似异常接口信息中出现的频率,其中,所有疑似异常接口信息可包括多个目标业务请求各自对应的疑似异常接口信息。接口对应的第二频率可以等于接口出现在疑似异常接口信息中的次数与疑似异常接口信息的总数量的比值,需要说明的是,这里的疑似异常接口信息指的是业务系统中生成的所有疑似异常接口信息。
通过按接口对应的第二频率对业务系统中各业务模块包含的接口进行排序,相当于是按接口发生异常响应的频次进行排序。具体实现中,可以将第二频率较高的接口排列在前,将第二频率较低的接口排列在后,从而将经常出现异常响应的接口排列在前,生成接口响应统计报表。能够有助于开发人员快速找到经常出现问题的业务模块,从而对业务模块进行改进。
上述介绍了本申请的方法,为了更好地实施本申请的方法,接下来介绍本申请的装置。
参见图3,图3是本申请实施例提供的一种异常处理装置的结构示意图,异常处理装置可以为上述目标业务请求定位系统的一部分。如图3所示,该异常处理装置30包括:
标识获取模块301,用于获取目标业务请求的跟踪标识,所述目标业务请求为在业务系统中对应异常响应的业务请求;
信息获取模块302,用于根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
生成模块303,用于根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块中与异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
在一种可能的设计中,上述信息获取模块302具体用于:根据所述跟踪标识,从日志系统中获取与跟踪标识对应的模块日志,所述模块日志用于记录所述至少一个业务模块日志处理所述目标业务请求所产生的日志信息,所述日志信息包括所述时间相关信息;从所述模块日志中获取所述至少一个业务模块各自对应的时间相关信息。
在一种可能的设计中,所述目标业务请求为在所述业务系统中的处理时延大于预设延时阈值的请求,所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的第一时间和第二时间,所述第一时间为接口接收所述目标业务请求的时间,所述第二时间为接口响应所述目标业务请求的时间;上述生成模块303具体用于:根据第二接口对应的第一时间和第二时间,计算所述第二接口的接口时延,所述第二接口为所述至少一个业务模块包含的任一接口;计算所述第二接口的接口时延与所述第二接口对应的平均处理时延之间的差值,得到所述第二接口的时延差;根据所述至少一个业务模块各自包含的接口的时延差,对所述至少一个业务模块各自包含的接口进行排序,根据排序后的接口和所述排序后的接口的时延差,得到所述疑似异常接口信息,得到所述疑似异常接口信息。
在一种可能的设计中,生成模块303还用于:获取所述第二接口的预设数量的历史接口时延,所述历史接口时延为所述第二接口在历史时间中接收一次业务请求的时间至响应所述一次业务请求的时间之间的时长;对所述预设数量的历史接口时延求平均,得到所述第二接口对应的平均处理时延。
在一种可能的设计中,所述目标业务请求为在所述业务系统中产生错误的请求;所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的日志时间,所述日志时间为接口处理所述目标业务请求生成日志的时间;生成模块303具体用于:在所述至少一个业务模块各自包含的接口中确定错误码不为预设码的接口;根据所述日志时间,对所述错误码不为预设码的接口进行排序,根据排序后的接口和所述排序后的接口对应的错误码,得到所述疑似异常接口信息得到所述疑似异常接口信息。
在一种可能的设计中,上述异常处理装置30还包括标示模块304,用于:确定所述疑似异常接口信息中的接口各自对应的第一频率,所述第一频率是指出现在所述异常请求对应的历史疑似异常接口信息中且在所述历史疑似异常接口信息中处于前N位的频率,N为大于等于1的正整数;在所述疑似异常接口信息中对所述第一频率高于预设频率阈值的接口进行突出标示。
在一种可能的设计中,上述生成模块305还用于:统计所述业务系统中各业务模块包含的接口各自对应的第二频率,所述第二频率是指在业务系统中生成的所有疑似异常接口信息中出现的频率;按所述第二频率对所述业务系统中各业务模块包含的接口进行排序后,生成所述业务系统的接口响应统计报表。
需要说明的是,图3对应的实施例中未提及的内容可参见前述图2方法实施例的描述,这里不再赘述。
上述装置,通过根据在业务系统中对应异常响应的目标业务请求的跟踪标识,找到业务系统中处理该目标业务请求的业务模块处理该目标业务请求时所产生的时间信息,根据该时间信息生成目标业务请求对应的疑似异常接口信息,由于疑似异常接口信息中包含与异常响应相关的接口,且这些接口在疑似异常接口信息中按与异常响应的相关度进行排列,相关度基于时间信息得到,相当于是根据处理该目标业务请求的业务模块处理该目标业务请求所产生的时间信息确定了处理该目标业务请求的业务模块与异常响应的相关程度,因此,生成按相关度排列的疑似异常接口信息能够有助于开发人员快速定位到出现问题的业务模块,提高定位效率。
参见图4,图4是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备40包括处理器401、存储器402。处理器401连接到存储器402,例如处理器401可以通过总线连接到存储器402。
处理器401被配置为支持该计算机设备40执行上述方法实施例中的方法中相应的功能。该处理器401可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器402用于存储程序代码等。存储器402可以包括易失性存储器(volatilememory,VM),例如随机存取存储器(random access memory,RAM);存储器302也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器402还可以包括上述种类的存储器的组合。
处理器401可以调用所述程序代码以执行以下操作:
获取目标业务请求的跟踪标识,所述目标业务请求为经业务系统处理对应异常响应的业务请求;
根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块各自包含的接口中与所述异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only memory,ROM)或随机存储记忆体(Random Accessmemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种异常处理方法,其特征在于,包括:
获取目标业务请求的跟踪标识,所述目标业务请求为经业务系统处理对应异常响应的业务请求;
根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块各自包含的接口中与所述异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
2.根据权利要求1所述的方法,其特征在于,所述根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,包括:
根据所述跟踪标识,从日志系统中获取与所述跟踪标识对应的模块日志,所述模块日志用于记录所述至少一个业务模块处理所述目标业务请求所产生的日志信息,所述日志信息包括所述时间相关信息;
从所述模块日志中获取所述至少一个业务模块各自对应的时间相关信息。
3.根据权利要求1所述的方法,其特征在于,所述目标业务请求为在所述业务系统中的处理时延大于预设延时阈值的业务请求,所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的第一时间和第二时间,所述第一时间为接口接收所述目标业务请求的时间,所述第二时间为接口响应所述目标业务请求的时间;
所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,包括:
根据第二接口对应的第一时间和第二时间,计算所述第二接口的接口时延,所述第二接口为所述至少一个业务模块包含的任一接口;
计算所述第二接口的接口时延与所述第二接口对应的平均处理时延之间的差值,得到所述第二接口的时延差;
根据所述至少一个业务模块各自包含的接口的时延差,对所述至少一个业务模块各自包含的接口进行排序,根据排序后的接口和所述排序后的接口的时延差,得到所述疑似异常接口信息。
4.根据权利要求3所述的方法,其特征在于,所述计算所述第二接口的接口时延与所述第二接口对应的平均处理时延之间的差值,得到所述第二接口的时延差之前,还包括:
获取所述第二接口的预设数量的历史接口时延,所述历史接口时延为所述第二接口在历史时间中接收一次业务请求的时间至响应所述一次业务请求的时间之间的时长;
对所述预设数量的历史接口时延求平均,得到所述第二接口对应的平均处理时延。
5.根据权利要求1所述的方法,其特征在于,所述目标业务请求为在所述业务系统中产生响应错误的请求;所述一个业务模块对应的时间相关信息包括所述一个业务模块中的各个接口各自对应的日志时间,所述日志时间为接口处理所述目标业务请求生成日志的时间;
所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,包括:
在所述至少一个业务模块各自包含的接口中确定错误码不为预设码的接口;
根据所述日志时间的先后顺序,对所述错误码不为预设码的接口进行排序,根据排序后的接口和所述排序后的接口对应的错误码,得到所述疑似异常接口信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息之后,还包括:
确定所述疑似异常接口信息中的接口各自对应的第一频率,所述第一频率是指出现在所述目标业务请求对应的历史疑似异常接口信息中且在所述历史疑似异常接口信息中处于前N位的频率,N为大于等于1的正整数;
在所述疑似异常接口信息中对所述第一频率高于预设频率阈值的接口进行突出标示。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
统计所述业务系统中各业务模块包含的接口各自对应的第二频率,所述第二频率是指在业务系统中生成的所有疑似异常接口信息中出现的频率;
按所述第二频率对所述业务系统中各业务模块包含的接口进行排序后,生成所述业务系统的接口响应统计报表。
8.一种异常处理装置,其特征在于,包括:
标识获取模块,用于获取目标业务请求的跟踪标识,所述目标业务请求为在业务系统中对应异常响应的业务请求;
信息获取模块,用于根据所述跟踪标识,获取所述业务系统中处理所述目标业务请求的至少一个业务模块各自对应的时间相关信息,其中,一个业务模块对应的时间相关信息包括所述一个业务模块处理所述目标业务请求所产生的时间信息;
生成模块,用于根据所述至少一个业务模块各自对应的时间相关信息,生成所述目标业务请求对应的疑似异常接口信息,所述疑似异常接口信息包括所述至少一个业务模块中与异常响应相关的至少一个第一接口以及与每个第一接口关联的异常信息,所述至少一个第一接口和所述异常信息在所述疑似异常接口信息中按与异常响应的相关度排列,其中,所述相关度基于所述时间相关信息得到。
9.一种计算机设备,其特征在于,包括存储器以及处理器,所述处理器用于执行存储在所述存储器中的一个或多个计算机程序,所述处理器在执行所述一个或多个计算机程序时,使得所述计算机设备实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN202111385457.5A 2021-11-22 2021-11-22 异常处理方法、装置、设备及存储介质 Pending CN114153712A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111385457.5A CN114153712A (zh) 2021-11-22 2021-11-22 异常处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111385457.5A CN114153712A (zh) 2021-11-22 2021-11-22 异常处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114153712A true CN114153712A (zh) 2022-03-08

Family

ID=80456859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111385457.5A Pending CN114153712A (zh) 2021-11-22 2021-11-22 异常处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114153712A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002000A (zh) * 2022-06-24 2022-09-02 中国平安财产保险股份有限公司 异常接口容错方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002000A (zh) * 2022-06-24 2022-09-02 中国平安财产保险股份有限公司 异常接口容错方法、装置、设备及存储介质
CN115002000B (zh) * 2022-06-24 2024-04-05 中国平安财产保险股份有限公司 异常接口容错方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US8141053B2 (en) Call stack sampling using a virtual machine
CN110888783A (zh) 微服务系统的监测方法、装置以及电子设备
US20160224400A1 (en) Automatic root cause analysis for distributed business transaction
US8631280B2 (en) Method of measuring and diagnosing misbehaviors of software components and resources
CN110727556A (zh) 一种bmc健康状态监控方法、系统、终端及存储介质
CN110297767B (zh) 测试用例自动执行方法、装置、设备及存储介质
US8332690B1 (en) Method and apparatus for managing failures in a datacenter
CN110674034A (zh) 一种健康检查方法、装置及电子设备和存储介质
CN114153712A (zh) 异常处理方法、装置、设备及存储介质
US20100251029A1 (en) Implementing self-optimizing ipl diagnostic mode
CN111338864B (zh) 内存问题检测方法、装置、计算机设备及存储介质
CN110224880B (zh) 一种心跳监测方法及监控设备
CN109634822A (zh) 一种函数耗时统计方法、装置、存储介质及终端设备
CN110727602B (zh) 覆盖率数据的处理方法、装置及存储介质
CN111131262A (zh) 一种漏洞扫描方法及装置
CN115437961A (zh) 数据处理方法、装置、电子设备及存储介质
CN114816915A (zh) 链路追踪方法以及设备
US7788546B2 (en) Method and system for identifying communication errors resulting from reset skew
CN113704114A (zh) 功能接口的自动化测试方法、装置、设备及介质
CN109165127B (zh) 问题接口的定位方法、装置及电子设备
CN112631929A (zh) 测试用例生成方法、装置、存储介质及电子设备
CN111752786A (zh) 压力测试过程中的数据存储方法、汇总方法、设备及介质
CN114760218B (zh) 一种链路采样方法及其相关装置
CN113377641B (zh) 日志统计方法及系统
CN110837469B (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