本申请涉及计算机技术领域,公开了一种链路跟踪方法及系统。该方法包括接收用户输入的业务请求。为对应的批量业务生成第一批量业务号。之后,获取业务处理流程的至少两个阶段中每个阶段的跟踪日志。其中,每个跟踪日志与第一批量业务号对应。进而,基于第一批量业务号对应的跟踪日志得到所述批量业务的跟踪日志。可见,本申请的链路跟踪系统分别将每个阶段作为一条跟踪链路,不仅能够简化各链路的顺序号,节省链路跟踪系统的传输资源和处理资源,而且,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。业务处理系统的整体性能。业务处理系统的整体性能。
【技术实现步骤摘要】
链路跟踪方法及系统
[0001]本申请涉及计算机
,尤其涉及一种链路跟踪方法及系统。
技术介绍
[0002]目前,互联网服务通常由大规模分布式集群实现。例如,用户触发的一次请求相关的业务可以由一个或多个集群去处理。该一个或多个集群可以处理请求对应的不同业务,最终完成请求对应的全部业务,向用户反馈请求的响应。
[0003]为了更好的理解分布式集群构建的业务处理系统系统,定位异常事件,分析业务处理性能等,本领域采用链路跟踪(tracing)技术,随业务处理流程的进行采集业务处理流程中涉及的处理状态信息,例如各个业务处理阶段占用的时间、资源等,然后,对所采集的信息进行汇总和分析。本领域可以将采用链路跟踪技术采集的信息称为跟踪日志。
[0004]一种常用的链路跟踪方案,以批量业务处理系统系统为整体执行链路跟踪,即将批量业务的处理链路作为一条链路进行跟踪,以及获取该链路的跟踪日志。然而,这样的链路跟踪方案跟踪性能不佳,且得到的跟踪日志无法很好的表现出批量业务处理系统系统的性能。
技术实现思路
[0005]本申请实施例提供了一种链路跟踪方法及系统,以解决现有链路跟踪方案跟踪性能不佳,以及得到的跟踪日志无法很好的表现批量业务处理系统性能的问题。
[0006]本申请所述的链路跟踪系统基于业务处理系统布局,用于跟踪相应业务处理系统对业务的处理流程。实际实现中,链路跟踪系统可以在业务节点预设跟踪逻辑,以使业务节点执行业务处理过程中,执行相应跟踪逻辑,生成跟踪日志。业务节点是指业务处理系统中用于执行业务处理的功能模块。链路跟踪系统可以将业务处理流程划分为至少两个阶段(stage),其中每个stage包括至少一个业务节点。
[0007]第一方面,本申请实施例提供了一种链路跟踪方法,所述方法包括:接收用户输入的业务请求;为所述业务请求对应的批量业务生成第一批量业务号;获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,所述跟踪日志与所述第一批量业务号对应,所述业务处理流程是处理所述批量业务的流程;基于所述第一批量业务号对应的跟踪日志得到所述批量业务的跟踪日志。
[0008]其中,批量业务是指一次业务请求触发的多个相同属性、相同处理流程的具体业务内容。即使两次业务请求对应的批量业务的属性相同,两次业务请求对应的依然是两个批量业务。此外,业务处理流程被触发之后,用于跟踪该业务处理流程的跟踪流程随之被触发。基于此,当业务处理系统接收到业务处理请求,应用于该业务处理系统的链路跟踪系统的跟踪操作被触发。为了明确本次业务对应的批量业务的跟踪日志,链路跟踪系统为本次业务生成第一批量业务号。进而,链路跟踪系统的每个阶段生成跟踪日志,且每个阶段对应本次业务的跟踪日志均包含第一批量业务号,使得链路跟踪系统获取各阶段的跟踪日志之
后,可以基于第一批量业务号得到本次业务的跟踪日志。可见,采用本实现方式,链路跟踪系统不仅能够并行跟踪多个批量业务,而且将每个阶段作为一个跟踪链路,使得每个链路的顺序号等相对简短,从而节省链路跟踪系统的传输资源和处理资源,优化链路跟踪系统的性能。另外,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。
[0009]在一种可能的设计中,获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,包括:获取每个阶段中业务节点的跟踪日志,所述业务节点是执行所述业务处理流程的功能节点。采用本实现方式,链路跟踪系统能够以阶段为单位,设置每个业务节点的跟踪逻辑,操作较为简单。
[0010]在一种可能的设计中,在获取每个阶段中业务节点的跟踪日志之前,还包括:当所述业务节点是第一阶段中的第一个节点时,所述业务节点生成第一跟踪标识和第一顺序号,所述第一跟踪标识用于标识所述第一阶段的跟踪日志,所述第一顺序号用于标识所述业务节点在所述第一阶段的处理层级,所述第一阶段是所述至少两个阶段中的任一阶段;所述业务节点将所述第一跟踪标识、所述第一顺序号和所述第一批量业务号传输到所述业务节点在所述第一阶段中的下一级业务节点。其中,第一阶段中的第一个节点即第一阶段的首节点。本实施例中,每个阶段首节点创建该阶段的上下文跟踪信息。例如,第一阶段的首节点生成第一跟踪标识和第一顺序号。第一跟踪标识用于标识第一阶段各节点的跟踪日志。第一顺序号仅用于指示第一阶段中首节点的调用层级。应理解,链路跟踪系统中其他阶段的跟踪逻辑,与第一阶段相似,此处不详述。可见,采用本实现方式,链路跟踪系统中每个阶段独立设置跟踪标识和顺序号,使得链路跟踪系统中的顺序号均较为简洁,从而节省链路跟踪系统的传输资源和处理资源,并且能够优化链路跟踪系统的性能。
[0011]在一种可能的设计中,还包括:获取第一阶段中的业务节点对跟踪旗标识的业务生成的跟踪日志,所述第一阶段是所述至少两个阶段中的任一阶段,所述业务属于所述批量业务。本申请实施例中,为了生成指定业务(例如未采样但出现异常业务等)的跟踪日志,链路跟踪系统还提供了跟踪旗的机制。跟踪旗用于指示第一阶段中的业务节点对该跟踪旗标识的业务生成跟踪日志。跟踪旗的优先级高于采样率,即设置跟踪旗的业务无论是否被采样,业务节点均生成该业务的跟踪日志。一些实施例中,跟踪旗可以是第一跟踪旗。第一跟踪旗可以由各阶段的首节点可以对应特定业务生成跟踪旗,以使该阶段的每个业务节点均生成相应特定业务的跟踪日志。另一些实施例中,跟踪旗可以是第二跟踪旗。采用率之外的业务若发生异常,发生异常时的业务节点(例如第一阶段的非首节点)为该业务生成跟踪旗,以使第一阶段中该异常业务的后续处理节点均生成该异常业务的跟踪日志。这样能够通过设置跟踪旗指示各业务节点对特定业务生成跟踪日志,从而能够对特定业务的业务处理流程进行完整的跟踪和记录。
[0012]在一种可能的设计中,获取每个阶段中业务节点的跟踪日志,包括:获取第一业务节点按照第一采样率生成的跟踪日志,以及获取第二业务节点按照第二采样率生成的跟踪日志。通常,为了节省链路跟踪系统的开销,本领域相关技术人员可以设置链路跟踪系统中每个业务节点的采用率,以使业务节点仅生成所采样的业务的跟踪日志。本申请实施例中,每个业务节点的采样率与该业务节点的负载情况对应,使得各业务节点的开销相似,从而提供整个链路跟踪系统的性能。一种可能的实现方式中,上述首节点和非首节点的采样率
也可以不同。
[0013]第二方面,本申请提供了一种链路跟踪系统,该链路跟踪系统具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块以及业务节点。在一个可能的设计中,上述链路跟踪系统的结构中包括处理器和接收器,所述处理器被配置为处理该链路跟踪系统执行上述方法中相应的功能。所述接收器用于实现上述链路跟踪系统接收用户输入的业务请求。所述链路跟踪系统还可以包括存储器,所述存储器用于与处理器耦合,其保存该链路跟踪系统必要的程序指令和数据。
[0014]第三方面,本申请还提供本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种链路跟踪方法,其特征在于,所述方法包括:接收用户输入的业务请求;为所述业务请求对应的批量业务生成第一批量业务号;获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,所述跟踪日志与所述第一批量业务号对应,所述业务处理流程是处理所述批量业务的流程;基于所述第一批量业务号对应的跟踪日志得到所述批量业务的跟踪日志。2.如权利要求1所述的方法,其特征在于,获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,包括:获取每个阶段中业务节点的跟踪日志,所述业务节点是执行所述业务处理流程的功能节点。3.如权利要求1或2所述的方法,其特征在于,在获取每个阶段中业务节点的跟踪日志之前,还包括:当所述业务节点是第一阶段中的第一个节点时,所述业务节点生成第一跟踪标识和第一顺序号,所述第一跟踪标识用于标识所述第一阶段的跟踪日志,所述第一顺序号用于标识所述业务节点在所述第一阶段的处理层级,所述第一阶段是所述至少两个阶段中的任一阶段;所述业务节点将所述第一跟踪标识、所述第一顺序号和所述第一批量业务号传输到所述业务节点在所述第一阶段中的下一级业务节点。4.如权利要求2所述的方法,其特征在于,获取每个阶段中业务节点的跟踪日志,包括:获取第一阶段中的业务节点对跟踪旗标识的业务生成的跟踪日志,所述第一阶段是所述至少两个阶段中的任一阶段,所述业务属于所述批量业务。5.如权利要求2所述的方法,其特征在于,获取每个阶段中业务节点的跟踪日志,包括:获取第一业务节点按照第一采样率生成的跟踪日志,以及获取第二业务节点按照第二采样率生成的跟踪日志。6.一种链路跟踪系统,其特征在于,所述系统包括接收模块、生成模块、获取模块和得到模块,其中...
【专利技术属性】
技术研发人员:沈尧,宋建阳,柯海峰,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。