CN114760218B - 一种链路采样方法及其相关装置 - Google Patents
一种链路采样方法及其相关装置 Download PDFInfo
- Publication number
- CN114760218B CN114760218B CN202210444871.7A CN202210444871A CN114760218B CN 114760218 B CN114760218 B CN 114760218B CN 202210444871 A CN202210444871 A CN 202210444871A CN 114760218 B CN114760218 B CN 114760218B
- Authority
- CN
- China
- Prior art keywords
- link
- data
- monitored node
- node
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000012544 monitoring process Methods 0.000 claims abstract description 170
- 230000002159 abnormal effect Effects 0.000 claims abstract description 77
- 230000005540 biological transmission Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 description 21
- 238000012423 maintenance Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000002547 anomalous effect Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供一种链路采样方法及其相关装置,涉及云计算领域。该方法包括:获取被监控节点的监控数据,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,链路标识用于标识被监控节点所在的一条链路,头部采样标识用于指示链路是否被指定为待采样的链路,链路状态标识用于指示链路的状态,时间戳用于指示被监控节点对接收到的数据的拦截时间和对发送的数据的拦截时间;根据链路状态标识和/或时间戳确定链路的状态为异常;将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路。基于监控数据预先对链路的状态进行判断,能够尽量多地采样到异常链路。
Description
技术领域
本申请涉及云计算领域,尤其涉及一种链路采样方法及其相关装置。
背景技术
随着越来越多的企业步入数字化转型,互联网技术(internet technology,IT)***也逐步趋向于分布式。分布式链路追踪技术,是分布式体系下帮助运维人员快速定位问题和分析问题的主要手段。由于异常链路出现的频率较低,利用传统的链路采样方法采样到的链路中可能不包括异常链路或包括极少的异常链路。但在实际业务中,异常链路对运维工作十分重要,能够帮助运维人员对问题的快速定位与分析,所以传统的链路采样方法无法满足当前的运维需求。
因此,希望提供一种方法,能够尽量多地采样到异常链路。
发明内容
本申请提供一种链路采样方法及其相关装置,以期能够尽量多地采样到异常链路,进而满足运维需求。
第一方面,本申请提供一种链路采样方法,该方法可以由监控节点来执行,该方法包括:获取被监控节点的监控数据,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,链路标识用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,时间戳用于指示被监控节点对接收到的数据的拦截时间和被监控节点对发送的数据的拦截时间;根据链路状态标识,确定该链路的状态为异常;和/或,根据时间戳,确定该链路的状态为异常;以及将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路,样本链路为需要被全量采集的链路。
基于上述方案,通过获取被监控节点的包括头部采样标识、链路状态标识和/或时间戳的监控数据,并对这些监控数据进行分析,以预先对链路的状态进行判断,确定出异常链路,并将异常链路和被头部采样标识指定为待采样的链路确定为样本链路,进而能够尽量多地采样到异常链路,以满足运维需求。
可选地,当监控数据包括所述时间戳时,根据所述时间戳,确定该链路的状态为异常,包括:根据时间戳确定被监控节点的耗时;确定被监控节点的耗时超过第一预设门限;确定该链路的状态为异常。
可选地,被监控节点为所述链路中的首个节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次发出数据至所述被监控节点最后一次接收到数据的总时长;或者,被监控节点为链路中除首个节点之外的节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次接收到数据至被监控节点最后一次发出数据的总时长。
可选地,根据时间戳确定被监控节点的耗时,包括:根据时间戳,确定该链路的调用过程中被监控节点对应的首个拦截时间和末个拦截时间;根据首个拦截时间和末个拦截时间,确定该被监控节点的耗时。
可选地,当监控数据包括时间戳时,根据时间戳,确定该链路的状态为异常,包括:根据时间戳中对应于同一数据的两个拦截时间,确定数据的传输耗时;确定传输耗时超过第二预设门限;确定该链路的状态为异常。
可选地,获取被监控节点的监控数据,包括:通过暴露超文本传输协议(hypertexttransfer protocol,HTTP)请求的方式获取来自被监控节点的监控数据。
第二方面,本申请提供一种链路采样方法,该方法可以由被监控节点来执行,该方法包括:拦截数据,数据包括接收到的数据或发送的数据;基于拦截的数据,生成监控数据,监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,链路标识用于标识该被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,链路的状态包括异常或正常,时间戳用于指示该被监控节点对数据的拦截时间;向监控节点发送监控数据。
基于上述方案,被监控节点通过拦截数据和生成包括链路状态标识和/或时间戳的监控数据,并向监控节点发送监控数据,为监控节点提供了预先对链路的状态进行判断的数据基础,以使得监控节点可以分析确定出异常链路,进而能够尽量多地采样到异常链路,以满足运维需求。
第三方面,本申请提供一种链路采样装置,该装置包括:获取模块和确定模块,获取模块用于获取被监控节点的监控数据,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,链路标识用于标识该被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,时间戳用于指示该被监控节点对接收到的数据的拦截时间和该被监控节点对发送的数据的拦截时间;确定模块用于根据链路状态标识,确定该链路的状态为异常;和/或,确定模块用于根据时间戳,确定该链路的状态为异常;确定模块还用于将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路,样本链路为需要被全量采集的链路。
第四方面,本申请提供一种链路采样装置,该装置包括:拦截模块、生成模块和收发模块,拦截模块用于拦截数据,该数据包括接收到的数据或发送的数据;生成模块用于基于拦截的数据,生成监控数据,监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,链路标识用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,链路的状态包括异常或正常,时间戳用于指示被监控节点对数据的拦截时间;收发模块用于向监控节点发送监控数据。
第五方面,本申请提供一种链路采样装置,该装置包括处理器,该处理器与存储器耦合,用于执行存储器中的计算机程序(也可以称为代码或指令),以实现第一方面以及第一方面中任一种可能实现方式中的方法,或者,以实现第二方面的方法。
可选地,所述链路采样装置还可以包括存储器,用于存储计算机程序(也可以称为代码或指令),处理器读取所述计算机程序使得链路采样装置可以实现上述第一方面以及第一方面任一种可能实现方式中所述的方法,或者,处理器读取所述计算机程序使得链路采样装置可以实现上述第二方面中所述的方法。
可选地,所述链路采样装置还可以包括通信接口,所述通信接口用于该链路采样装置与其它设备进行通信,示例性地,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
第六方面,本申请提供了一种芯片***,该芯片***包括至少一个处理器,用于支持实现上述第一方面以及第一方面任一种可能实现方式中所涉及的功能,或者,用于支持实现上述第二方面中所涉及的功能,例如,例如处理上述方法中所涉及的数据。
在一种可能的设计中,所述芯片***还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片***可以由芯片构成,也可以包含芯片和其它分立器件。
第七方面,本申请提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序(也可以称为代码或指令),当所述计算机程序被计算机执行时,使得计算机实现第一方面以及第一方面任一种可能实现方式中的方法,或者,使得计算机实现第二方面中的方法。
第八方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码或指令),当所述计算机程序被运行时,使得上述第一方面以及第一方面中任一种可能实现方式中的方法被执行,或者,使得上述第二方面中的方法被执行。
应理解,本申请的第三方面至第八方面与本申请的第一方面和第二方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
还应理解,本申请提供的链路采样方法及其相关装置可应用于云计算领域,也可应用于其他领域。本申请对此不作限定。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为适用于本申请实施例的***架构示意图;
图2为本申请实施例提供的一种链路采样方法的示意性流程图;
图3为适用于本申请实施例的一次调用对应4个监控数据的示意图;
图4为本申请实施例提供的另一种链路采样方法的示意性流程图;
图5为本申请实施例提供的一种链路采样装置的示意性框图;
图6为本申请实施例提供的另一种链路采样装置的示意性框图;
图7为本申请实施例提供的又一种链路采样装置的示意性框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
1、链路标识(trace identifier,TraceId):一般由接收用户请求的第一个节点生成,用于标识完成一个用户请求的调用链路。可以通过TraceId来将一个用户请求在各个节点上的调用日志串联起来。
2、跨度标识(span identifier,SpanId):可以用于标识本次调用在整个用户请求的调用链路中的位置。
3、父节点标识(parent identifier,ParentId):可以用于标识当前节点的上一跳节点。
4、头部采样标识:用于指示链路是否被指定为待采样的链路。一般由接收用户请求的第一个节点基于头部采样百分比策略生成。
应理解,可以基于TraceId、SpanId和ParentId确定出完成同一个用户请求所涉及到的全部节点,并将这些节点按照调用关系串联起来得到对应于完成这次用户请求的整个链路,这个链路包括接收到用户请求的第一个节点以及完成这个用户请求被调用的各个节点。
随着越来越多的企业步入数字化转型,IT***也逐步趋向于分布式。在分布式IT***经过开发测试上线开始使用后,运维人员可以利用分布式链路追踪技术开展运维工作。在分布式体系下,分布式链路追踪技术是帮助运维人员快速定位问题和分析问题的主要手段。由于异常链路出现的频率较低,利用传统的链路采样方法采样到的链路中可能不包括异常链路或包括极少的异常链路。但在实际业务中,异常链路对运维工作十分重要,能够帮助运维人员对问题的快速定位与分析,所以传统的链路采样方法无法满足当前的运维需求。
因此,本申提供一种链路采样方法及其相关装置,通过获取被监控节点的包括链路状态标识和/或时间戳,以及头部采样标识的监控数据,并对这些监控数据进行分析,以预先对链路的状态进行判断,确定出异常链路,并将异常链路和被头部采样标识指定为待采样的链路确定为样本链路,进而能够尽量多地采样到异常链路,以满足运维需求。
需要说明的是,本申请实施例中提供的链路采样方法及其相关装置可以应用于云计算领域,也可以应用于除云计算领域之外的任意领域,本申请对此不作限定。
图1为适用于本申请实施例的***架构示意图。
适用于本申请实施例提供的链路采样方法的***架构可以包括监控节点和被监控节点。如图1所示,图中示出了监控节点110、被监控节点121、被监控节点122、被监控节点123、被监控节点124和被监控节点125。监控节点110可以与任一个被监控节点进行通信。被监控节点121、被监控节点122、被监控节点123、被监控节点124和被监控节点125也可以相互进行通信。
监控节点110可以为一台物理设备,例如,服务器,也可以为多台物理设备组成的服务器集群,本申请实施例对此不作限定。
被监控节点121、被监控节点122、被监控节点123、被监控节点124和被监控节点125也可以分别为一台物理设备,例如服务器,在被监控节点121、被监控节点122、被监控节点123、被监控节点124和被监控节点125为服务器时,被监控节点121、被监控节点122、被监控节点123、被监控节点124和被监控节点125可以组成服务器集群,本申请实施例对此不作限定。
应理解,在实际的应用场景中,可以包括更多或更少个被监控节点,本申请对被监控节点的具体个数不作限定。
在介绍本申请实施例提供的链路采样方法之前,首先对本申请实施例中涉及到的用户请求和服务调用进行说明。
完成一次用户请求可能会涉及到1次或多次的服务调用。如图1所示,例如被监控节点121接收到了用户的转账交易指示,实现转账交易时,监控节点121需要调用被监控节点122中的服务。被监控节点121在接收到用户的转账交易指示后,可以向被监控节点122发送调用服务的请求,被监控节点122在收到来自被监控节点121的调用服务请求后,可以执行相应的服务代码,以向被监控节点121提供相应的服务,在相应的服务代码执行完毕后,被监控节点122可以向被监控节点121返回执行结果,被监控节点121可以接收来自被监控节点122的返回的执行结果。上述过程可以认为是完成了一次用户请求,在完成本次用户请求的过程中,涉及1次服务调用,即,被监控节点121调用被监控节点122中的服务。
在实际业务场景中,完成一次用户请求也可能会涉及到更多次的服务调用。如图1所示,例如,在被监控节点123接收到一个用户请求后,被监控节点123可以调用被监控节点124中的服务,被监控节点124在执行相应的服务代码时需要调用被监控节点125中的服务,被监控节点125执行完相应的服务代码后向被监控节点124返回执行结果,被监控节点124在执行完相应的服务代码后向被监控节点123返回执行结果,至此,完成本次的用户请求,在完成本次用户请求的过程中,涉及2次服务调用,即,被监控节点123调用被监控节点124中的服务,被监控节点124又调用被监控节点125中的服务。
上述两个完成用户请求的过程只是示例性的,不能对本申请产生任何限定。
下面将结合附图,对本申请实施例提供的链路采样方法进行描述。
图2为本申请实施例提供的一种链路采样方法的示意性流程图。该方法可以由监控节点来执行,监控节点例如可以是服务器,或者,也可以由配置在监控节点中的部件(如芯片、芯片***等)执行,或者,还可以由能够实现部分或全部监控节点功能的逻辑模块或软件等实现,本申请对此不作限定。
如图2所示,该方法200具体可包括如下步骤:
步骤210,监控节点获取被监控节点的监控数据;
步骤2201,监控节点根据链路状态标识,确定链路的状态为异常;和/或,
步骤2202,监控节点根据时间戳,确定链路的状态为异常;
步骤230,将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路。
需要说明的是,监控节点可以对多个链路中的每个节点进行监控。每个被监控的节点都可以为上述的被监控节点。本文中为了便于区分和说明,以其中的一个节点为例来描述被监控节点,并将该被监控节点所在的链路记为第一链路。该第一链路可以是被请求调用的多个链路中的一个。如果该第一链路的状态为正常,则可以基于头部采样标识对该第一链路进行处理,例如,如果头部采样标识指示第一链路为待采样的链路,则可以将第一链路确定为样本链路;如果头部采样标识指示第一链路为非待采样的链路,则可以丢弃第一链路的相关数据;如果该第一链路的状态为异常,则不管头部采样标识是否指示第一链路为待采样的链路,都可以将第一链路确定为样本链路。应理解,监控节点可以基于后文步骤2201和步骤2202的相关说明来实现链路是否异常的判断。
下面详细说明该方法200中的各个步骤。
在步骤210中,监控节点获取被监控节点的监控数据。
其中,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和/或时间戳,以及TraceId和头部采样标识。TraceId可以用于标识被监控节点所在的一条第一链路;头部采样标识用于指示第一链路是否被指定为待采样的链路,例如,具体可用于指示链路为待采样的链路或非待采样的链路;链路状态标识用于指示第一链路的状态;时间戳用于指示被监控节点对接收到的数据的拦截时间和被监控节点对发送的数据的拦截时间。需注意,这里所涉及的监控数据可以基于被监控节点对每一次接收到的数据和每一次发送的数据的拦截得到,换言之,该监控数据包含了从该被监控节点多次接收到的数据。
其中,监控数据中的链路状态标识可以由生成监控数据的被监控节点根据实际的业务处理情况进行设置。本申请实施例中的链路状态标识可以根据是否存在技术异常(或者说是调用异常)、业务异常以及耗时异常(或者说是超时异常)来进行设置。
技术异常可以理解为在调用服务的过程中捕获的异常(例如,CatchRpcException),如果捕获到异常,则会将异常信息放到当前节点指定的标签下,并将链路状态标识设置为异常。业务异常是根据不同的业务自定义的异常,在判断出业务发生异常时,可以将链路状态标识设置为异常。另外,如果存在耗时异常,也即,在调用服务的过程中,存在一个或多个时间差超过了预设的时长时,也可以将链路状态标识设置为异常。
如果未捕获到异常,且未出现业务异常,也不存在耗时异常,则链路状态标识可以为空或正常,当链路状态标识为空时,可以理解为链路为正常状态。
需要说明的是,被监控节点中设置有***,***可以理解为具有数据拦截功能的组件,用于对想要进行监控的数据进行拦截,以得到监控数据。
为了便于理解,以下结合图3对监控数据进行详细说明。
如图3所示,以1次服务调用为例,1次服务调用中可以涉及4次数据拦截,得到4次监控数据。以下对这4次数据拦截和得到的4次监控数据进行详细说明。
第1次数据拦截:
在被监控节点121接收到一个用户请求后,被监控节点121可以利用远程调用协议(remote procedure call protocol,RPC)调用被监控节点122的服务,被监控节点121可以将创建的链路状态标识和/或时间戳,以及TraceId、SpanId、ParentId和头部采样标识等字段放进RPC上下文(context)中,并将RPC context作为服务调用请求发送出去,也即,服务调用请求中可以包括链路状态标识和/或时间戳,以及TraceId、SpanId、ParentId和头部采样标识等数据,在被监控节点121向被监控节点122发送服务调用请求时,可以进行第1次拦截,以拦截被监控节点121向被监控节点122发送的服务调用请求中的链路状态标识和/或时间戳,以及TraceId、SpanId、ParentId和头部采样标识等,这里的时间戳可以用于指示被监控节点121对发送的服务调用请求的拦截时间,也可以理解为服务调用开始的时间,这里将服务调用开始的时间记为第一时间,头部采样标识可以由被监控节点121基于头部采样百分比策略随机生成,链路状态标识可以由被监控节点121根据当前是否存在技术异常、业务异常和耗时异常等情况进行设置。被监控节点121生成的监控数据1包括服务调用请求中的链路状态标识和/或时间戳,以及TraceId、SpanId、ParentId和头部采样标识等数据。
由于被监控节点121是接收到一个用户请求的节点,是整个链路的根节点,所以拦截到的用户请求中的ParentId可能是置空的,也可能是用某个值来标识被监控节点121为根节点的,本申请对此不作限定。
第2次数据拦截:
在被监控节点122接收到来自被监控节点121的服务调用请求时,可以进行第2次拦截,获取服务调用请求中链路状态标识和/或第一时间,以及TraceId、SpanId、ParentId和头部采样标识等数据,并可以根据实际调用关系,修改SpanId和ParentId,并记录一个时间戳,这个时间戳可以指示对接收到的服务调用请求的拦截时间,也可以理解为服务提供开始的时间,这里将服务提供开始的时间记为第二时间,链路状态标识可以由被监控节点122根据当前是否存在技术异常、业务异常和耗时异常等情况进行设置。被监控节点122生成的监控数据2包括链路状态标识,和/或,第一时间和第二时间,以及TraceId、修改后的SpanId、修改后的ParentId和头部采样标识等数据。
第3次数据拦截:
在被监控节点122作为服务提供方执行完相应地服务代码,向被监控节点121返回执行结果之前,可以进行第3次拦截,可以再次记录一个时间戳,这个时间戳可以用于指示服务提供结束的时间,这里将服务提供结束的时间记为第三时间,此时已经完成服务代码的执行,如果在服务代码的执行过程中存在技术异常、业务异常和/或耗时异常,被监控节点122可以再次对链路状态标识进行设置。被监控节点122生成的监控数据3包括链路状态标识,和/或,第一时间、第二时间和第三时,以及TraceId、修改后的SpanId、修改后的ParentId和头部采样标识等数据。
第4次数据拦截:
在被监控节点121接收到被监控节点122返回的执行结果时,可以进行第4次拦截,可以再次记录一个时间戳,这个时间戳可以指示对接收到服务调用请求的反馈的拦截时间,这里将接收到服务调用请求的反馈的拦截时间记为第四时间,链路状态标识可以由被监控节点121根据当前是否存在技术异常、业务异常和耗时异常等情况进行设置。被监控节点121生成的监控数据4包括链路状态标识,和/或,第一时间、第二时间、第三时间和第四时间,以及TraceId、修改后的SpanId、修改后的ParentId和头部采样标识等数据。
监控节点可以从被监控节点获取被监控节点生成的监控数据。
在一种可能的实现方式中,监控节点获取被监控节点的监控数据,可以包括:通过暴露HTTP请求的方式获取来自被监控节点的监控数据。
示例性地,被监控节点可以将一个不需要各种权限检验的开源分布式服务框架(例如Dubbo)的服务对外提供为HTTP请求服务,监控节点通过暴露的HTTP请求来获取被监控节点的监控数据。
监控节点在步骤210中获取到监控数据之后,可以根据监控数据中包含的内容执行如下步骤2201和/或步骤2202。
示例性地,若监控数据中包括链路状态标识但不包括时间戳,则可执行步骤2201而不执行步骤2202;若监控数据中包括时间戳但不包括链路状态标识,则可执行步骤2202而不执行步骤2201;若监控数据中包括链路状态标识和时间戳,则可执行步骤2201和步骤2202。换言之,图2虽然示出了步骤2201和步骤2202,但这并不表示该监控节点一定会执行步骤2201和步骤2202这两个步骤,监控节点可以根据监控数据选择性地执行步骤2201和步骤2202。
在步骤2201中,如果链路状态标识为异常,监控节点可以确定第一链路的状态为异常。
示例性地,上文已述及,被监控节点可以根据当前是否存在技术异常、业务异常和耗时异常等情况对链路状态标识进行设置。如果监控节点获取到的监控数据中的链路状态标识为异常,则监控节点可以确定第一链路的状态为异常,也即,监控节点可以确定第一链路为异常链路。
在步骤2202中,可以根据时间戳确定被监控节点的耗时,以及数据的传输时延。其中,被监控节点的耗时可用于表示该被监控节点在处理本地链路调用请求时消耗的时长,数据的传输时延可用于判断该链路是否能够正常传输数据。下面将分别结合情况一和情况二对被监控节点的耗时和传输时延用于判断链路状态的过程做详细说明。
情况一、如果监控节点根据时间戳确定被监控节点的耗时超过第一预设门限,则监控节点可以确定第一链路的状态为异常。
在情况一中,被监控节点为链路中的首个节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次发出数据至被监控节点最后一次接收到数据的总时长;或者,被监控节点为链路中除首个节点之外的节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次接收到数据至被监控节点最后一次发出数据的总时长。
被监控节点的耗时可以根据时间戳来确定。
示例性地,根据时间戳确定被监控节点的耗时,可以包括:根据时间戳,确定链路的调用过程中被监控节点对应的首个拦截时间和末个拦截时间;根据首个拦截时间和末个拦截时间,确定被监控节点的耗时。
一示例,如图3所示,被监控节点121为链路中的首个节点,被监控节点121的耗时可以包括在完成一次用户请求的过程中被监控节点121首次发出服务调用请求的时间至被监控节点121最后一次接收到返回的执行结果的总时长,也即监控数据1中的第一时间至监控数据4中的第四时间的总时长,也就是第四时间与第一时间的时间差为被监控节点121的耗时。在被监控节点121的耗时超过第一预设门限的情况下,监控节点可以确定被监控节点121所在的第一链路的状态为异常。
又一示例,被监控节点122为链路中除首个节点之外的节点,被监控节点122的耗时包括可以在完成一次用户请求的过程中,被监控节点122首次接收到服务调用请求的时间至被监控节点122最后一次返回执行结果的总时长,也即监控数据2中的第二时间至监控数据3中的第三时间的总时长,也就是第三时间与第二时间的时间差为被监控节点122的耗时。被监控节点122的耗时可以理解为执行服务代码的耗时。在被监控节点122的耗时超过第一预设门限的情况下,监控节点可以确定被监控节点122所在的第一链路的状态为异常。
情况二、如果监控节点根据时间戳确定某一数据的传输时延超过第二预设门限,确定第一链路的状态为异常。
可选地,当监控数据包括时间戳时,监控节点根据时间戳,确定第一链路的状态为异常,还可以包括:监控节点根据时间戳中对应于同一数据的两个拦截时间,确定数据的传输耗时;确定传输耗时超过第二预设门限;确定第一链路的状态为异常。
一示例,监控数据1中的第一时间对应于服务调用请求的发送时间,监控数据2中的第二时间对应于服务调用请求的接收时间,第一时间和第二时间可以为对应于同一个数据的两个时间戳,监控节点可以根据第二时间与第一时间的时间差确定服务调用请求的传输耗时,在服务调用请求的传输耗时超过第二预设门限的情况下,可以确定被监控节点121和被监控节点122所在的第一链路的状态为异常。
又一示例,监控数据3中的第三时间对应于执行结果的发送时间,监控数据4中的第四时间对应于执行结果的接收时间,第三时间和第四时间可以为对应于同一个数据的两个时间戳,监控节点可以根据第四时间与第三时间的时间差确定执行结果的传输耗时,在执行结果的传输耗时超过第二预设门限的情况下,可以确定被监控节点121和被监控节点122所在的第一链路的状态为异常。
在步骤230中,监控节点将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路。
其中,样本链路为需要被全量采集的链路。
示例性地,如果头部采样标识指示第一链路为待采样的链路,和/或,第一链路的状态为异常,则监控节点可以将第一链路确定为样本链路,并可以对第一链路进行全量采集,也即,监控节点可以采集并存储第一链路的全部相关数据,例如可以包括第一链路中涉及到的全部被监控节点、以及第一链路中的每个被监控节点所生成的对应于第一链路的TraceId的全部的监控数据。换言之,如果在第一链路的调用过程中,其中某一调用环节发生了异常,例如,存在传输耗时异常或者某个被监控节点耗时异常,则可以认定本环节为异常环节,则监控节点可以无需考虑头部采样标识是否指示第一链路为待采样的链路,便可以确定第一链路为样本链路,采集并存储第一链路的全部相关数据。如果在第一链路的调用过程中,任何环节都不存在异常,也即,第一链路的状态为正常,则监控节点可以基于头部采样标识判断第一链路是否被指示未待采样的链路,如果头部采样标识指示第一链路为待采样的链路,则可以将第一链路确定为样本链路;如果头部采样标识指示第一链路为非待采样的链路,则可以丢弃第一链路的相关数据。
示例而非限定,如果在第一链路的调用过程中,其中某一调用环节发生了异常,也可以只对该异常环节、该异常环节的父环节以及该异常环节之后的环节所涉及到的数据进行采集,由此一来,相比较与对该链路的全量采集,不仅可以节省存储空间,还能够保障该链路上的所有异常环节及其父环节所涉及的数据均被采集,但是并不影响对问题的定位和分析。
上文已述及,监控节点可以对样本链路进行采集,并存储样本链路的相关数据,例如,可以将样本链路的相关数据存储到文本数据库(例如Elasticsearch)中,以便于支持丰富的查询条件,以及存储数据结构丰富的数据。
在一种可能的实现方式中,方法200还可以包括:监控节点可以对样本链路进行可视化展示。
示例性地,监控节点可以从数据库中获取样本链路的相关数据,基于样本链路的相关数据,将样本链路中的各个被监控节点以及各个监控节点之间的服务调用关系以可视化的方式呈现出来,以便于运维人员更直观地对问题进行定位和分析。
基于上述方案,通过拦截数据和生成包括头部采样标识、链路状态标识和/或时间戳的监控数据,并向监控节点发送监控数据,为监控节点提供了预先对链路的状态进行判断的数据基础,以使得监控节点可以分析确定出异常链路,并将异常链路和被头部采样标识指定为待采样的链路确定为样本链路,进而能够尽量多地采样到异常链路,以满足运维需求。
图4为本申请实施例提供的另一种链路采样方法的示意性流程图。该方法可以由被监控节点来执行,被监控节点例如可以是客户端或服务器,或者,也可以由配置在被监控节点中的部件(如芯片、芯片***等)执行,或者,还可以由能够实现部分或全部被监控节点功能的逻辑模块或软件等实现,本申请对此不作限定。
如图4所示,链路采样方法400包括步骤410至步骤430。方法400可以由被监控节点来执行,下面对步骤410至步骤430进行详细说明。
在步骤410中,被监控节点拦截数据。
其中,被监控节点拦截的数据包括被监控节点接收到的数据或被监控节点发送的数据。这里所说的监控数据是基于每一次拦截生成的监控数据。
示例性地,如图3所示,被监控节点121可以对发出的服务调用请求进行拦截;被监控节点122可以对接收到的服务调用请求进行拦截;被监控节点122可以对发出的执行结果进行拦截;被监控节点121可以对接收到的执行结果进行拦截。
在步骤420中,被监控节点基于拦截的数据,生成监控数据。
其中,监控数据包括链路状态标识和时间戳中的至少一项,以及TraceId和头部采样标识,TraceId可以用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,链路的状态包括异常或正常,时间戳用于指示被监控节点对数据的拦截时间。
示例性地,如图3所示,被监控节点121可以基于拦截到的服务调用请求生成监控数据1;被监控节点122可以基于拦截到的服务调用请求生成监控数据2;被监控节点122可以基于拦截到的执行结果生成监控数据3;被监控节点121可以基于拦截到的执行结果生成监控数据4。
其中,监控数据1、监控数据2、监控数据3和监控数据4中包括的数据可以参看上文的相关描述,为了简洁,此处不再赘述。
在步骤430中,被监控节点向监控节点发送监控数据。
示例性地,被监控节点121可以将监控数据1和监控数据4上报给监控节点,被监控节点122可以将监控数据2和监控数据3上报给监控节点。
基于上述方案,被监控节点通过拦截数据和生成包括链路状态标识和/或时间戳的监控数据,并向监控节点发送监控数据,为监控节点提供了预先对链路的状态进行判断的数据基础,以使得监控节点可以分析确定出异常链路,进而能够尽量多地采样到异常链路,以满足运维需求。
图5是本申请实施例提供的一种链路采样装置的示意性框图。该链路采样装置可用于实现上述方法200。
如图5所示,该链路采样装置500可以包括:获取模块510和确定模块520,获取模块510可以用于获取被监控节点的监控数据,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和时间戳中的至少一项,以及TraceId和头部采样标识,TraceId用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,时间戳用于指示被监控节点对接收到的数据的拦截时间和被监控节点对发送的数据的拦截时间;确定模块520可以用于根据链路状态标识,确定该链路的状态为异常;和/或,确定模块520可以用于根据时间戳,确定该链路的状态为异常;确定模块520还可以用于将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路,样本链路为需要被全量采集的链路。
可选地,当监控数据包括所述时间戳时,确定模块520具体可以用于根据时间戳确定被监控节点的耗时;确定被监控节点的耗时超过第一预设门限;确定该链路的状态为异常。
可选地,被监控节点为所述链路中的首个节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次发出数据至所述被监控节点最后一次接收到数据的总时长;或者,被监控节点为链路中除首个节点之外的节点,被监控节点的耗时包括:在对链路的调用过程中,被监控节点首次接收到数据至被监控节点最后一次发出数据的总时长。
可选地,确定模块520还具体可以用于根据时间戳,确定链路的调用过程中被监控节点对应的首个拦截时间和末个拦截时间;根据首个拦截时间和末个拦截时间,确定被监控节点的耗时。
可选地,当监控数据包括时间戳时,确定模块520还具体可以用于根据时间戳中对应于同一数据的两个拦截时间,确定数据的传输耗时;确定传输耗时超过第二预设门限;确定链路的状态为异常。
可选地,获取模块510具体可以用于通过暴露HTTP请求的方式获取来自被监控节点的监控数据。
图6是本申请实施例提供的另一种链路采样装置的示意性框图。该链路采样装置可用于实现上述方法400。
如图6所示,该链路采样装置600可以包括:拦截模块610、生成模块620和收发模块630,拦截模块610可以用于拦截数据,该数据包括接收到的数据或发送的数据;生成模块620可以用于基于拦截的数据,生成监控数据,监控数据包括链路状态标识和时间戳中的至少一项,以及TraceId和头部采样标识,TraceId用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示链路的状态,链路的状态包括异常或正常,时间戳用于指示被监控节点对数据的拦截时间;收发模块630可以用于向监控节点发送监控数据。
应理解,图5和图6中的链路采样装置的模块划分只是示例性的,在实际应用中可以根据不同的功能需求,划分出不同的功能模块,本申请对实际应用中的功能模块的划分形式和数量不作任何限定,并且图5和图6不能对本申请产生任何限定。
图7为本申请实施例提供的又一种链路采样装置的示意性框图。该链路采样装置可用于实现上述方法200或方法400。该链路采样装置可以为芯片***。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
示例性地,当该链路采样装置700用于实现本申请实施例提供的方法200时,处理器710可以用于获取被监控节点的监控数据,监控数据由被监控节点对接收到的数据和发送的数据拦截得到,监控数据包括链路状态标识和时间戳中的至少一项,以及TraceId和头部采样标识,TraceId用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示该链路的状态,时间戳用于指示被监控节点对接收到的数据的拦截时间和被监控节点对发送的数据的拦截时间;根据链路状态标识,确定该链路的状态为异常;和/或,根据时间戳,确定该链路的状态为异常;以及将状态为异常的链路和被头部采样标识指定为待采样的链路确定为样本链路,样本链路为需要被全量采集的链路。具体参见方法示例中的详细描述,此处不做赘述。
示例性地,当该链路采样装置700用于实现本申请实施例提供的方法400时,处理器710可以用于拦截数据,数据包括接收到的数据或发送的数据;基于拦截的数据,生成监控数据,监控数据包括链路状态标识和时间戳中的至少一项,以及TraceId和头部采样标识,TraceId用于标识被监控节点所在的一条链路,头部采样标识用于指示该链路是否被指定为待采样的链路,链路状态标识用于指示链路的状态,链路的状态包括异常或正常,时间戳用于指示被监控节点对数据的拦截时间;向监控节点发送监控数据。具体参见方法示例中的详细描述,此处不做赘述。
该链路采样装置700还可以包括至少一个存储器720,可以用于保存程序指令和数据等。存储器720和处理器710耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器710可能和存储器720协同操作。处理器710可能执行存储器720中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
该链路采样装置700还可以包括通信接口730,用于通过传输介质和其它设备进行通信,从而使得链路采样装置700可以和其它设备进行通信。所述通信接口730例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器710可利用通信接口730收发数据和/或信息,并用于实现图2对应的实施例中监控节点所执行的方法200,或,用于实现图4对应的实施例中被监控节点所执行的方法400。
本申请实施例中不限定上述处理器710、存储器720以及通信接口730之间的具体连接介质。本申请实施例在图7中以处理器710、存储器720以及通信接口730之间通过总线740连接。总线740在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请还提供了一种芯片***,所述芯片***包括至少一个处理器,用于实现上述图2所示实施例中监控节点执行的方法中所涉及的功能,或,用于实现上述图4所示实施例中被监控节点执行的方法中所涉及的功能。
在一种可能的设计中,所述芯片***还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
本申请还提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码或指令),当所述计算机程序被运行时,使得计算机执行如图2或图4所示实施例的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码或指令)。当所述计算机程序被运行时,使得计算机执行如图2或图4所示实施例的方法。
应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本说明书中使用的术语“单元”、“模块”等,可用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上单元集成在一个模块中。
在上述实施例中,各功能模块的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令(程序)。在计算机上加载和执行所述计算机程序指令(程序)时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种链路采样方法,其特征在于,应用于监控节点,所述方法包括:
获取被监控节点的监控数据,所述监控数据由所述被监控节点对接收到的数据和发送的数据拦截得到,所述监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,所述链路标识用于标识所述被监控节点所在的一条链路,所述头部采样标识用于指示所述链路是否被指定为待采样的链路,所述链路状态标识为所述被监控节点根据实际的业务处理情况设置的用于指示所述链路的状态,所述时间戳用于指示所述被监控节点对接收到的数据的拦截时间和所述被监控节点对发送的数据的拦截时间;
根据所述链路状态标识,确定所述链路的状态为异常;和/或
根据所述时间戳,确定所述链路的状态为异常;以及
将状态为异常的链路和被所述头部采样标识指定为待采样的链路确定为样本链路,所述样本链路为需要被全量采集的链路;
当所述监控数据包括所述时间戳时,所述根据所述时间戳,确定所述链路的状态为异常,包括:
根据所述时间戳确定所述被监控节点的耗时;
确定所述被监控节点的耗时超过第一预设门限;
确定所述链路的状态为异常。
2.如权利要求1所述的方法,其特征在于,所述被监控节点为所述链路中的首个节点,所述被监控节点的耗时包括:在对所述链路的调用过程中,所述被监控节点首次发出数据至所述被监控节点最后一次接收到数据的总时长;或者,
所述被监控节点为所述链路中除首个节点之外的节点,所述被监控节点的耗时包括:在对所述链路的调用过程中,所述被监控节点首次接收到数据至所述被监控节点最后一次发出数据的总时长。
3.如权利要求2所述的方法,其特征在于,所述根据所述时间戳确定所述被监控节点的耗时,包括:
根据所述时间戳,确定所述链路的调用过程中所述被监控节点对应的首个拦截时间和末个拦截时间;
根据所述首个拦截时间和所述末个拦截时间,确定所述被监控节点的耗时。
4.如权利要求1所述的方法,其特征在于,当所述监控数据包括所述时间戳时,所述根据所述时间戳,确定所述链路的状态为异常,包括:
根据所述时间戳中对应于同一数据的两个拦截时间,确定所述数据的传输耗时;
确定所述传输耗时超过第二预设门限;
确定所述链路的状态为异常。
5.如权利要求1所述的方法,其特征在于,所述获取被监控节点的监控数据,包括:
通过暴露超文本传输协议请求的方式获取来自所述被监控节点的监控数据。
6.一种链路采样方法,其特征在于,应用于被监控节点,所述方法包括:
拦截数据,所述数据包括接收到的数据或发送的数据;
基于拦截的数据,生成监控数据,所述监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,所述链路标识用于标识所述被监控节点所在的一条链路,所述头部采样标识用于指示所述链路是否被指定为待采样的链路,所述链路状态标识为所述被监控节点根据实际的业务处理情况设置的用于指示所述链路的状态,所述链路的状态包括异常或正常,所述时间戳用于指示所述被监控节点对所述数据的拦截时间;
向监控节点发送所述监控数据,以便所述监控节点根据所述时间戳确定所述被监控节点的耗时;确定所述被监控节点的耗时超过第一预设门限;确定所述链路的状态为异常。
7.一种链路采样装置,其特征在于,包括:
获取模块,用于获取被监控节点的监控数据,所述监控数据由所述被监控节点对接收到的数据和发送的数据拦截得到,所述监控数据包括链路状态标识和时间戳中的至少一项,以及链路标识和头部采样标识,所述链路标识用于标识所述被监控节点所在的一条链路,所述头部采样标识用于指示所述链路是否被指定为待采样的链路,所述链路状态标识为所述被监控节点根据实际的业务处理情况设置的用于指示所述链路的状态,所述时间戳用于指示所述被监控节点对接收到的数据的拦截时间和所述被监控节点对发送的数据的拦截时间;
确定模块,用于根据所述链路状态标识,确定所述链路的状态为异常;和/或,所述确定模块用于根据所述时间戳,确定所述链路的状态为异常;
所述确定模块还用于将状态为异常的链路和被所述头部采样标识指定为待采样的链路确定为样本链路,所述样本链路为需要被全量采集的链路;
所述确定模块,具体用于:
根据所述时间戳确定所述被监控节点的耗时;
确定所述被监控节点的耗时超过第一预设门限;
确定所述链路的状态为异常。
8.一种链路采样装置,其特征在于,包括:
拦截模块,用于拦截数据,所述数据包括接收到的数据或发送的数据;
生成模块,用于基于拦截的数据,生成监控数据,所述监控数据包括链路状态标识和/或时间戳中的至少一项,以及链路标识和头部采样标识,所述链路标识用于标识被监控节点所在的一条链路,所述头部采样标识用于指示所述链路是否被指定为待采样的链路,所述链路状态标识为所述被监控节点根据实际的业务处理情况设置的用于指示所述链路的状态,所述链路的状态包括异常或正常,所述时间戳用于指示所述监控节点对所述数据的拦截时间;
收发模块,用于向监控节点发送所述监控数据,以便所述监控节点根据所述时间戳确定所述被监控节点的耗时;确定所述被监控节点的耗时超过第一预设门限;确定所述链路的状态为异常。
9.一种链路采样装置,其特征在于,包括存储器和处理器,其中,
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述计算机执行指令,以实现如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444871.7A CN114760218B (zh) | 2022-04-24 | 2022-04-24 | 一种链路采样方法及其相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444871.7A CN114760218B (zh) | 2022-04-24 | 2022-04-24 | 一种链路采样方法及其相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114760218A CN114760218A (zh) | 2022-07-15 |
CN114760218B true CN114760218B (zh) | 2023-12-22 |
Family
ID=82333952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210444871.7A Active CN114760218B (zh) | 2022-04-24 | 2022-04-24 | 一种链路采样方法及其相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114760218B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873717A (zh) * | 2019-01-18 | 2019-06-11 | 深圳壹账通智能科技有限公司 | 监控方法、装置、计算机设备及存储介质 |
CN111611100A (zh) * | 2020-05-26 | 2020-09-01 | 中国工商银行股份有限公司 | 交易故障检测方法、装置、计算设备以及介质 |
CN111740860A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 日志数据传输链路监控方法及装置 |
CN111767202A (zh) * | 2020-07-08 | 2020-10-13 | 中国工商银行股份有限公司 | 异常检测方法、装置、电子设备和介质 |
CN113067747A (zh) * | 2021-03-15 | 2021-07-02 | 中国工商银行股份有限公司 | 一种链路异常追溯方法、集群、节点及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11095725B2 (en) * | 2019-07-30 | 2021-08-17 | EMC IP Holding Company LLC | Transporting data out of isolated network environments |
-
2022
- 2022-04-24 CN CN202210444871.7A patent/CN114760218B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873717A (zh) * | 2019-01-18 | 2019-06-11 | 深圳壹账通智能科技有限公司 | 监控方法、装置、计算机设备及存储介质 |
CN111611100A (zh) * | 2020-05-26 | 2020-09-01 | 中国工商银行股份有限公司 | 交易故障检测方法、装置、计算设备以及介质 |
CN111740860A (zh) * | 2020-06-15 | 2020-10-02 | 中国工商银行股份有限公司 | 日志数据传输链路监控方法及装置 |
CN111767202A (zh) * | 2020-07-08 | 2020-10-13 | 中国工商银行股份有限公司 | 异常检测方法、装置、电子设备和介质 |
CN113067747A (zh) * | 2021-03-15 | 2021-07-02 | 中国工商银行股份有限公司 | 一种链路异常追溯方法、集群、节点及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114760218A (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112910945B (zh) | 请求链路跟踪方法和业务请求处理方法 | |
US7685270B1 (en) | Method and apparatus for measuring latency in web services | |
CN110888783A (zh) | 微服务***的监测方法、装置以及电子设备 | |
CN107370806B (zh) | Http状态码监控方法、装置、存储介质和电子设备 | |
CN113312241A (zh) | 异常告警的方法、生成访问日志的方法以及运维*** | |
CN111522711B (zh) | 一种数据监控处理***、方法、执行端、监控端及电子设备 | |
CN109039787B (zh) | 日志处理方法、装置及大数据集群 | |
CN111176941B (zh) | 一种数据处理的方法、装置和存储介质 | |
CN108038039B (zh) | 记录日志的方法及微服务*** | |
CN111475376A (zh) | 处理测试数据的方法、装置、计算机设备和存储介质 | |
CN110737639A (zh) | 审计日志方法、装置、计算机设备及存储介质 | |
CN112965879A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN111666205A (zh) | 一种数据审计的方法、***、计算机设备和存储介质 | |
CN111147310A (zh) | 一种日志跟踪处理的方法、装置、服务器及介质 | |
CN114356785A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110430070B (zh) | 一种服务状态分析方法、装置、服务器、数据分析设备及介质 | |
CN110716912A (zh) | 一种sql性能检测方法及服务器 | |
CN114760218B (zh) | 一种链路采样方法及其相关装置 | |
CN112882948A (zh) | 一种应用的稳定性测试方法、装置、***及存储介质 | |
CN116841902A (zh) | 健康状态检查方法、装置、设备及存储介质 | |
CN108880920B (zh) | 云服务管理方法、装置以及电子设备 | |
CN114598622A (zh) | 数据监控方法及装置、存储介质、计算机设备 | |
CN115202973A (zh) | 应用运行状态的确定方法、装置、电子设备和介质 | |
CN114357001A (zh) | 多集群的数据查询方法、装置、监控平台及存储介质 | |
CN111651356A (zh) | 一种应用程序测试方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |