CN116069597A - 一种基于流量拦截的分布式链路追踪方法 - Google Patents
一种基于流量拦截的分布式链路追踪方法 Download PDFInfo
- Publication number
- CN116069597A CN116069597A CN202211729062.7A CN202211729062A CN116069597A CN 116069597 A CN116069597 A CN 116069597A CN 202211729062 A CN202211729062 A CN 202211729062A CN 116069597 A CN116069597 A CN 116069597A
- Authority
- CN
- China
- Prior art keywords
- request
- tracking data
- module
- tracking
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于流量拦截的分布式链路追踪方法,该追踪方法包括以下步骤:请求发出,进入应用服务之前,由拦截模块进行拦截;在请求产生并在进入应用服务之前,由拦截模块拦截,并转发至追踪数据处理模块,由追踪数据生成模块判断请求头部有无追踪数据,并根据请求头部有无追踪数据选择创建或是更新追踪数据,携带有追踪数据的请求头部转发至应用服务,经应用服务响应并转发请求至追踪数据生成模块,记录请求响应的时间,并将完整的追踪数据上报给追踪数据聚合模块,形成可视化图表,相对于现有技术,该种链路追踪方法,能够快速找出存在问题的服务,并理清服务之间的依赖关系,能够对微服务提供全面的监控、预警及故障定位。
Description
技术领域
本发明涉及服务器技术领域,具体是一种基于流量拦截的分布式链路追踪方法。
背景技术
随着互联网业务得到快速发展,传统意义上得到软件架构也日益变得复杂;
为了适应海量用户的高并发请求,避免服务器瘫痪,系统中越来越多的组件开始走向分布式化,如单体架构拆分为微服务、服务内缓存变为分布式缓存、服务组件通信变为分布式消息,这些组件共同构成了繁杂的分布式网络;分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。
在应用服务的去中心化、微服务化、容器化的大趋势背景下,面对急剧攀升的微服务,现有技术中的链路追踪方法无法快速发现有问题的服务,无法理清服务之间的依赖关系,同时无法对以容器化部署的微服务进行全面的监控、预警以及故障定位。
因此,针对上述问题提出一种基于流量拦截的分布式链路追踪方法。
发明内容
为了弥补现有技术的不足,解决上述至少一个问题,本发明提出的一种基于流量拦截的分布式链路追踪方法。
一种基于流量拦截的分布式链路追踪方法,该追踪方法包括以下步骤:
步骤S1:请求发出,进入应用服务之前,由拦截模块进行拦截;
步骤S2:拦截模块将请求经iptable规则重定向后,发送至追踪数据处理模块;
步骤S3:追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,判断请求头部有无追踪数据;
步骤S4:经过追踪数据处理模块后的请求头部,携带追踪数据进入应用服务;
步骤S5:应用服务响应后,请求头部携带追踪数据返回至追踪数据处理模块,并上报至追踪数据聚合模块,用于生成可视化图表;
其中,请求经追踪数据处理模块处理时,判断请求头部有无追踪数据;若请求头部没有任何追踪数据,则会视为该请求为新的链路,需创建追踪数据,并记录SR时间,即serverreceived,用于表示请求接收时间;若请求头部有追踪数据,则保留追踪数据,同时记录SR时间,用于表示请求接收时间。
优选的,所述追踪数据处理模块包括追踪数据生成模块;所述追踪数据生成模块用于解析请求,并根据请求头部中是否有追踪数据选择创建或是更新追踪数据,随后再将请求发往应用服务。
优选的,所述追踪数据处理模块还包括追踪数据上报模块;所述追踪数据上报模块负责当请求响应后,将请求的完整追踪数据上报至追踪数据聚合模块。
优选的,所述应用服务中包括追踪数据传播模块,用于当应用服务接收到追踪数据生成模块产生的请求转发后,记录追踪数据。
优选的,所述追踪数据聚合模块,负责将上报的追踪数据串联,并形成可视化的图表。
优选的,所述步骤S3中,追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,并判断请求头部有无追踪数据;经追踪数据处理模块中的追踪数据生成模块对请求进行解析,判断请求头部有无追踪数据。
优选的,所述步骤S4中,携带有追踪数据的请求头部经追踪数据生成模块转发至追踪数据传播模块中,应用服务响应后,追踪数据传播模块将请求转发至追踪数据生成模块,并由追踪数据生成模块在追踪数据中记录SS时间,即serversent,用于表示请求响应的时间。
优选的,所述步骤S4中,请求头部携带追踪数据进入应用服务后,若应用服务还需要请求子服务,则追踪数据会被追踪数据传播模块放入请求头中进行传递,重复步骤S1-S5。
本发明的有益之处在于:
本发明通过设置拦截模块、追踪数据处理模块以及追踪数据聚合模块,在请求产生并在进入应用服务之前,由拦截模块拦截,并转发至追踪数据处理模块,由追踪数据生成模块判断请求头部有无追踪数据,并根据请求头部有无追踪数据选择创建或是更新追踪数据,携带有追踪数据的请求头部转发至应用服务,经应用服务响应并转发请求至追踪数据生成模块,记录请求响应的时间,并将完整的追踪数据上报给追踪数据聚合模块,形成可视化图表,相对于现有技术,该种链路追踪方法,能够快速找出存在问题的服务,并理清服务之间的依赖关系,能够对微服务提供全面的监控、预警及故障定位。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一种实施例的链路追踪方法的流程图;
图2为本发明一种实施例中链路追踪方法演示示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-图2所示,一种基于流量拦截的分布式链路追踪方法,该追踪方法包括以下步骤:
步骤S1:请求发出,进入应用服务之前,由拦截模块进行拦截;
步骤S2:拦截模块将请求经iptable规则重定向后,发送至追踪数据处理模块;
步骤S3:追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,判断请求头部有无追踪数据;
步骤S4:经过追踪数据处理模块后的请求头部,携带追踪数据进入应用服务;
步骤S5:应用服务响应后,请求头部携带追踪数据返回至追踪数据处理模块,并上报至追踪数据聚合模块,用于生成可视化图表;
其中,请求经追踪数据处理模块处理时,判断请求头部有无追踪数据;若请求头部没有任何追踪数据,则会视为该请求为新的链路,需创建追踪数据,并记录SR时间,即serverreceived,用于表示请求接收时间;若请求头部有追踪数据,则保留追踪数据,同时记录SR时间,用于表示请求接收时间。
作为本发明的一种实施方式,所述追踪数据处理模块包括追踪数据生成模块;所述追踪数据生成模块用于解析请求,并根据请求头部中是否有追踪数据选择创建或是更新追踪数据,随后再将请求发往应用服务。
作为本发明的一种实施方式,所述追踪数据处理模块还包括追踪数据上报模块;所述追踪数据上报模块负责当请求响应后,将请求的完整追踪数据上报至追踪数据聚合模块。
作为本发明的一种实施方式,所述应用服务中包括追踪数据传播模块,用于当应用服务接收到追踪数据生成模块产生的请求转发后,记录追踪数据。
作为本发明的一种实施方式,所述追踪数据聚合模块,负责将上报的追踪数据串联,并形成可视化的图表。
作为本发明的一种实施方式,所述步骤S3中,追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,并判断请求头部有无追踪数据;经追踪数据处理模块中的追踪数据生成模块对请求进行解析,判断请求头部有无追踪数据。
作为本发明的一种实施方式,所述步骤S4中,携带有追踪数据的请求头部经追踪数据生成模块转发至追踪数据传播模块中,应用服务响应后,追踪数据传播模块将请求转发至追踪数据生成模块,并由追踪数据生成模块在追踪数据中记录SS时间,即serversent,用于表示请求响应的时间。
作为本发明的一种实施方式,所述步骤S4中,请求头部携带追踪数据进入应用服务后,若应用服务还需要请求子服务,则追踪数据会被追踪数据传播模块放入请求头中进行传递,重复步骤S1-S5。
具体的,如附图2所示,为一次完整的链路追踪步骤,包括:
A1:在请求进入应用服务之前,被拦截模块定义的iptable规则重定向到追踪数据生成模块。
A2:追踪数据生成模块对进入应用服务的请求进行追踪数据处理。
A3:请求头部如果没有任何追踪数据,则会视为此次请求是一个新的链路,创建追踪数据:链路唯一标识traceID,该次请求的唯一标识spanID,同时记录SR时间(serverreceived)用于表示请求接收的时间。
A4:请求头部如果有追踪数据,保留追踪数据,同时记录SR时间(serverreceived)用于表示请求接收的时间。
A5:请求头部携带追踪数据,进入应用服务。
A6:如果应用服务需要请求子服务,追踪数据会被追踪数据传播模块放入请求头进行传递。
A7:从应用服务发出的请求被拦截模块通过iptable拦截转发往追踪数据处理模块。
A8:追踪数据生成模块对从应用服务发出的请求进行追踪数据处理。
A9:请求头部如果没有任何追踪数据,则会视为此次请求是一个新的链路,创建追踪数据:链路唯一标识traceID,该次请求的唯一标识spanID,同时记录CS时间(clientsent)用于表示请求发送的时间。
A10:请求头部如果有追踪数据,创建新请求追踪数据:保留traceID,创建新的spanID,parentSpanID设为上一个spanID,同时记录CS时间(client sent)用于表示请求发送的时间。
A11:该请求发往子服务,步骤参照1-9。
A12:当子服务返回响应,追踪数据生成模块会在追踪数据里记录SS时间(serversent)用于表示请求响应的时间。
A13:该请求的追踪数据traceID,spanID,parentSpanID,CS,CR记录完毕,可上报追踪数据聚合模块。
工作原理:通过设置拦截模块、追踪数据处理模块以及追踪数据聚合模块,在请求产生并在进入应用服务之前,由拦截模块拦截,并转发至追踪数据处理模块,由追踪数据生成模块判断请求头部有无追踪数据,并根据请求头部有无追踪数据选择创建或是更新追踪数据,携带有追踪数据的请求头部转发至应用服务,经应用服务响应并转发请求至追踪数据生成模块,记录请求响应的时间,并将完整的追踪数据上报给追踪数据聚合模块,形成可视化图表,相对于现有技术,该种链路追踪方法,能够快速找出存在问题的服务,并理清服务之间的依赖关系,能够对微服务提供全面的监控、预警及故障定位。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (8)
1.一种基于流量拦截的分布式链路追踪方法,其特征在于:该追踪方法包括以下步骤:
步骤S1:请求发出,进入应用服务之前,由拦截模块进行拦截;
步骤S2:拦截模块将请求经iptable规则重定向后,发送至追踪数据处理模块;
步骤S3:追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,判断请求头部有无追踪数据;
步骤S4:经过追踪数据处理模块后的请求头部,携带追踪数据进入应用服务;
步骤S5:应用服务响应后,请求头部携带追踪数据返回至追踪数据处理模块,并上报至追踪数据聚合模块,用于生成可视化图表;
其中,请求经追踪数据处理模块处理时,判断请求头部有无追踪数据;若请求头部没有任何追踪数据,则会视为该请求为新的链路,需创建追踪数据,并记录SR时间,即serverreceived,用于表示请求接收时间;若请求头部有追踪数据,则保留追踪数据,同时记录SR时间,用于表示请求接收时间。
2.根据权利要求1所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述追踪数据处理模块包括追踪数据生成模块;所述追踪数据生成模块用于解析请求,并根据请求头部中是否有追踪数据选择创建或是更新追踪数据,随后再将请求发往应用服务。
3.根据权利要求2所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述追踪数据处理模块还包括追踪数据上报模块;所述追踪数据上报模块负责当请求响应后,将请求的完整追踪数据上报至追踪数据聚合模块。
4.根据权利要求3所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述应用服务中包括追踪数据传播模块,用于当应用服务接收到追踪数据生成模块产生的请求转发后,记录追踪数据。
5.根据权利要求4所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述追踪数据聚合模块,负责将上报的追踪数据串联,并形成可视化的图表。
6.根据权利要求5所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述步骤S3中,追踪数据处理模块对欲进入应用服务的请求进行追踪数据处理,并判断请求头部有无追踪数据;经追踪数据处理模块中的追踪数据生成模块对请求进行解析,判断请求头部有无追踪数据。
7.根据权利要求6所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述步骤S4中,携带有追踪数据的请求头部经追踪数据生成模块转发至追踪数据传播模块中,应用服务响应后,追踪数据传播模块将请求转发至追踪数据生成模块,并由追踪数据生成模块在追踪数据中记录SS时间,即server sent,用于表示请求响应的时间。
8.根据权利要求7所述的一种基于流量拦截的分布式链路追踪方法,其特征在于:所述步骤S4中,请求头部携带追踪数据进入应用服务后,若应用服务还需要请求子服务,则追踪数据会被追踪数据传播模块放入请求头中进行传递,重复步骤S1-S5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211729062.7A CN116069597A (zh) | 2022-12-30 | 2022-12-30 | 一种基于流量拦截的分布式链路追踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211729062.7A CN116069597A (zh) | 2022-12-30 | 2022-12-30 | 一种基于流量拦截的分布式链路追踪方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069597A true CN116069597A (zh) | 2023-05-05 |
Family
ID=86170962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211729062.7A Pending CN116069597A (zh) | 2022-12-30 | 2022-12-30 | 一种基于流量拦截的分布式链路追踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069597A (zh) |
-
2022
- 2022-12-30 CN CN202211729062.7A patent/CN116069597A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7870245B2 (en) | Delivery context aware activity on networks: devices, software, and methods | |
US7401141B2 (en) | Method and system for monitoring performance of distributed applications | |
US6973490B1 (en) | Method and system for object-level web performance and analysis | |
US10747592B2 (en) | Router management by an event stream processing cluster manager | |
US8156216B1 (en) | Distributed data collection and aggregation | |
EP2544406B1 (en) | Method and management agent for event notifications correlation | |
CN110730246A (zh) | 一种微服务架构下的分布式链路跟踪方法 | |
US20030105801A1 (en) | Method, system and agent for connecting event consumers to event producers in a distributed event management system | |
WO2005071560A1 (en) | Method and system for application performance management | |
US20060069777A1 (en) | Request message control method for using service and service providing system | |
US7289989B2 (en) | Pattern based web services | |
JP2005237018A (ja) | ネットワークマネージメントシステムへのデータ送信 | |
US20070201640A1 (en) | System, device and method for operation and maintenance of network devices | |
CN116069597A (zh) | 一种基于流量拦截的分布式链路追踪方法 | |
CN115834699A (zh) | 一种服务调用链跟踪实现方法及系统 | |
CN114598622A (zh) | 数据监控方法及装置、存储介质、计算机设备 | |
CN112929191B (zh) | 服务监控方法、系统以及相关设备、装置 | |
CN115102854B (zh) | 微服务的远程过程调用路由管理控制方法、系统及设备 | |
CN110324354B (zh) | 一种网络追踪长链条攻击的方法、装置和系统 | |
CN109660613B (zh) | 文件传输方法及系统 | |
GB2395087A (en) | Probing a server | |
CN117667565A (zh) | 业务异常监控方法、电子设备及存储介质 | |
CN117880154A (zh) | 微服务系统的网关监控方法及相关设备 | |
CN115391127A (zh) | 一种拨测方法、装置、存储介质及芯片 | |
CN117640508A (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 |