一种链路跟踪方法、装置、电子设备和介质与流程

文档序号:24249458发布日期:2021-03-12 13:27阅读:78来源:国知局
一种链路跟踪方法、装置、电子设备和介质与流程

本发明实施例涉及计算机数据处理技术领域,尤其涉及一种链路跟踪方法、装置、电子设备和介质。



背景技术:

目前随着计算机技术的不断发展,分布式系统如微服务、分布式数据库和分布式缓存的服务能力也有很大的提升。伴随着分布式系统的服务能力的提升,分布式系统的规模越来越大,结构也日益复杂,这使得在一旦有请求在经过诸多服务过程中,出现了响应超时的情况,定位引起异常的具体服务变得十分困难,导致系统异常的定位和处理效率低下。



技术实现要素:

本发明实施例提供一种链路跟踪方法、装置、电子设备和介质,以达到对请求指令进行链路跟踪的目的。

第一方面,本发明实施例提供了一种链路跟踪方法,包括:

获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;

根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;

根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。

第二方面,本发明实施例还提供了一种链路跟踪装置,包括:

请求指令信息获取模块,用于获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;

链路跟踪标识确定模块,用于根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;

链路跟踪结果确定模块,用于根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。

第三方面,本发明实施例还提供了一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的链路跟踪方法。

第四方面,本发明实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行任一实施例所述的一种链路跟踪方法。

本发明实施例所提供的技术方案,获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。本发明实施例所提供的技术方案,可以通过在请求指令中添加链路跟踪标识,根据链路跟踪标识实现对请求指令的链路跟踪,从而提高分布式系统定位引起异常的具体服务的速度和准确性,进而提高系统处理异常效率。

附图说明

图1是本发明实施例一中的链路跟踪方法的流程图;

图2是本发明实施例二中的链路跟踪方法的流程图;

图3是本发明实施例三中的链路跟踪装置的结构示意图;

图4为本发明实施例中的链路跟踪方法适用的电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一中的链路跟踪方法的流程图,本实施例可适用对请求指令进行链路跟踪的情况。值得注意的是,在发明实施例中链路跟踪是指还原请求指令的调用链路,将请求指令的调用情况集中展示。本发明实施例提供的链路跟踪方法可以由链路跟踪装置来执行,该装置可以采用软件和/或硬件的方式实现,并可配置在电子设备中,电子设备可以是服务器等具有通信和计算能力的电子设备。如图1所示,该方法具体包括:

s110、获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言。

其中,请求指令为结构化查询语言,可以实现一些服务如数据查询和数据存储。结构化查询语言简称sql(structuredquerylanguage),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

其中,执行超时的请求指令是指执行时间超过设定阈值的请求指令。具体的,执行超时的请求指令为慢sql语句。其中,设定阈值是本领域技术人员根据实际业务场景设置的经验值,在这里不作限定,具体依据实际情况确定。在数据库中,一般默认值为10秒,即执行时间超过10秒的sql语句即为慢sql。其中,执行超时的请求指令信息是由执行请求指令的一方提供的关于执行超时的请求指令的记录,请求指令信息包括:执行超时的请求指令、该请求指令的执行时间和执行该请求指令的当前数据库。

获取执行超时的请求指令信息,具体是从数据库的慢日志中获取的慢sql的信息。其中,慢日志是数据库提供一种日志记录,慢日志中记录由数据库中响应时间超过阈值的sql语句。

s120、根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识。

其中,链路跟踪标识是在请求指令生成过程中构建的唯一标识,链路跟踪标识与请求指令相关联,在已知链路跟踪标识或者请求指令中任一方信息的情况下可以确定另一方信息。

s130、根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。

其中,链路跟踪是指还原请求指令的调用链路,将请求指令的调用情况集中展示。其中,调用情况包括请求指令在各个消费方上的耗时、请求指令具体到达哪台服务器、每个消费方的请求状态等信息。链路跟踪结果是指集中展示的调用情况。

由于请求指令被消费端处理后,消费端会生成关于请求指令的执行情况、请求指令的链路跟踪标识和请求指令发送方信息的记录,因此根据链路标识,查询消费端记录即可确定链路跟踪标识所标识请求指令的链路结果。

本发明实施例所提供的技术方案,获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。本发明实施例所提供的技术方案,可以通过在请求指令中添加链路跟踪标识,根据链路跟踪标识实现对请求指令的链路跟踪,从而提高分布式系统定位引起异常的具体服务的速度和准确性,进而提高系统处理异常效率。

实施例二

