一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

链路跟踪方法及系统与流程

2021-12-03 23:16:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种链路跟踪方法及系统。


背景技术:

2.目前,互联网服务通常由大规模分布式集群实现。例如,用户触发的一次请求相关的业务可以由一个或多个集群去处理。该一个或多个集群可以处理请求对应的不同业务,最终完成请求对应的全部业务,向用户反馈请求的响应。
3.为了更好的理解分布式集群构建的业务处理系统系统,定位异常事件,分析业务处理性能等,本领域采用链路跟踪(tracing)技术,随业务处理流程的进行采集业务处理流程中涉及的处理状态信息,例如各个业务处理阶段占用的时间、资源等,然后,对所采集的信息进行汇总和分析。本领域可以将采用链路跟踪技术采集的信息称为跟踪日志。
4.一种常用的链路跟踪方案,以批量业务处理系统系统为整体执行链路跟踪,即将批量业务的处理链路作为一条链路进行跟踪,以及获取该链路的跟踪日志。然而,这样的链路跟踪方案跟踪性能不佳,且得到的跟踪日志无法很好的表现出批量业务处理系统系统的性能。


技术实现要素:

5.本技术实施例提供了一种链路跟踪方法及系统,以解决现有链路跟踪方案跟踪性能不佳,以及得到的跟踪日志无法很好的表现批量业务处理系统性能的问题。
6.本技术所述的链路跟踪系统基于业务处理系统布局,用于跟踪相应业务处理系统对业务的处理流程。实际实现中,链路跟踪系统可以在业务节点预设跟踪逻辑,以使业务节点执行业务处理过程中,执行相应跟踪逻辑,生成跟踪日志。业务节点是指业务处理系统中用于执行业务处理的功能模块。链路跟踪系统可以将业务处理流程划分为至少两个阶段(stage),其中每个stage包括至少一个业务节点。
7.第一方面,本技术实施例提供了一种链路跟踪方法,所述方法包括:接收用户输入的业务请求;为所述业务请求对应的批量业务生成第一批量业务号;获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,所述跟踪日志与所述第一批量业务号对应,所述业务处理流程是处理所述批量业务的流程;基于所述第一批量业务号对应的跟踪日志得到所述批量业务的跟踪日志。
8.其中,批量业务是指一次业务请求触发的多个相同属性、相同处理流程的具体业务内容。即使两次业务请求对应的批量业务的属性相同,两次业务请求对应的依然是两个批量业务。此外,业务处理流程被触发之后,用于跟踪该业务处理流程的跟踪流程随之被触发。基于此,当业务处理系统接收到业务处理请求,应用于该业务处理系统的链路跟踪系统的跟踪操作被触发。为了明确本次业务对应的批量业务的跟踪日志,链路跟踪系统为本次业务生成第一批量业务号。进而,链路跟踪系统的每个阶段生成跟踪日志,且每个阶段对应本次业务的跟踪日志均包含第一批量业务号,使得链路跟踪系统获取各阶段的跟踪日志之
后,可以基于第一批量业务号得到本次业务的跟踪日志。可见,采用本实现方式,链路跟踪系统不仅能够并行跟踪多个批量业务,而且将每个阶段作为一个跟踪链路,使得每个链路的顺序号等相对简短,从而节省链路跟踪系统的传输资源和处理资源,优化链路跟踪系统的性能。另外,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。
9.在一种可能的设计中,获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,包括:获取每个阶段中业务节点的跟踪日志,所述业务节点是执行所述业务处理流程的功能节点。采用本实现方式,链路跟踪系统能够以阶段为单位,设置每个业务节点的跟踪逻辑,操作较为简单。
10.在一种可能的设计中,在获取每个阶段中业务节点的跟踪日志之前,还包括:当所述业务节点是第一阶段中的第一个节点时,所述业务节点生成第一跟踪标识和第一顺序号,所述第一跟踪标识用于标识所述第一阶段的跟踪日志,所述第一顺序号用于标识所述业务节点在所述第一阶段的处理层级,所述第一阶段是所述至少两个阶段中的任一阶段;所述业务节点将所述第一跟踪标识、所述第一顺序号和所述第一批量业务号传输到所述业务节点在所述第一阶段中的下一级业务节点。其中,第一阶段中的第一个节点即第一阶段的首节点。本实施例中,每个阶段首节点创建该阶段的上下文跟踪信息。例如,第一阶段的首节点生成第一跟踪标识和第一顺序号。第一跟踪标识用于标识第一阶段各节点的跟踪日志。第一顺序号仅用于指示第一阶段中首节点的调用层级。应理解,链路跟踪系统中其他阶段的跟踪逻辑,与第一阶段相似,此处不详述。可见,采用本实现方式,链路跟踪系统中每个阶段独立设置跟踪标识和顺序号,使得链路跟踪系统中的顺序号均较为简洁,从而节省链路跟踪系统的传输资源和处理资源,并且能够优化链路跟踪系统的性能。
11.在一种可能的设计中,还包括:获取第一阶段中的业务节点对跟踪旗标识的业务生成的跟踪日志,所述第一阶段是所述至少两个阶段中的任一阶段,所述业务属于所述批量业务。本技术实施例中,为了生成指定业务(例如未采样但出现异常业务等)的跟踪日志,链路跟踪系统还提供了跟踪旗的机制。跟踪旗用于指示第一阶段中的业务节点对该跟踪旗标识的业务生成跟踪日志。跟踪旗的优先级高于采样率,即设置跟踪旗的业务无论是否被采样,业务节点均生成该业务的跟踪日志。一些实施例中,跟踪旗可以是第一跟踪旗。第一跟踪旗可以由各阶段的首节点可以对应特定业务生成跟踪旗,以使该阶段的每个业务节点均生成相应特定业务的跟踪日志。另一些实施例中,跟踪旗可以是第二跟踪旗。采用率之外的业务若发生异常,发生异常时的业务节点(例如第一阶段的非首节点)为该业务生成跟踪旗,以使第一阶段中该异常业务的后续处理节点均生成该异常业务的跟踪日志。这样能够通过设置跟踪旗指示各业务节点对特定业务生成跟踪日志,从而能够对特定业务的业务处理流程进行完整的跟踪和记录。
12.在一种可能的设计中,获取每个阶段中业务节点的跟踪日志,包括:获取第一业务节点按照第一采样率生成的跟踪日志,以及获取第二业务节点按照第二采样率生成的跟踪日志。通常,为了节省链路跟踪系统的开销,本领域相关技术人员可以设置链路跟踪系统中每个业务节点的采用率,以使业务节点仅生成所采样的业务的跟踪日志。本技术实施例中,每个业务节点的采样率与该业务节点的负载情况对应,使得各业务节点的开销相似,从而提供整个链路跟踪系统的性能。一种可能的实现方式中,上述首节点和非首节点的采样率
也可以不同。
13.第二方面,本技术提供了一种链路跟踪系统,该链路跟踪系统具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块以及业务节点。在一个可能的设计中,上述链路跟踪系统的结构中包括处理器和接收器,所述处理器被配置为处理该链路跟踪系统执行上述方法中相应的功能。所述接收器用于实现上述链路跟踪系统接收用户输入的业务请求。所述链路跟踪系统还可以包括存储器,所述存储器用于与处理器耦合,其保存该链路跟踪系统必要的程序指令和数据。
14.第三方面,本技术还提供了一种芯片系统,该芯片系统设置于第二方面中的链路跟踪系统,包括至少一个处理器和接口。所述接口与所述处理器耦合,用于接收代码指令,并将代码指令传输到所述至少一个处理器。所述至少一个处理器运行所述代码指令,并实现第一方面及第一方面各种可能的实现方式中的链路跟踪方法部分或全部步骤。
15.第四方面,本技术提供了一种计算机存储介质,该计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行第一方面及第一方面的各种可能的实现方式中的链路跟踪方法部分或全部步骤。
16.第五方面,本技术提供了一种计算机程序产品,该计算机程序产品在计算机上运行时,使得计算机执行第一方面及第一方面的各种可能的实现方式中的链路跟踪方法部分或全部步骤。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术实施例提供的常规链路跟踪系统1的示例性架构示意图;
19.图2a是本技术实施例提供的链路跟踪系统10的示例性逻辑架构示意图;
20.图2b是本技术实施例提供的链路跟踪系统10的示例性流程架构示意图;
21.图2c是本技术实施例提供的链路跟踪系统涉及的阶段(stage)的示例性场景示意图;
22.图3是本技术实施例提供的链路跟踪方法10的示例性方法流程图;
23.图4a是本技术实施例提供的链路跟踪系统20的示例性架构示意图;
24.图4b是图4a中涉及的五个stage的示例性场景示意图;
25.图5a为本技术提供的链路跟踪系统50的示例性组成示意图;
26.图5b为本技术提供的链路跟踪系统51的示例性结构示意图。
具体实施方式
27.下面将结合本技术中的附图,对本技术的技术方案进行清楚地描述。
28.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下
文中明确地有相反指示。还应当理解,尽管在以下实施例中可能采用术语第一、第二等来描述某一类对象,但所述对象不应限于这些术语。这些术语仅用来将该类对象的具体对象进行区分。例如,以下实施例中可能采用术语第一、第二等来描述业务节点,但业务节点不应限于这些术语。这些术语仅用来将不同业务节点进行区分。以下实施例中可能采用术语第一、第二等来描述的其他类对象同理,此处不再赘述。
29.本技术涉及批量业务的链路跟踪技术。批量业务是指一次业务请求触发的多个相同属性、相同处理流程的具体业务。示例性的,批量手机号码的开户业务是指一次开户请求例如触发至少两个手机号码开户的业务,该至少两个手机号码例如是1000个手机号码。批量邮箱账户开户业务是指一次开户请求例如触发至少两个邮箱账户的开户业务,该至少两个邮箱账户例如是100个邮箱账户。
30.如图1所示,一种常规链路跟踪系统11通常将完整的批量业务处理系统作为一条链路执行链路跟踪。相应的,链路跟踪系统1通过顺序号(sequence number,seqno)指示该业务处理系统形成的跟踪链路的处理层级。例如,图1中业务节点1的seqno是1,业务处理节点2的seqno是1.1,业务处理节点4的seqno是1.1.1,业务处理节点7的seqno是1.1.1.1,业务处理节点8的seqno是1.1.1.2,业务处理节点8的seqno是1.1.1.3。即,随着处理层级越来越高seqno越来越大,链路跟踪系统1消耗的传递资源的和处理资源也越来越多。这样不仅链路跟踪系统1的性能不佳,而且还会影响业务处理系统的性能。进而,若图1示意的业务处理系统出现异常,链路跟踪系统1无法定位发生异常的原因在于链路跟踪系统1还是业务处理系统,从而无法表征业务处理系统的整体性能。
31.本技术实施例提供了一种链路跟踪方法及系统,该链路跟踪系统将批量业务的业务处理流程划分为至少两个阶段,进而,分别将该至少两个阶段中的每个阶段作为一条跟踪链路,获取每个跟踪链路的跟踪日志。这样能够简化各链路的顺序号,节省链路跟踪系统的传输资源和处理资源,从而优化链路跟踪系统的性能。而且,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。
32.可以理解的是,本技术实施例还可以适用于面向未来的链路跟踪技术。本技术描述的链路跟踪系统以及业务场景是为了更加清楚的说明本技术的技术方案,并不构成对本技术提供的技术方案的限定,本领域普通技术人员可知,随着链路跟踪系统的演变和新业务场景的出现,本技术提供的技术方案对于类似的技术问题,同样适用。
33.图2a示意了一种链路跟踪系统10。链路跟踪系统10基于分布式集群设置。示例性地,链路跟踪系统10包括基础模块11、跟踪日志记录模块12、跟踪日志传输模块13、存储模块14、跟踪日志分析模块15、显示模块16和配置模块17。
34.其中,基础模块11可以用于在分布式集群处理批量业务过程中,运行链路跟踪逻辑执行链路跟踪,以及生成跟踪日志。
35.跟踪日志记录模块12可以用于基础模块11生成跟踪日志之后,收集相应跟踪日志。
36.需要指出的是,基础模块11和跟踪日志记录模块12均可以是配置在分布式集群相关功能部件上的功能。相关功能例如包括:定义时间、设置采样率、设置链路路径等。相关功能可以由配置模块17配置。
37.跟踪日志传输模块13可以用于将跟踪日志记录模块12收集的跟踪日志,传输到存储模块14中。跟踪日志传输模块13可以实现为功能组件,例如kafka、storm等。
38.存储模块14可以用于存储跟踪日志。存储模块14可以是具备存储功能的系统或数据库,例如hadoop分布式文件系统(hadoop distributed file system,hdfs)、hadoop数据库(hadoop database,hbase)、关系数据库(relational database,rdb)等。此外,另一些实施例中,存储模块14还可以存储跟踪日志的分析结果数据、批量业务号等。此处不限制。
39.跟踪日志分析模块15可以读取存储模块14中存储的跟踪日志,获取批量业务的跟踪日志,以及分析该批量业务的跟踪日志,以得到分析结果。示例性的,跟踪日志分析模块15可以实现为分析引擎,例如spark、flink。
40.显示模块16可以用于向用户显示跟踪日志分析模块15的分析结果。示例性的,显示模块16可以实现为web用户界面(web user interface,webui)。
41.可以理解的是,图2a示意的链路跟踪系统10并不构成对链路跟踪系统的具体限定。在本技术另一些实施例中,链路跟踪系统可以包括比图示更多或更少的模块,或者组合某些模块,或者拆分某些模块,或者不同的模块布置。图2a示意的模块可以以硬件,软件或软件和硬件的组合的形式实现。
42.图2a从逻辑功能组成的角度对链路跟踪系统10进行了描述。实际实现中,链路跟踪系统10用于跟踪分布式集群构建的业务处理系统的业务处理流程。以下结合业务处理流程,对链路跟踪系统10进行进一步描述。
43.如图2b所示,链路跟踪系统10用于跟踪图2a中分布式集群构建的业务处理系统100的业务处理流程。其中,业务处理系统100例如包括业务节点1、业务节点2、业务节点3至业务节点m,业务节点1至业务节点m用于执行业务处理系统100的业务处理流程。m是大于1的整数。如图2a示意的实施例所述,链路跟踪系统10中的配置模块17通过在业务节点中定义诸如事件或者场景策略等来跟踪业务处理流程,配置模块17在业务节点中定义的事件或者场景策略等,在图2a中表达为基础模块11。示例性的,业务节点在执行业务处理过程中触发预先定义的事件或者场景策略,进而记录处理业务的相关信息,以得到相关跟踪日志。进而,链路跟踪系统10可以收集、存储、分析每个业务节点的跟踪日志,以确定业务处理系统100的性能,以及异常处理等。
44.本技术涉及的“业务节点”可以是具备业务处理功能的功能模块,该功能模块可以实现为软件、硬件或者二者结合。例如,该功能模块可以实现为应用(application,app)、处理器或者服务器等。此处不详述。
45.本技术涉及的“事件”可以实现为基于条件触发的操作。触发条件例如可以是布尔变量。例如,业务节点运行到某指定代码点时,检测到预设的布尔变量为真,进而,业务节点触发事件,执行一系列预设的操作。这些操作例如包括记录下本次事件的名称、事件发生时刻、线程id、事件携带的其他数据等。本技术涉及的“场景策略”同样触发业务节点执行上述链路跟踪操作,此处不详述。本技术涉及的事件以及场景策略可以通过代码植入(instrumentation)实现。代码植入是指用户在程序代码某处(由用户选择)植入一段逻辑(由用户设定),该段逻辑执行时可以记录代码定义的各种信息(例如跟踪日志)。本领域通常将通过代码植入设置tracing逻辑的过程称为“数据埋点”或者“埋点”。
46.进一步的,如图2c所示,本技术实施例涉及的链路跟踪系统将业务处理流程划分
为至少两个阶段(stage),该至少两个stage中的每个stage包括至少一个业务节点,任一stage中的业务节点用于执行该stage对应的业务处理流程。任一stage中的第一个业务节点,也可以称为该stage的首节点,任一stage中除第一个业务节点之外的其他业务节点,也可以称为该stage的非首节点。任一stage中的首节点和非首节点可以均设置埋点,以生成执行以下链路跟踪方法的实施例。关于埋点详见上述实施例的描述,此处不详述。
47.本技术实施例中,将一次业务请求对应的批量业务作为一个批量业务,即使两次业务请求对应的批量业务的属性相同,两次业务请求对应的依然是两个批量业务。例如,用户第一次请求为1000个手机号码开户,第二次请求为500个手机号码开户,本示例中,用户触发了两个批量业务,第一个批量业务包括1000个手机号码开户业务,第二个批量业务包括500个手机号码开户业务。一些实施场景中,“业务”还可以被描述为“任务”或者“订单”,本说明书中若出现术语“任务”或者“订单”均可以指代“业务”。
48.随着业务处理流程的进行,一个批量业务可以被拆分为多个子批量业务,其中,每个子批量业务包含该批量业务的部分内容。为了更清楚的表达,本技术上下文中,将业务请求触发的多个业务命名为“批量业务”,将该“批量业务”的分支或者分片后对应的子批量业务命名为“业务”。其中,“业务”包含“批量业务”中的部分内容。例如,用户请求为1000个手机号码开户,该“1000个手机号码的开户业务”被称为本次业务请求的“批量业务”,其中任意“100个手机号码的开户业务”或者“1个手机号码的开户业务”或者小于1000的手机号码的开户业务,均被称为该“批量业务”的“业务”。
49.图3示意了一种链路跟踪方法10的方法流程图。链路跟踪方法10(以下简称方法10)应用于链路跟踪系统,该链路跟踪系统可以如图2b示意的实施例所述。该链路跟踪系统包括多个业务节点,各业务节点与stage的关系详见图2c示意的实施例所述。方法10包括以下步骤:
50.步骤s11,接收用户输入的业务请求。
51.其中,该业务请求触发业务处理系统执行一个批量业务。业务处理系统执行批量业务过程中,触发该业务处理系统对应的链路跟踪系统对该业务请求的处理流程执行链路跟踪。
52.实际实现中,接收该业务请求的例如是第一个stage的首节点。该业务请求可以是用户通过客户端的应用界面触发的,该业务请求例如是批量手机号码的开户业务。
53.步骤s12,为业务请求对应的批量业务生成第一批量业务号。
54.其中,链路跟踪系统在同一时间段可以跟踪多个批量业务,为了标识不同批量业务的跟踪日志,链路跟踪系统为每个批量业务分配批量业务号。应理解,批量业务号也可以是由业务处理系统分配的,本技术对此不做限定。本技术中以链路跟踪系统分配批量业务号为例进行说明。链路跟踪系统分配的第一批量业务号(batch number,batchno)用于标识批量业务的。具体地,batchno用于标识步骤s11对应的批量业务的跟踪日志。一些实施例中,若链路跟踪系统同一时间段还对另一个批量业务执行链路跟踪,链路跟踪系统可以为该另一个批量业务分配第二batchno。
55.一些实施例中,该批量业务的业务标识可以用作第一batchno。另一些实施例中,第一batchno由链路跟踪系统生成,第一batchno不同于该批量业务的业务标识。
56.进一步的,一些实施例中,链路跟踪系统生成第一批量业务号之后,将该第一批量
业务号配置给链路跟踪系统第一个阶段中的首节点(例如通过配置模块配置),以使该第一批量业务号在业务节点之间传输。另一些实施例中,链路跟踪系统生成第一批量业务号之后,将该第一批量业务号存储到数据库中,以便于在批量业务跟踪过程中,从数据库中读取该第一批量业务号。示例性的,链路跟踪系统可以将该第一批量业务号与该业务请求对应的账号对应存储。该业务请求对应的账号例如是触发该业务请求的用户的登陆账号。
57.步骤s13,获取业务处理流程的至少两个阶段中每个阶段的跟踪日志。
58.其中,每个stage的跟踪日志与该stage所跟踪业务的批量业务号对应。一些实施例中,跟踪日志中可以包含相应批量业务号。
59.根据上述对链路跟踪系统的描述可知,该至少两个stage中每个stage包括至少一个业务节点,而业务节点用于执行业务处理流程。基于此,链路跟踪系统获取业务处理流程的至少两个阶段中每个stage的跟踪日志,实质上可以理解为获取每个stage中业务节点的跟踪日志。相应的,若stage中包含一个业务节点,该stage的跟踪日志包含一个业务节点生成的跟踪日志。若stage中包含至少两个业务节点,该stage的跟踪日志包含至少两个业务节点生成的跟踪日志。
60.本技术中同一批量业务的跟踪日志,对应该批量业务的批量业务号。例如,一些实施例中,链路跟踪系统为某一批量业务生成第一批量业务号,从而链路跟踪系统中每个阶段的业务节点,可以随批量业务的处理流程,将该第一批量业务号传递到下一个节点,以使各个业务节点为该批量业务生成的跟踪日志与第一批量业务号对应。另一些实施例中,链路跟踪系统生成第一批量业务号之后,将第一批量业务号存储到数据库。进而,链路跟踪系统中每个阶段的首节点执行跟踪过程中,可以确定批量业务对应的账号(即业务请求对应的账号),之后,在数据库中读取与该账号对应的第一批量业务号。进而,随批量业务的处理流程,该首节点将第一批量业务号传递到该首节点在该阶段的下一个业务节点,以使各个业务节点为该批量业务生成的跟踪日志与第一批量业务号对应。
61.本技术通过跟踪标识(trace identity,traceid)将属于同一阶段(也即本技术实施例的同一跟踪链路)的跟踪日志相关联。链路跟踪系统不同阶段的traceid各不相同。随批量业务在该阶段的处理流程的进行,每个阶段的traceid在该阶段中的各业务节点间传输,并且每个阶段的traceid与该阶段各业务节点生成的跟踪日志对应存储,从而将一个阶段的跟踪日志通过该阶段的traceid相关联。
62.本技术通过seqno指示同一阶段(也即本技术实施例的同一跟踪链路)中业务节点的处理层级。该阶段每个业务节点生成的跟踪日志与相应业务节点的seqno对应存储,以指示每个业务节点生成的跟踪日志对应的处理层级。本技术实施例中,任一阶段首节点的seqno可以是1,该首节点可以将该首节点的seqno传输到该首节点在相应阶段中的下一个业务节点。该下一个业务节点可以根据首节点的seqno生成该下一个业务节点的seqno。示例性的,该下一个业务节点可以通过在所接收seqno的基础上添加新的数据生成该下一个业务节点的seqno,该下一个业务节点的seqno例如是1.1。同一阶段中其他非首节点的seqno,同样根据其上一个业务节点的seqno得到,此处不详述。
63.本技术实施例中,得到该至少两个stage跟踪日志的实施过程基本相同,以下以第一stage为例,对得到该至少两个stage中每个stage跟踪日志的实现过程进行示例性描述。
64.第一stage例如是该至少两个stage中的任一stage。第一stage中例如包括首节点
(即第一stage中的第一个业务节点)和非首节点(即第一stage中的第一个业务节点之外的其他业务节点)。为了实现对业务处理流程的跟踪,链路跟踪系统预先对首节点和非首节点设置埋点。
65.进而,首节点执行批量业务处理的场景中,该首节点可以基于埋点的执行逻辑创建调用链的上下文跟踪信息。本示例中,调用链是指第一stage。调用链的上下文跟踪信息即跟踪第一stage业务处理流程所涉及的信息,例如包括跟踪标识、顺序号等。创建调用链的上下文跟踪信息之前,该首节点还进行校验类工作,包括但不限于开关校验、场景入口链路过滤条件、采样率控制等。校验通过后,该首节点生成第一跟踪标识和第一顺序号。该第一跟踪标识用于标识第一stage的跟踪日志。第一顺序号用于标识该首节点在第一stage的处理层级。在该首节点完成业务处理之后,该首节点将第一跟踪标识、第一顺序号和第一批量业务号传输到该首节点在第一stage中的下一级业务节点(也即第一stage的非首节点)。其中,第一批量业务号相关的实施例详见上述实施例描述,此处不详述。
66.第一stage中的非首节点执行批量业务处理的场景中,该非首节点可以根据第一顺序号确定第二顺序号。第二顺序号用于标识该非首节点在第一stage的处理层级。示例性的,该非首节点可以通过在第一顺序号的基础上添加数据得到第二顺序号。若该非首节点在第一stage中还包括下一级业务节点,在完成业务处理之后,该非首节点将第一跟踪标识、第二顺序号和第一批量业务号传输到该非首节点在第一stage中的下一级业务节点。
67.此外,若该非首节点是第一stage中的最后一级业务节点,且该第一stage之后还包括第二stage。在完成业务处理之后,该非首节点将第一批量业务号传输到第二stage的首节点,以使第二stage的跟踪日志与该第一批量业务号对应。但该非首节点并不将第一跟踪标识和该非首节点的顺序号发送给第二stage的首节点。第二stage的首节点新建一个调用链的上下文跟踪信息,即重新生成第二stage的跟踪标识和顺序号。
68.可以理解的是,上述第一stage中的首节点和非首节点的实施过程,仅是示意性描述。另一些实施例中,链路跟踪系统生成第一批量业务号之后,将第一批量业务号与批量业务对应的账号对应存储在数据库中。第一stage中的首节点执行跟踪过程中,可以获取所处理的批量业务对应的账号,之后,根据账号从数据库中读取第一批量业务号,以及将第一批量业务号和第一跟踪标识、第一顺序号传输到该首节点在第一stage中的下一级业务节点。此外,本实施例中,若非首节点是第一stage中的最后一级业务节点,该非首节点不再将第一批量业务号传输到第二stage的首节点。第二stage的首节点同样可以根据账号从数据库中获取第一批量业务号。此处不详述。
69.需要指出的是,为了在跟踪有效性和系统消耗之间取得平衡,本领域相关技术人员可以设置链路跟踪系统中每个业务节点的采用率,以使相应业务节点按照采样率对所处理的具体业务采样,以及生成所采样的具体业务的跟踪日志。具体地,采样率可以是技术人员通过配置模块向每个业务节点分别下发的。例如,以批量手机号码开户业务为例,若某业务节点的采样率设置为100,则该业务节点每处理100个手机号码开户相关的业务,对其中一个业务生成跟踪日志;若某业务节点的采样率设置为1,则该业务节点对每个手机号码开户相关的业务都生成跟踪日志。一些常规操作中,链路跟踪系统各个业务节点的采用率被设置为相同,这样就导致采样率较大时,业务节点的采样频率较低,使得业务节点的资源消耗较小,但是在批量业务吞吐量较大的场景下,跟踪有效性才能较好。采样率较小时,业务
节点的采样频率较高,虽然能够确保跟踪有效性较好,但是业务节点的资源消耗很大。
70.基于此,通常,各个业务节点的负载情况并不一致,本技术实施例中,每个业务节点的采样率可以与该业务节点的负载情况对应,进而,第一业务节点可以按照第一采样率生成跟踪日志,第二业务节点可以按照第二采样率生成跟踪日志。第一业务节点和第二业务节点可以是链路跟踪系统中的任意节点。这样能够确保无论批量业务的吞吐量大小如何,链路跟踪系统中各个业务节点的资源消耗与链路跟踪系统的跟踪有效性能够达到平衡,从而提高整个链路跟踪系统的性能。一种可能的实现方式中,上述首节点和非首节点的采样率也可以不同。
71.此外,本技术实施例还提供有跟踪旗(traceflag)机制。跟踪旗可以标识业务,并指示第一stage中的业务节点对跟踪旗标识的业务生成跟踪日志。此处所述“业务”包含于上述“批量业务”。对应不同实施场景,跟踪旗可以是第一跟踪旗或者第二跟踪旗。例如,第一跟踪旗是“101”,第二跟踪旗是“102”。
72.示例性的,一些实施例中,若第一stage需要记录某项特定业务的跟踪日志,例如,生成账户是“abc100”的业务的跟踪日志,首节点执行业务处理的场景中还可以生成第一跟踪旗,以及将该第一跟踪旗传输到该首节点在第一stage中的下一级业务节点。该第一跟踪旗用于指示第一stage的每个业务节点生成第一跟踪旗指示的业务的跟踪日志。示例性的,批量业务例如是1000个手机号码开户业务,第一跟踪旗标识的例如是1000个手机号码开户业务中的10个手机号码对应的开户业务。
73.另一些实施例中,未被第一stage中的某非首节点采样的一项具体业务,在该非首节点产生异常,该非首节点可以对该异常业务添加第二跟踪旗,第二跟踪旗用于指示第一stage中该非首节点后续的业务处理流程中,均生成该异常业务的跟踪日志。一种可能的实现方式中,该非首节点添加第二跟踪旗之后,还可以将该异常业务返回首节点,该首节点还可以在该异常业务的跟踪标识之前添加“erro”标志。应理解,若首节点产生异常,处理也是类似的。
74.需要指出的是,跟踪旗的优先级高于采样率,即无论设置跟踪旗的业务是否被采样,业务节点均生成该业务的跟踪日志。这样能够确保该业务的跟踪日志能够被完整的记录,从而便于分析该业务的处理性能。
75.可以理解的是,上述第一stage仅是示意性描述,不构成对本技术实施例的限制。另一些实施例中,第一stage还可以包括更多或者更少的业务节点,此处不限制。
76.此外,以上仅是以第一stage为例,对stage中各业务节点实施过程的描述。链路跟踪系统中其他stage的实施过程与第一stage相似,例如,第二stage的首节点可以创建第二stage的上下文跟踪信息,即生成第二跟踪标识和第三顺序号,第二跟踪标识用于标识第二stage的跟踪日志。第三顺序号用于标识该首节点在第二stage的处理层级。此处不再详述。
77.步骤s14,基于第一批量业务号对应的跟踪日志得到批量业务的跟踪日志。
78.其中,在获取每个stage的跟踪日志之后,链路跟踪系统可以读取每个跟踪日志对应的第一批量业务号,之后,将对应第一批量业务号的跟踪日志作为步骤s11至s13中所述批量业务的跟踪日志。进而,链路跟踪系统可以分析该批量业务的跟踪日志,以及显示分析结果。
79.可见,采用本技术实施例的实现方式,链路跟踪系统对应每个批量业务配置批量
业务号,之后,将每个阶段作为一个跟踪链路,分别得到每个阶段的跟踪日志。对于同一批量业务,每个阶段的跟踪日志对应该批量业务的批量业务号。进而,链路跟踪系统基于批量业务号得到该批量业务的跟踪日志。这样,链路跟踪系统不仅能够并行跟踪多个批量业务,而且各阶段的分支链路相对较少,使得每个链路的顺序号等相对简短,从而节省链路跟踪系统的传输资源和处理资源,优化链路跟踪系统的性能。另外,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。
80.以下结合实例对本技术实施例的链路跟踪方法进行示例性描述。
81.图4a示意了一种链路跟踪系统20,链路跟踪系统20将业务处理流程划分为批量业务校验、批量业务生成、委托定时、批量业务调度和生成具体订单五个stage。其中,批量业务校验是指对用户输入的业务请求的内容、格式等进行校验的过程。批量业务生成是指对用户输入的业务请求校验通过之后,生成批量业务实例及数据等的过程。委托定时包括将批量业务分片,以及对每个分片进行定时设置两个过程,其中,批量业务分片是指将一个批量业务分为几个子批量业务,一个子批量业务被称为一个分片,也可以称为一个业务。批量业务调度是指对应每个已设置定时的分片生成定时任务,以及将所生成的定时任务发送到消息队列(message queue,mq)的过程。生成具体订单是指基于mq将每个分片的拆分为多个子任务,以及对每个子任务执行处理流程。上述五个stage的具体操作内容此处不详述。本实施例中,用户可以通过链路跟踪系统20的配置模块,对链路跟踪系统20涉及的业务节点设置埋点。从逻辑功能角度讲,链路跟踪系统20的配置模块为每个业务节点创建基础模块和跟踪链路记录模块,基础模块和跟踪链路记录模块用于执行埋点对应的跟踪逻辑,详见图2a示意的实施例所述,此处不详述。
82.链路跟踪系统20接收业务请求之后,为该业务请求对应的批量业务生成批量业务号,以及将上述每个stage配置为一条跟踪链路。随着业务处理流程的进行,上述五个stage分别生成跟踪日志,每个跟踪日志与批量业务号对应。之后,链路跟踪系统20可以收集上述五个stage所生成的跟踪日志,之后,根据批量业务号得到该业务请求的跟踪日志,进而,分析所得到的跟踪日志,以及显示分析结果。一些实施例中,链路跟踪系统20生成批量业务号之后,将批量业务号配置给stage1中的业务节点101,以使业务节点101向后传输该批量业务号。以下以该实施例为例进行说明。另一些实施例中,链路跟踪系统20生成批量业务号之后,将批量业务号存储到数据库,上述各stage中的首节点根据业务请求对应的账号获取该批量业务号,然后向相应stage中的后续节点传输该批量业务号。
83.图4b示意了图4a中五个stage的架构,五个stage中每个stage包含至少一个业务节点。示例性的,stage1也即批量业务校验包含业务节点101,stage2也即批量业务生成包含业务节点201,stage3也即委托定时包含业务节点301和业务节点302,stage4也即批量业务调度包含业务节点401和业务节点402,stage5也即生成具体订单包含业务节点501、业务节点502、业务节点503和业务节点504。其中,业务节点101是stage1中的首节点。业务节点201是stage2中的首节点。业务节点301是stage3中的首节点,业务节点302是stage3中的非首节点。业务节点401是stage4中的首节点,业务节点402是stage4中的非首节点。业务节点401是stage5中的首节点,业务节点502、业务节点503和业务节点504均是stage5中的非首节点。上述各首节点用于创建该首节点所在调用链(也即stage)的上下文跟踪信息。详见下
传输到业务节点501,相应的,开户业务的处理流程进入stage5(即生成具体订单)。
91.业务节点501例如确定生成父子订单的模式,以及生成traceid“trace5001”和seqno“1”。之后,业务节点501生成跟踪日志51,以及将“batch01”、“trace5001”和seqno“1”传输到业务节点502。跟踪日志51中包含“batch01”、“trace5001”和seqno“1”。业务节点502基于mq将每个分片生成一个父订单(例如每100个手机号码的开户业务是一个父订单),将mq的每个消息行生成一个子订单(例如父订单中每个手机号码的开户业务是一个父订单),以及根据seqno“1”确定seqno“1.1”。之后,业务节点502生成跟踪日志52以及将“batch01”、“trace5001”和seqno“1.1”传输到业务节点503。跟踪日志52包含“batch01”、“trace5001”和seqno“1.1”。业务节点503建立父订单与子订单的关联关系,以及根据seqno“1.1”生成seqno“1.1.1”。进而,业务节点503生成跟踪日志53以及将“batch01”、“trace5001”和seqno“1.1.1”传输到业务节点504。跟踪日志53包含“batch01”、“trace5001”和seqno“1.1.1”。业务节点504驱动父订单执行开户业务,以及根据seqno“1.1.1”生成seqno“1.1.1.1”。进而,业务节点504生成跟踪日志54。跟踪日志54包含“batch01”、“trace5001”和seqno“1.1.1.1”。stage5的跟踪日志包括跟踪日志51、跟踪日志52、跟踪日志53和跟踪日志54。
92.另一些实施例中,批量业务号“batch01”与账号“xy001”存储在数据库中。上述五个stage中的首节点在处理第一开户申请对应的批量业务过程中,可以读取账号“xy001”,然后,从数据库中获取批量业务号“batch01,进而,向本阶段的非首节点传输批量业务号“batch01和相应traceid及seqno。以stage3为例,在开户业务的处理流程进入stage3之后,业务节点301获取开户业务对应的账号“xy001”,以及生成traceid“trace3001”和seqno“1”。之后,业务节点301将“batch01”、“trace3001”和seqno“1”传输到业务节点302。stage3中各节点的其他操作流程详见上述描述。其他各节点的操作流程与stage3类似,此处不详述。
93.可见,本技术实施例将链路跟踪系统20的每个stage作为一条链路,进而,每个stage独立设置traceid和seqno,使得链路跟踪系统中的seqno均较为简洁,从而节省链路跟踪系统的传输资源和处理资源。另外,跟踪日志与stage对应,当发生异常时,链路跟踪系统能够定位到异常对应的stage,从而能够从整体上分析业务处理流程的性能。
94.实际实现中,图4b示意的各业务节点可以根据不同的采样率生成跟踪日志。此处不详述。这样有利于平衡各业务节点的开销,从而提升链路跟踪系统20的整体性能。
95.此外,一些实施例中,用户例如想要获知手机号码“13000000000”的开户业务在stage5中的跟踪日志,本实施例中,业务节点501还可以在创建stage5的上下文跟踪信息过程中,生成traceflag“101”,traceflag“101”例如指示stage5中各节点对应手机号码“13000000000”的开户业务生成跟踪日志。之后,业务节点501将traceflag“101”与“trace5001”和seqno“1”等一起传输到业务节点502。业务节点502和业务节点503同样将traceflag“101”传输到相应业务节点的下一级业务节点。进而,本实施例中,业务节点501至业务节点504均对应手机号码“13000000000”的开户业务生成跟踪日志,相应的,跟踪日志51至跟踪日志54中均包含手机号码“13000000000”开户业务的跟踪日志。
96.另一些实施例中,stage5中业务节点503的采样率例如是100,即业务节点503对100个任务中的一个任务生成跟踪日志。若业务节点503未采样的任务发生异常,例如“第50个手机号码的开户任务”发生异常,业务节点503可以为“第50个手机号码开户任务”添加
traceflag“102”,之后,将标识有traceflag“102”的“第50个手机号码开户任务”返回业务节点501。业务节点501可以将发生异常的“第50个手机号码开户任务”的traceid“trace4001”更改为traceid“errotrace4001”。进而,业务节点501至业务节点504,均生成发生异常的“第50个手机号码开户任务”的跟踪日志。
97.可见,本技术实施例示意的链路跟踪系统,能够通过设置traceflag指示各业务节点对特定业务生成跟踪日志,从而能够对特定业务的业务处理流程进行完整的跟踪和记录。
98.进一步的,链路跟踪系统20可以收集链路跟踪系统20中每个业务节点生成的跟踪日志。其中,链路跟踪系统20所收集的跟踪日志例如不仅包含第一开户申请对应的跟踪日志,还可以包括第二开户申请对应的跟踪日志,第二开户申请对应的批量业务号例如是“batch02”。进而,链路跟踪系统20可以根据批量业务号“batch01”得到第一开户申请的跟踪日志,即跟踪日志11至跟踪日志54。之后,链路跟踪系统20可以分析跟踪日志11至跟踪日志54,以及向用户显示分析结果。
99.可以理解的是,上述链路跟踪系统20以及链路跟踪系统20对应的实施例,仅是示意性描述,不构成对本技术的限制。另一些实施例中,链路跟踪系统可以包含更多或者更少的stage,每个stage中也可以包含更多或者更少的业务节点。此外,本技术实施例提供的链路跟踪系统还可以适用于其他业务场景。此处不详述。
100.综上,本技术实施例示意的链路跟踪方法,链路跟踪系统对应每个批量业务配置批量业务号,且将每个阶段作为一个跟踪链路,分别得到每个阶段的跟踪日志。其中,每个阶段的跟踪日志对应所跟踪业务的批量业务号,进而,链路跟踪系统根据批量业务号得到批量业务的跟踪日志。这样,不仅能够同时跟踪多个批量业务,而且各阶段的分支链路相对较少,使得每个链路的顺序号等相对简短,从而节省链路跟踪系统的传输资源和处理资源。另外,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析业务处理系统的整体性能。
101.上述本技术提供的实施例中,分别从链路跟踪系统以及业务节点本身、以及从各个业务节点之间交互的角度对本技术实施例提供的链路跟踪方法的各方案进行了介绍。链路跟踪系统包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
102.例如,上述链路跟踪系统可以通过功能模块的形式来实现上述相应的功能。如图5a所示,链路跟踪系统50例如可以包括接收模块501、生成模块502、获取模块503和得到模块504。一些实施例中,该链路跟踪系统可用于执行图3至图4b示意的任意实施例中涉及的链路跟踪方法。
103.例如:接收模块501可以用于接收用户输入的业务请求。生成模块502可以用于为所述业务请求对应的批量业务生成第一批量业务号。获取模块503可以用于获取业务处理流程的至少两个阶段中每个阶段的跟踪日志,所述跟踪日志与所述第一批量业务号对应,
所述业务处理流程是处理所述批量业务的流程。得到模块504可以用于基于所述第一批量业务号对应的跟踪日志得到所述批量业务的跟踪日志。
104.可见,本技术实施例提供的链路跟踪系统,能够将批量业务的业务处理流程划分为至少两个阶段,进而,分别将该至少两个阶段中的每个阶段作为一条跟踪链路,获取每个跟踪链路的跟踪日志。这样能够简化各链路的顺序号,节省链路跟踪系统的传输资源和处理资源。而且,以阶段为单位生成跟踪日志,在批量业务处理系统出现异常时,能够准确的定位到异常发生的阶段,从而便于分析批量业务处理系统的整体性能。
105.可选的,链路跟踪系统50还包括业务节点,所述业务节点是执行所述业务处理流程的功能节点。本实施例中,获取模块503还用于获取每个阶段中业务节点的跟踪日志。
106.可选的,当所述业务节点是第一阶段中的第一个节点时,所述业务节点用于生成第一跟踪标识和第一顺序号,所述第一跟踪标识用于标识所述第一阶段的跟踪日志,所述第一顺序号用于标识所述业务节点在所述第一阶段的处理层级,所述第一阶段是所述至少两个阶段中的任一阶段;以及将所述第一跟踪标识、所述第一顺序号和所述第一批量业务号传输到所述业务节点在所述第一阶段中的下一级业务节点。
107.可选的,获取模块503还用于获取第一阶段中的业务节点对跟踪旗标识的业务生成跟踪日志,所述第一阶段是所述至少两个阶段中的任一阶段,所述业务属于所述批量业务。
108.可选的,获取模块503还用于获取第一业务节点按照第一采样率生成的跟踪日志,以及获取第二业务节点按照第二采样率生成的跟踪日志。
109.应理解,以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本技术实施例中,接收模块501可以由收发器实现,生成模块502、获取模块503、得到模块504等可以由处理器实现。如图5b所示,链路跟踪系统51可以包括处理器511、收发器512和存储器513。
110.应理解,本技术实施例的链路跟踪系统51可对应图3至图4b示意方法中的链路跟踪系统,其中,收发器512用于执行图3至图4b中所述链路跟踪系统执行的业务请求的接收,存储器513可以用于存储代码,处理器511用于执行存储器513中存储的代码,实现图3至图4b中所述链路跟踪系统除了业务请求接收以外的其它处理。在此不再赘述。或者,作为另一种实现方式,处理器511集成了收发器512的功能,则链路跟踪系统51可以包括处理器511和存储器513,处理器511用于执行存储器513中存储的代码,实现图3至图4b中所述链路跟踪系统的功能。
111.具体内容可以参考图3至图4b中相关部分的描述,此处不再赘述。
112.具体实现中,对应链路跟踪系统本技术实施例还提供一种计算机存储介质,其中,设置在任意设备中计算机存储介质可存储有程序,该程序执行时,可实施包括图3至图4b提供的链路跟踪方法的各实施例中的部分或全部步骤。任意设备中的存储介质均可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
113.以上模块或单元的一个或多个可以软件、硬件或二者结合来实现。当以上任一模块或单元以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令并实现以上方法流程。所述处理器可以包括但不限
于以下至少一种:中央处理单元(central processing unit,cpu)、微处理器、数字信号处理器(dsp)、微控制器(microcontroller unit,mcu)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以内置于soc(片上系统)或专用集成电路(application specific integrated circuit,asic),也可是一个独立的半导体芯片。该处理器内处理用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,fpga)、pld(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。
114.当以上模块或单元以硬件实现的时候,该硬件可以是cpu、微处理器、dsp、mcu、人工智能处理器、asic、soc、fpga、pld、专用数字电路、硬件加速器或非集成的分立器件中的任一个或任一组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。
115.当以上模块或单元使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
116.应理解,在本技术的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对实施例的实施过程构成任何限定。
117.本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
118.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献