业务运行结果确定方法及装置制造方法及图纸

技术编号:38354439 阅读:11 留言:0更新日期:2023-08-05 17:26
本公开的实施例提供了一种业务运行结果确定方法及装置。所述方法包括:根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路;获取所述目标业务对应的目标运行链路;所述目标运行链路为所述目标业务对应的业务代码在进行代码测试时收集的正常运行链路;根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果。本公开的实施例提高了异常链路查找的准确率和效率,进而提高后异常后续处理的速度。异常后续处理的速度。异常后续处理的速度。

【技术实现步骤摘要】
业务运行结果确定方法及装置


[0001]本公开的实施例涉及业务处理
,尤其涉及一种业务运行结果确定方法及装置。

技术介绍

[0002]随着配送业务的不断发展,发版周期短,需要及时发现线上问题减少影响。通过现有的大盘监控可以发现大规模的故障,但App新版本/功能灰度期异常却难以发现。如果不能及时发现小流量问题,随时有可能发展为更严重的线上事故。
[0003]为了解决上述问题,目前通常是采用基于方法路径的通用小流量业务异常监控方案。在运行前自动获取到项目中所有的方法调用关系,并构建方法调用链路,然后通过预先在业务链路上标记的开始和结束方法,找到该链路经过的方法,插入监控代码,在运行时判断业务是否正常执行到结束方法,如果没有正常执行到结束方法,表明发生流程阻塞异常,会进行上报。而如何在运行时准确地获取到流程正常执行的所有方法链路,是整个方案的关键。
[0004]现有的方案主要是通过字节码解析工具解析类的字节码,找到类拥有的方法及每个方法调用的方法,来确定方法与方法之间的调用关系。通过收集工程中所有的方法调用关系并将其串联起来完成方法链路查找。
[0005]但是,法调用关系里的被调用方法,可能是接口方法、抽象方法,这些方法在编译期找不到对应的实现类,因此链路串行查找会中断。被调用方法也可能是事件发送方法,而主流的事件发送方法,如EventBus、otto内部是反射调用,链路查找也会中断,从而无法准确查找到异常运行的业务链路。

技术实现思路