图2是本发明实施例二中的链路跟踪方法的流程图,本实施例在上述实施例的基础上进行进一步地优化,具体优化为:在所述根据所述请求指令信息确定与请求指令相关联的链路跟踪标识之前,还包括:获取应用端生成的请求指令和所述链路跟踪标识;建立所述请求指令与所述链路跟踪标识之间的关联关系;通过所述应用端将所述请求指令发送至所述消费端,以供所述消费端在执行所述请求指令后打印所述请求指令的执行日志,并将所述执行日志上传至云端。

如图2所示,所述方法包括:

s210、获取应用端生成的请求指令和所述链路跟踪标识。

其中,请求指令和链路跟踪标识均是由应用端生成的,具体的,链路跟踪标识是在应用端生成请求指令的过程中生成。获取应用端生成的请求指令和链路跟踪标识可以是从应用端日志中获取的。

s220、建立所述请求指令与所述链路跟踪标识之间的关联关系。

建立请求指令与链路跟踪标识之间一对一的关联关系,一个请求指令仅有一个链路跟踪标识,各个请求指令的链路跟踪标识各不相同。

可选的,根据请求指令和链路跟踪标识建立请求指令和链路跟踪标识对应关系映射表,并将所述映射表存储至云端。

在一个可选的实施例中,建立所述请求指令与所述链路跟踪标识之间的关联关系,包括:通过所述应用端将所述链路跟踪标识添加至所述请求指令中。

链路跟踪标识可以是随机生成的字符串,应用端在生成请求指令的过程中将链路跟踪标识添加至请求指令中。将链路跟踪标识添加至请求指令中,当执行该请求指令且该请求指令执行超时的情况下,可快速确定生成该请求指令的应用端,从而提高异常定位的速度。

s230、通过所述应用端将所述请求指令发送至所述消费端,以供所述消费端在执行所述请求指令后打印所述请求指令的执行日志,并将所述执行日志上传至云端。

其中,消费端是指执行请求指令的服务单元,应用端将请求指令发送至消费端,消费端在执行该请求指令后打印描述该请求指令执行情况的日志。消费方的数量一般为多个。其中执行日志是一个或多个由消费端自动创建和维护的日志文件,其中包含其所执行请求指令的列表,用于消费端运行状态。在消费方打印日志以后,将执行日志上传至云端。

s240、获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言。

s250、根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识。

s260、根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。

在一个可选的实施例中,根据所述链路跟踪标识确定所述请求指令的链路跟踪结果,包括:获取由消费端打印的所述请求指令的执行日志;其中,所述执行日志包括:所述请求指令执行情况记录和所述请求指令的链路跟踪标识记录;根据所述链路跟踪标识,从所述执行日志获取所述请求指令的链路跟踪结果。

其中,获取由消费端打印的所述请求指令的执行日志具体是从云端获取消费端打印的请求指令执行日志。该执行日志包括:请求指令执行情况记录和请求指令的链路跟踪标识记录,请求指令执行情况包括:请求指令的执行时间和请求指令的上下游请求关系等信息。

根据链路跟踪标识,从各个消费方的执行日志中获取该请求指令的链路跟踪结果即该请求指令的调用情况。

在一个可选的实施例中,在所述根据所述链路跟踪标识确定所述请求指令的链路跟踪结果之后,还包括:根据所述请求指令的链路跟踪结果确定生成所述请求指令的应用端信息;发送所述应用端信息至客户端,以供用户对所述请求指令的超时原因进行分析。

由于链路跟踪结果是请求指令的调用情况集中展示,链路跟踪结果中包括请求指令的各消费端信息以及生成请求指令的应用端信息,在得到请求指令的链路跟踪结果以后,即可确定生成请求指令的应用端信息。

其中,应用端信息包括应用端的标识信息和应用端发送该请求指令的时间等信息。将应用端信息发送至客户端,用户再根据该应用端信息对请求指令的超时原因进行分析。其中,用户是指开发生成该请求指令的应用端的开发人员。

示例性的,当请求指令为查询客户的历史所有账单数据,开发人员的实现方式为通过sql脚本“select*from用户历史账单表where用户=88888”一次性查询客户所有的历史账单。在客户账单达到万级别的情况下,程序性能就会变差。通过数据库的慢sql分析工具,可以分析脚本“select*from用户历史账单表where用户=88888”为慢sql。为了定位该慢sql具体由哪个应用端的业务产生的,通过执行sql脚本“select*from用户历史账单表where用户=88888and链路跟踪标识=链路跟踪标识”即可获得该慢sql的链路跟踪标识,再根据该链路跟踪标识从消费端打印的执行日志中定位到生成该慢sql的应用端,再确定该应用端的开发人员,由该开发人员进行对该慢sql脚本进行优化。

本发明实施例通过链路跟踪结果确定到生成请求指令的应用端信息定位到应用端开发人员,由开发人员对超时的请求指令进行优化,从而提高了系统处理异常效率。

