技术摘要:
本公开提供了一种交易故障检测方法,包括:获取多个节点中每个节点处理当前交易数据时生成的初始日志数据;基于针对当前交易数据的预设链路规则,处理初始日志数据以得到目标日志数据,其中,预设链路规则表征了多个节点处理当前交易数据的处理顺序;以及基于历史日志 全部
背景技术:
随着流平台的准实时处理业务场景推广,越来越多的产品线(个贷、信用卡、对公 账户、网银等)、越来越多的业务场景(如风险监控、智能营销等)都陆续部署流式交易处理 节点。由于流式交易具有交易复杂、链路长、部署实例多等特点,因此对交易进行故障检测 的过程较为繁琐。目前缺乏有效的方法和手段来进行交易故障检测。 在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题。 通过人工逐个分析节点日志数据进行交易故障检测,具有人力成本高、工作量大、 效率低等问题。 测试人员进行交易故障检测时,需要查找每个节点的交易日志数据,当交易涉及 多个节点时,并且为了提高并发性每个节点又会启动若干个实例,一旦查找过程中漏掉了 某个日志数据,可能会导致无法定位到交易故障问题,造成人力和时间的损失。因此,通过 人工查找日志数据的方式,存在可靠性较差、效率较低的问题。 在进行交易故障检测的过程中,测试人员往往不关心也不了解具体的交易链路顺 序,这就需要测试人员去数据表中查看,但按照关系型数据库的设计原则,每个节点只记录 下游的路由节点,这就需要测试人员要逐条查找节点的链路顺序,加重了测试人员工作量, 增加了人力成本,降低了测试效率。 现有的日志分析工具多适用于扁平化或层次化服务器部署的场景,且无法针对流 式数据交易的测试问题进行全链路的追踪和定位。
技术实现要素:
有鉴于此,本公开提供了一种优化的交易故障检测方法、交易故障检测装置、计算 设备和计算机可读存储介质。 本公开的一个方面提供了一种交易故障检测方法,包括:获取多个节点中每个节 点处理当前交易数据时生成的初始日志数据,基于针对所述当前交易数据的预设链路规 则,处理所述初始日志数据以得到目标日志数据,其中,所述预设链路规则表征了所述多个 节点处理所述当前交易数据的处理顺序,基于历史日志数据和历史故障情况来处理所述目 标日志数据,以便确定所述多个节点处理所述当前交易数据时发生的当前故障情况,其中, 所述历史日志数据是处理历史交易数据时生成的数据,所述历史故障情况是处理历史交易 数据时发生的故障情况。 根据本公开的实施例,上述基于历史日志数据和历史故障情况来处理所述目标日 志数据包括:获取待训练模型,基于所述历史日志数据和所述历史故障情况训练所述待训 练模型,得到经训练模型;以及 5 CN 111611100 A 说 明 书 2/12 页 利用所述经训练模型处理所述目标日志数据。 根据本公开的实施例,上述利用所述经训练模型处理所述目标日志数据包括以下 至少一项:确定所述多个节点中当前节点是否接收到来自上一级节点的当前交易数据,以 便确定所述当前节点与上一级节点之间的连接情况是否正常,根据所述多个节点中当前节 点是否已经处理完成所述当前交易数据,确定所述当前节点中用于存储数据的队列是否存 在堆积情况,确定所述多个节点中当前节点是否将所述当前交易数据发送至下一级节点, 以便确定所述当前节点是否存在处理中断的情况。 根据本公开的实施例,上述基于所述历史日志数据和所述历史故障情况训练所述 待训练模型包括:确定所述历史日志数据为训练样本数据,确定所述历史故障情况为所述 训练样本数据的标签信息,基于所述训练样本数据和所述标签信息训练所述待训练模型。 根据本公开的实施例,上述基于针对所述当前交易数据的预设链路规则,处理所 述初始日志数据以得到目标日志数据包括:基于所述预设链路规则,对所述多个节点中每 个节点的初始日志数据进行排序处理,得到所述目标日志数据。 根据本公开的实施例,上述获取多个节点中每个节点处理当前交易数据时生成的 初始日志数据包括:确定当前交易的标识,基于所述标识,从数据库中获取处理与所述当前 交易对应的当前交易数据时生成的初始日志数据,其中,所述数据库用于存储多个交易的 日志数据。 本公开的另一个方面提供了一种交易故障检测装置,包括:获取模块、第一处理模 块以及第二处理模块。其中,获取模块,获取多个节点中每个节点处理当前交易数据时生成 的初始日志数据。第一处理模块,基于针对所述当前交易数据的预设链路规则,处理所述初 始日志数据以得到目标日志数据,其中,所述预设链路规则表征了所述多个节点处理所述 当前交易数据的处理顺序。第二处理模块,基于历史日志数据和历史故障情况来处理所述 目标日志数据,以便确定所述多个节点处理所述当前交易数据时发生的当前故障情况,其 中,所述历史日志数据是处理历史交易数据时生成的数据,所述历史故障情况是处理历史 交易数据时发生的故障情况。 根据本公开的实施例,上述基于历史日志数据和历史故障情况来处理所述目标日 志数据包括:获取待训练模型,基于所述历史日志数据和所述历史故障情况训练所述待训 练模型,得到经训练模型;以及 利用所述经训练模型处理所述目标日志数据。 根据本公开的实施例,上述利用所述经训练模型处理所述目标日志数据包括以下 至少一项:确定所述多个节点中当前节点是否接收到来自上一级节点的当前交易数据,以 便确定所述当前节点与上一级节点之间的连接情况是否正常,根据所述多个节点中当前节 点是否已经处理完成所述当前交易数据,确定所述当前节点中用于存储数据的队列是否存 在堆积情况,确定所述多个节点中当前节点是否将所述当前交易数据发送至下一级节点, 以便确定所述当前节点是否存在处理中断的情况。 根据本公开的实施例,上述基于所述历史日志数据和所述历史故障情况训练所述 待训练模型包括:确定所述历史日志数据为训练样本数据,确定所述历史故障情况为所述 训练样本数据的标签信息,基于所述训练样本数据和所述标签信息训练所述待训练模型。 根据本公开的实施例,上述基于针对所述当前交易数据的预设链路规则,处理所 6 CN 111611100 A 说 明 书 3/12 页 述初始日志数据以得到目标日志数据包括:基于所述预设链路规则,对所述多个节点中每 个节点的初始日志数据进行排序处理,得到所述目标日志数据。 根据本公开的实施例,上述获取多个节点中每个节点处理当前交易数据时生成的 初始日志数据包括:确定当前交易的标识,基于所述标识,从数据库中获取处理与所述当前 交易对应的当前交易数据时生成的初始日志数据,其中,所述数据库用于存储多个交易的 日志数据。 本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储器,用于 存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得 所述一个或多个处理器实现如上所述的方法。 本公开的另一方面提供了一种非易失性可读存储介质,存储有计算机可执行指 令,所述指令在被执行时用于实现如上所述的方法。 本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指 令,所述指令在被执行时用于实现如上所述的方法。 根据本公开的实施例,利用如上所述的交易故障检测方法,可以至少部分地解决 通过人工逐个分析节点日志来检测交易故障导致人力成本高、工作量大、检测效率低的问 题。因此可以实现提高了交易故障检测的效率、降低了人工成本、提高了交易故障检测的可 靠性的技术效果。 附图说明 为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中: 图1示意性示出了根据本公开实施例的交易故障检测方法和交易故障检测装置的 系统架构; 图2示意性示出了根据本公开实施例的交易故障检测方法的流程图; 图3示意性示出了根据本公开实施例的训练机器学习模型的流程图; 图4示意性示出了根据本公开实施例的交易跟踪和分析方法的流程图; 图5示意性示出了根据本公开实施例的交易故障检测装置的框图;以及 图6示意性示出了根据本公开实施例的用于实现交易故障检测的计算机系统的方 框图。