[0006]本公开的实施例提供一种业务运行结果确定方法及装置,用以准确查找异常运行的链路。
[0007]根据本公开的实施例的第一方面,提供了一种业务运行结果确定方法,包括:
[0008]根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路;
[0009]获取所述目标业务对应的目标运行链路;所述目标运行链路为所述目标业务对应的业务代码在进行代码测试时收集的正常运行链路;
[0010]根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果。
[0011]可选地,在所述根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路之前,还包括:
[0012]在所述目标业务的业务代码处于代码编译期的情况下,获取所述业务代码中的所有函数;
[0013]根据所述所有函数之间的调用关系,获取所述目标业务对应的目标运行链路。
[0014]可选地,所述根据所述所有函数之间的调用关系,获取所述目标业务对应的目标运行链路,包括:
[0015]获取模拟参数在所述业务代码中的参数传递方式;
[0016]根据所述参数传递方式,确定所述所有函数之间的调用关系;
[0017]根据所述调用关系,获取所述所有函数中具有调用逻辑的目标函数;
[0018]根据所述目标函数,确定所述目标业务对应的目标运行链路。
[0019]可选地,在所述获取所述业务代码中的所有函数之后,还包括:
[0020]在每个所述函数对应的代码处插入监控代码。
[0021]可选地,所述根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果,包括:
[0022]在所述链路匹配结果为所述业务运行链路与所述目标运行链路的链路匹配不一致的结果的情况下,确定所述目标业务的业务运行结果为异常运行结果。
[0023]根据本公开的实施例的第二方面,提供了一种业务运行结果确定装置,包括:
[0024]业务运行链路获取模块,用于根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路;
[0025]目标运行链路获取模块,用于获取所述目标业务对应的目标运行链路;所述目标运行链路为所述目标业务对应的业务代码在进行代码测试时收集的正常运行链路;
[0026]业务运行结果确定模块,用于根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果。
[0027]可选地,所述装置还包括:
[0028]代码函数获取模块,用于在所述目标业务的业务代码处于代码编译期的情况下,获取所述业务代码中的所有函数;
[0029]目标运行链路确定模块,用于根据所述所有函数之间的调用关系,获取所述目标业务对应的目标运行链路。
[0030]可选地,所述目标运行链路确定模块包括:
[0031]参数传递方式获取单元,用于获取模拟参数在所述业务代码中的参数传递方式;
[0032]调用关系确定单元,用于根据所述参数传递方式,确定所述所有函数之间的调用关系;
[0033]目标函数获取单元,用于根据所述调用关系,获取所述所有函数中具有调用逻辑的目标函数;
[0034]目标运行链路确定单元,用于根据所述目标函数,确定所述目标业务对应的目标运行链路。
[0035]可选地,所述装置还包括:
[0036]监控代码插入模块,用于在每个所述函数对应的代码处插入监控代码。
[0037]可选地,所述业务运行结果确定模块包括:
[0038]异常运行结果确定单元,用于在所述链路匹配结果为所述业务运行链路与所述目标运行链路的链路匹配不一致的结果的情况下,确定所述目标业务的业务运行结果为异常运行结果。
[0039]根据本公开的实施例的第三方面,提供了一种电子设备,包括:
[0040]处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的业务运行结果确定方法。
[0041]根据本公开的实施例的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的业务运行结果确定方法。
[0042]本公开的实施例提供了一种业务运行结果确定方法及装置。通过根据预先添加于目标业务对应的业务代码中的监控代码,获取目标业务对应的业务运行链路,获取目标业务对应的目标运行链路,该目标运行链路为目标业务对应的业务代码在进行代码测试时收集的正常运行链路,根据业务运行链路和目标运行链路的链路匹配结果,确定目标业务的业务运行结果。本公开的实施例通过在代码编译期收集业务的正常运行链路,并在线上运行时结合插桩代码监控业务运行的链路,并进行链路比对从而可以准确查找到异常运行的链路,提高了异常链路查找的准确率和效率,进而提高后异常后续处理的速度。
附图说明
[0043]为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0044]图1为本公开的实施例提供的一种业务运行结果确定方法的步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种业务运行结果确定方法,其特征在于,包括:根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路;获取所述目标业务对应的目标运行链路;所述目标运行链路为所述目标业务对应的业务代码在进行代码测试时收集的正常运行链路;根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果。2.根据权利要求1所述的方法,其特征在于,在所述根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路之前,还包括:在所述目标业务的业务代码处于代码编译期的情况下,获取所述业务代码中的所有函数;根据所述所有函数之间的调用关系,获取所述目标业务对应的目标运行链路。3.根据权利要求2所述的方法,其特征在于,所述根据所述所有函数之间的调用关系,获取所述目标业务对应的目标运行链路,包括:获取模拟参数在所述业务代码中的参数传递方式;根据所述参数传递方式,确定所述所有函数之间的调用关系;根据所述调用关系,获取所述所有函数中具有调用逻辑的目标函数;根据所述目标函数,确定所述目标业务对应的目标运行链路。4.根据权利要求2所述的方法,其特征在于,在所述获取所述业务代码中的所有函数之后,还包括:在每个所述函数对应的代码处插入监控代码。5.根据权利要求1所述的方法,其特征在于,所述根据所述业务运行链路和所述目标运行链路的链路匹配结果,确定所述目标业务的业务运行结果,包括:在所述链路匹配结果为所述业务运行链路与所述目标运行链路的链路匹配不一致的结果的情况下,确定所述目标业务的业务运行结果为异常运行结果。6.一种业务运行结果确定装置,其特征在于,包括:业务运行链路获取模块,用于根据预先添加于目标业务对应的业务代码中的监控代码,获取所述目标业务对应的业务运行链路;目标运行链路获取模块,用于获取所述目标业务对...

【专利技术属性】
技术研发人员:陈吉祥王晓宁
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1