本发明实施例所提供的技术方案,获取应用端生成的请求指令和所述链路跟踪标识;建立所述请求指令与所述链路跟踪标识之间的关联关系;通过所述应用端将所述请求指令发送至所述消费端,以供所述消费端在执行所述请求指令后打印所述请求指令的执行日志,并将所述执行日志上传至云端;获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;根据所述链路跟踪标识确定所述请求指令的链路跟踪结果;本发明实施例通过获取执行超时的请求指令信息,根据所述请求指令信息确定与请求指令相关联的链路跟踪标识,再根据所述链路跟踪标识,从由消费端打印的所述请求指令的执行日志中获取请求指令的链路跟踪结果,简化了请求指令的链路跟踪过程,提高了分布式系统定位引起异常的具体服务的速度和准确性。

实施例三

图3是本发明实施例五中的链路跟踪装置的结构示意图,本实施例可适用对请求指令进行链路跟踪的情况。所述装置可由软件和/或硬件实现,可配置在电子设备中。

如图3所示,该装置可以包括:请求指令信息获取模块310、链路跟踪标识确定模块320和链路跟踪结果确定模块330。

请求指令信息获取模块310,用于获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;

链路跟踪标识确定模块320,用于根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;

链路跟踪结果确定模块330,用于根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。

本发明实施例所提供的技术方案,获取执行超时的请求指令信息;其中,所述请求指令为结构化查询语言;根据所述请求指令信息确定与请求指令相关联的链路跟踪标识;其中,所述链路跟踪标识是在所述请求指令生成过程中构建的唯一标识;根据所述链路跟踪标识确定所述请求指令的链路跟踪结果。本发明实施例所提供的技术方案,可以通过在请求指令中添加链路跟踪标识,根据链路跟踪标识实现对请求指令的链路跟踪,从而提高分布式系统定位引起异常的具体服务的速度和准确性,进而提高系统处理异常效率。

可选的,所述装置还包括:应用端数据获取模块,用于在根据所述请求指令信息确定与请求指令相关联的链路跟踪标识之前,获取应用端生成的请求指令和所述链路跟踪标识;关联关系建立模块,用于建立所述请求指令与所述链路跟踪标识之间的关联关系;请求指令发送模块,用于通过所述应用端将所述请求指令发送至所述消费端,以供所述消费端在执行所述请求指令后打印所述请求指令的执行日志,并将所述执行日志上传至云端。

可选的,所述关联关系建立模块,具体用于通过所述应用端将所述链路跟踪标识添加至所述请求指令中。

可选的,链路跟踪结果确定模块330,包括:执行日志获取子模块,用于获取由消费端打印的所述请求指令的执行日志;其中,所述执行日志包括:所述请求指令执行情况记录和所述请求指令的链路跟踪标识记录;链路跟踪结果获取子模块,用于根据所述链路跟踪标识,从所述执行日志获取所述请求指令的链路跟踪结果。

可选的,所述装置还包括:应用端信息确定模块,用于在所述根据所述链路跟踪标识确定所述请求指令的链路跟踪结果之后,根据所述请求指令的链路跟踪结果确定生成所述请求指令的应用端信息;应用端信息发送模块,用于发送所述应用端信息至客户端,以供用户对所述请求指令的超时原因进行分析。

本发明实施例所提供的链路跟踪装置可执行本发明任意实施例所提供的链路跟踪方法,具备执行链路跟踪方法相应的功能模块和有益效果。

实施例四

根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。

图4为实现本发明实施例的链路跟踪方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴电子设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明实施例的实现。

如图4所示,该电子设备包括:一个或多个处理器410、存储器420,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示电子设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个电子设备提供部分必要的操作(例如,作为电子设备阵列、一组刀片式电子设备、或者多处理器系统)。图4中以一个处理器410为例。

存储器420即为本发明实施例所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本发明实施例所提供的链路跟踪方法。本发明实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本发明实施例所提供的链路跟踪方法。

存储器420作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本发明实施例中的链路跟踪方法对应的程序指令/模块(例如,附图3所示的包括请求指令信息获取模块310、链路跟踪标识确定模块320和链路跟踪结果确定模块330)。处理器410通过运行存储在存储器420中的非瞬时软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的链路跟踪方法。

存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现链路跟踪方法的电子设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至执行链路跟踪方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

执行链路跟踪方法的电子设备还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。

输入装置430可接收输入的数字或字符信息,以及产生与执行链路跟踪方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置440可以包括显示电子设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示电子设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示电子设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、电子设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明实施例中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明实施例公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明实施例保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明实施例的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明实施例保护范围之内。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1