CN106502874B - 一种调用链跟踪方法 - Google Patents
一种调用链跟踪方法 Download PDFInfo
- Publication number
- CN106502874B CN106502874B CN201610942694.XA CN201610942694A CN106502874B CN 106502874 B CN106502874 B CN 106502874B CN 201610942694 A CN201610942694 A CN 201610942694A CN 106502874 B CN106502874 B CN 106502874B
- Authority
- CN
- China
- Prior art keywords
- path
- subsystem
- call chain
- request
- log
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种调用链跟踪方法,包括以下步骤:S1:客户端发起请求;S2:生成全局唯一的路径ID,并加入到系统标识中;S3:在子系统内部存储该路径ID;S4:向下游子系统进行传递时,将路径ID设置到Http Request Header中,并加入调用序号;S5:下游子系统得到路径ID,并封装自己的系统标识;S6:如果没有传递到最后一个下游子系统,则返回步骤S4,直到传递到最后一个下游子系统才进行步骤S7;S7:各个子系统在日志中打印当前上下文的路径ID,关联异常堆栈日志;S8:请求执行完毕。本发明能够找到请求链路中的瓶颈点、故障点以及该次请求的异常日志;能够衡量在单元内的路由正确性;还能够找出链路上的不正常的、多余的依赖调用。
Description
技术领域
本发明涉及一种调用链跟踪方法。
背景技术
当前机票应用服务系统包含很多子系统,客户端发起一次查询请求或者下单请求,会通过很长的子系统链路,每个环节都有可能出现问题,而每个子系统直接提供的服务是相互隔离的,监控日志也是互相没有交集,同时每个子系统每天都会产生几百G的日志量。因此,一旦客户端发起的请求系统响应异常或者超时,很难定位具体哪个环节出现问题。为了解决以上问题,现有技术采用的方案为:在几个关键系统部署大量监控日志,如果某个用户发起的请求系统响应失败,从各个关键系统的监控日志寻找问题。然而,现有技术的方案存在以下几个缺陷:
1.需要从各个系统去捞取监控日志,而且这些日志无法有效地串联,各个子系统的监控日志也没有统一的标准;
2.有些在用户侧产生的问题很难复现;
3.各个子系统监控曲线是正常的,但是某些用户请求确实是有问题,找不到问题产生的真正原因。
发明内容
发明目的:本发明的目的是提供一种能够解决现有技术中存在的缺陷的调用链跟踪方法。
技术方案:本发明所述的调用链跟踪方法,包括以下步骤:
S1:客户端发起请求;
S2:生成全局唯一的路径ID,并加入到系统标识中;
S3:在子系统内部存储该路径ID;
S4:向下游子系统进行传递时,将路径ID设置到Http Request Header中,并加入调用序号;
S5:下游子系统得到路径ID,并封装自己的系统标识;
S6:如果没有传递到最后一个下游子系统,则返回步骤S4,直到传递到最后一个下游子系统才进行步骤S7;
S7:各个子系统在日志中打印当前上下文的路径ID,关联异常堆栈日志;
S8:请求执行完毕。
进一步,步骤S2中,所述路径ID由在最外层服务端的拦截器通过统一的调用链中间件生成。
进一步,步骤S3中,所述子系统内部使用Threadlocal存储路径ID。
进一步,步骤S5中,所述下游子系统使用统一的调用链中间件解析得到路径ID。
有益效果:与现有技术相比,本发明具有如下的有益效果:
1.本发明能够有效排查客户端某页面响应慢或者报错的原因,找到请求链路中的瓶颈点、故障点以及该次请求的异常日志;
2.本发明能够验证调用路径是否符合预期,将数据建模,衡量在单元内的路由正确性;
3.本发明能够建立各个层次上的依赖的错误指标和响应时长指标,找出链路上的不正常的、多余的依赖调用。
附图说明
图1为本发明具体实施方式的方法流程图;
图2为本发明具体实施方式的方法示例图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步的介绍。
本具体实施方式公开了一种调用链跟踪方法,如图1所示,包括以下步骤:
S1:客户端发起请求;
S2:在最外层服务端的拦截器通过统一的调用链中间件生成全局唯一的路径ID,并加入到系统标识中;
S3:在子系统内部使用Threadlocal存储该路径ID;
S4:向下游子系统进行传递时,将路径ID设置到Http Request Header中,并加入调用序号;
S5:下游子系统使用统一的调用链中间件解析得到路径ID,并封装自己的系统标识;
S6:如果没有传递到最后一个下游子系统,则返回步骤S4,直到传递到最后一个下游子系统才进行步骤S7;
S7:各个子系统在日志中打印当前上下文的路径ID,关联异常堆栈日志;
S8:请求执行完毕。
其中,客户端包括网站、APP、M站中的一种或多种。
如图2所示,每个系统都有自己的调用序号,被调用的系统会在自己接收到的序号后新增一个序号级别,以表示被调用。
通过以上方法,能够轻松找出应用的关键路径,具体能够实现以下功能:
1.能够知道应用被调用得最多的入口、服务是哪些;
2.能够找出性能瓶颈、易故障点、变化点;
3.能够用于容量评估、性能优化;
4.能够大大促进链路监控和高峰预警;
5.能够衡量网络调用的均衡性;
6.能够衡量在单元内的路由正确性。
以上调用链相关的服务(如日志打印、生成路径ID、设置系统序号等)无需各个子系统大批量修改代码,只需接入调用链跟踪中间件即可。调用链中间件会封装TSP-Client以及HTTP-Client,在各个应用中加入拦截器,使用统一方式针对路径ID进行封装、存储与下一步传递。
可以将业务信息与链路结合,使用会员id联合路径ID的方式,找到用户关键的查询、下单数据,或者黄牛刷单的操作记录,并将这些数据做消息发布,供各个系统(如风控系统)订阅,进行风险识别和控制。
Claims (3)
1.一种调用链跟踪方法,其特征在于:包括以下步骤:
S1:客户端发起请求;
S2:生成全局唯一的路径ID并加入到系统标识中;步骤S2中,所述路径ID由在最外层服务端的拦截器通过统一的调用链中间件生成,调用链中间件封装TSP-Client和HTTP-Client;
S3:在子系统内部存储该路径ID;
S4:向下游子系统进行传递时,将路径ID设置到Http Request Header中,并加入调用序号;
S5:下游子系统得到路径ID,并封装自己的系统标识;
S6:如果没有传递到最后一个下游子系统,则返回步骤S4,直到传递到最后一个下游子系统才进行步骤S7;
S7:各个子系统在日志中打印当前上下文的路径ID,关联异常堆栈日志;
S8:请求执行完毕。
2.根据权利要求1所述的调用链跟踪方法,其特征在于:步骤S3中,所述子系统内部使用Threadlocal存储路径ID。
3.根据权利要求1所述的调用链跟踪方法,其特征在于:步骤S5中,所述下游子系统使用统一的调用链中间件解析得到路径ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610942694.XA CN106502874B (zh) | 2016-10-26 | 2016-10-26 | 一种调用链跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610942694.XA CN106502874B (zh) | 2016-10-26 | 2016-10-26 | 一种调用链跟踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502874A CN106502874A (zh) | 2017-03-15 |
CN106502874B true CN106502874B (zh) | 2019-05-10 |
Family
ID=58320944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610942694.XA Active CN106502874B (zh) | 2016-10-26 | 2016-10-26 | 一种调用链跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502874B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092553A (zh) * | 2017-04-20 | 2017-08-25 | 广州华多网络科技有限公司 | 一种建立进程间请求调用链的方法、装置及计算机系统 |
CN107943649A (zh) * | 2017-11-21 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种分布式集群性能监控系统及方法 |
CN107818024A (zh) * | 2017-11-22 | 2018-03-20 | 北京汇通金财信息科技有限公司 | 一种基于spring拦截器的request ID传递方法及系统 |
CN108183927A (zh) * | 2017-11-22 | 2018-06-19 | 链家网(北京)科技有限公司 | 一种分布式系统中链路调用的监控方法及系统 |
CN108319536B (zh) * | 2017-12-29 | 2021-11-23 | 北京五八信息技术有限公司 | 一种日志设置方法、装置、设备及计算机可读存储介质 |
CN108459939B (zh) * | 2018-01-08 | 2020-06-23 | 平安科技(深圳)有限公司 | 一种日志收集方法、装置、终端设备及存储介质 |
CN109104302A (zh) * | 2018-07-18 | 2018-12-28 | 杭州鑫合汇互联网金融服务有限公司 | 一种全链路追踪监控方法 |
CN109150977B (zh) * | 2018-07-24 | 2021-05-14 | 中信百信银行股份有限公司 | 基于交易链路自动生成全局流水号的方法 |
CN110780883A (zh) | 2018-07-30 | 2020-02-11 | 网宿科技股份有限公司 | 方法调用链跟踪方法、电子装置及计算机可读存储介质 |
CN110825425B (zh) * | 2018-08-09 | 2024-09-20 | 北京京东尚科信息技术有限公司 | 配置数据管理方法及装置、电子设备、存储介质 |
CN109062809B (zh) * | 2018-09-20 | 2022-01-21 | 北京奇艺世纪科技有限公司 | 一种线上测试用例生成方法、装置及电子设备 |
CN111382023B (zh) * | 2018-12-27 | 2023-04-28 | 中国移动通信集团贵州有限公司 | 代码故障定位方法、装置、设备及存储介质 |
CN109976921A (zh) * | 2019-02-25 | 2019-07-05 | 青岛迅隆信息科技有限责任公司 | Rpc服务或消息的指定消费方法及装置、可存储介质和终端 |
CN111752819B (zh) * | 2019-03-29 | 2024-04-05 | 广州市百果园信息技术有限公司 | 一种异常监控方法、装置、系统、设备和存储介质 |
CN110647447B (zh) * | 2019-08-01 | 2023-04-14 | 百度时代网络技术(北京)有限公司 | 用于分布式系统的异常实例检测方法、装置、设备和介质 |
CN111277643B (zh) * | 2020-01-18 | 2023-07-28 | 深圳市麦谷科技有限公司 | 一种http链路跟踪记录方法及系统 |
CN111724158B (zh) * | 2020-05-25 | 2024-03-26 | 中国建设银行股份有限公司 | 交易路径生成方法、系统及相关计算机设备和存储介质 |
CN114328168B (zh) * | 2020-10-09 | 2024-07-02 | 腾讯科技(深圳)有限公司 | 异常检测方法、装置、计算机设备和存储介质 |
CN112783451A (zh) * | 2021-01-22 | 2021-05-11 | 中信银行股份有限公司 | 一种基于拦截器的耗时异常分析的方法及系统、存储介质 |
CN113064750B (zh) * | 2021-04-26 | 2023-03-28 | 山东英信计算机技术有限公司 | 一种bios日志信息的追踪方法、装置和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219316A (zh) * | 2014-09-12 | 2014-12-17 | 微梦创科网络科技(中国)有限公司 | 一种分布式系统中的调用请求处理方法及装置 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪系统 |
CN105260292A (zh) * | 2015-10-09 | 2016-01-20 | 中国人民财产保险股份有限公司 | 一种日志记录方法、装置及系统 |
CN105577454A (zh) * | 2016-03-03 | 2016-05-11 | 上海新炬网络信息技术有限公司 | 一种基于日志快速定位业务故障的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635617B2 (en) * | 2010-09-30 | 2014-01-21 | Microsoft Corporation | Tracking requests that flow between subsystems using transaction identifiers for generating log data |
-
2016
- 2016-10-26 CN CN201610942694.XA patent/CN106502874B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219316A (zh) * | 2014-09-12 | 2014-12-17 | 微梦创科网络科技(中国)有限公司 | 一种分布式系统中的调用请求处理方法及装置 |
CN105260292A (zh) * | 2015-10-09 | 2016-01-20 | 中国人民财产保险股份有限公司 | 一种日志记录方法、装置及系统 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪系统 |
CN105577454A (zh) * | 2016-03-03 | 2016-05-11 | 上海新炬网络信息技术有限公司 | 一种基于日志快速定位业务故障的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106502874A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502874B (zh) | 一种调用链跟踪方法 | |
CN106354765B (zh) | 一种基于分布式采集的日志分析系统及方法 | |
US10812314B2 (en) | Methods and apparatuses for pushing a message | |
CN103023693B (zh) | 一种行为日志数据管理系统及方法 | |
JP6324534B2 (ja) | プロモーション状況データの監視方法、装置、デバイス及び非発揮性コンピューター記憶媒体 | |
WO2019156963A3 (en) | Response at network terminal to initialization failure | |
CN102868693A (zh) | 针对http分片请求的url过滤方法及系统 | |
CN113242297B (zh) | 服务系统及服务状态的调整方法 | |
CN108769179A (zh) | 一种服务健康状态评估方法及装置 | |
CN109739527A (zh) | 一种客户端灰度发布的方法、装置、服务器和存储介质 | |
CN105637488A (zh) | 追踪源代码用于末端用户监控 | |
CN112751772A (zh) | 数据传输方法和系统 | |
CN110532782A (zh) | 一种任务执行程序的检测方法、装置及存储介质 | |
CN104038366B (zh) | 集群节点失效检测方法和系统 | |
CN114500312B (zh) | 一种通信线路校验方法、装置、电子设备及系统 | |
CN102684925B (zh) | 互联网访问来源信息的获取方法和装置 | |
CN111740494B (zh) | 基于边缘计算和云计算的数据管理方法及边缘计算平台 | |
JP2014523671A (ja) | 対話型アプリケーションサービスの全体的なパフォーマンスの評価 | |
CN112751722B (zh) | 数据传输质量监控方法和系统 | |
CN103944779A (zh) | 一种wap业务性能监测方法及系统 | |
CN113726647B (zh) | 一种标识解析方法及装置 | |
CN103297480A (zh) | 一种应用服务自动检测系统和方法 | |
CN114090293A (zh) | 一种服务提供方法及电子设备 | |
US10027533B2 (en) | System for cloud-based service outage detection and verification | |
CN111708689B (zh) | 一种修改ab实验的方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |