CN111431773B - 一种基于OpenTracing的链路跟踪方法 - Google Patents
一种基于OpenTracing的链路跟踪方法 Download PDFInfo
- Publication number
- CN111431773B CN111431773B CN202010417358.XA CN202010417358A CN111431773B CN 111431773 B CN111431773 B CN 111431773B CN 202010417358 A CN202010417358 A CN 202010417358A CN 111431773 B CN111431773 B CN 111431773B
- Authority
- CN
- China
- Prior art keywords
- link
- request
- tracking
- probe
- information
- 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
Images
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/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/12—Network monitoring probes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于OpenTracing的链路跟踪方法,包括:客户端发起请求:客户端访问带有探针的服务器对外暴露的服务信息;探针服务器拦截请求:在各个组件侧部署定制化的探针,当组件收到用户请求时,探针将调用链等信息写到符合OpenTracing的请求头中;链路监控平台根据请求形成链路拓扑:链路监控平台在接收到数据后,按照链路标识构建成一条链路拓扑。本发明解决异构环境多服务***遇到故障及性能排查困难、耗时长等相关问题,为业务功能使用情况分析、应用性能优化等提供数据支撑,从而提升应用的运行稳定性和性能。
Description
技术领域
本发明属于软件技术领域,涉及链路监控平台、OpenTracing标准、探针技术,具体说是一种基于OpenTracing的链路跟踪方法。
背景技术
对于实施了内外网物理隔离的企业,其对外服务通常会使用特定的运营商通道,通过安全接入网关代理服务请求,这就给应用性能问题及故障排查增加了复杂性。为了能够高效排查故障及追踪性能问题,需要研究一种技术来跟踪请求访问路径,从用户操作到移动端设备发起网络请求,再到安全接入平台、应用前置服务、信息内网应用服务并返回响应的全过程,各环节应能标识各自的请求源自哪个用户请求操作,对于一个用户请求对应多个后端应用的,要能够跟踪分支请求调用链路,从而构建用户访问请求完整拓扑信息。现有技术中,存在异构环境多服务***遇到故障及性能排查困难、耗时长等相关问题。
根据用户请求链路拓扑信息、各环节监测指标就能够快速进行问题定位,分析问题位于运营商APN通道、网络、信息内网中的哪个网络环境,排查安全接入平台、防火墙等设备问题,以及中间件、数据库或程序缺陷问题、接口问题,实现纳管终端、通道、应用情况的总体运行情况展现与分析,为业务功能使用情况分析、应用性能优化等提供数据支撑,从而提升应用的运行稳定性和性能。
发明内容
针对现有技术存在的问题,本发明的目的是提供一种基于OpenTracing的链路跟踪方法。通过扩展OpenTracing的标准协议,把链路(Trace)中的多个跨度(Span)分类聚合到追踪段(TraceSegment)中,每次上报数据都以追踪段为单位,并生成三段特殊标记符号。在数据展示侧中根据标记顺序重新组装并展示出一次链路调用过程,使得开发人员能够方便的定制追踪***的实现。
本发明的目的通过以下技术方案实现:
一种基于OpenTracing的链路跟踪方法,其特征在于:该方法通过扩展OpenTracing的标准协议,把链路中的多个跨度分类聚合到追踪段中,每次上报数据都以追踪段为单位,并生成三段特殊标记符号;在数据展示侧中根据标记顺序重新组装并展示出一次链路调用过程,定制出追踪***;包括以下步骤:
(1)客户端发起请求:客户端访问带有探针的服务器对外暴露的服务信息;
(2)探针服务器拦截请求:在各个组件侧部署定制化的探针,当组件收到用户请求时,探针将调用链等信息写到符合OpenTracing的请求头中;
(3)链路监控平台根据请求形成链路拓扑:链路监控平台在接收到数据后,按照链路标识构建成一条链路拓扑。
进一步的,步骤(1)中客户端探针在感知到客户端应用启动时,发送客户端信息到链路监控平台,生成链路标识;
进一步的,步骤(2)具体包括:
(2-1)在捕获到用户的网络请求时,生成跨度信息,分类聚合成追踪端数据并发送到链路监控平台,然后将链路标识、追踪段等信息写到符合OpenTracing规则的请求头中并进行请求转发;
(2-2)安全接入平台在接收到客户端请求时,会将本次请求的代理请求日志记录下来并保存到客户端文件中。客户端探针定时读取安全接入平台日志文件,把日志发送到链路监控平台;
(2-3)应用前置服务在接收到网络请求后,会根据链路监控平台提供的日志格式记录下请求头中的链路标识、追踪段信息,并通过Kafka把日志发送到链路监控平台;
(2-4)在捕获到用户的网络请求时,服务端探针解析请求头中的链路标识、追踪段信息,生成自己的跨度信息,分类聚合成追踪段数据并发送到链路监控平台;在捕获到服务发出的网络请求时,探针将链路标识、追踪段等信息写到符合OpenTracing规则的请求头中,并将请求转发出去.
进一步的,步骤(3)中链路监控平台把接收到的追踪段数据进行分析后,如图2所示从中拆分出服务指标信息,并把追踪段数据持久化到数据库中。在接收到查询链路跟踪的请求后,把追踪段数据从数据库中取出并根据链路标识重组成链路拓扑,从而实现链路跟踪。
本发明通过扩展OpenTracing的标准协议,把链路(Trace)中的多个跨度(Span)分类聚合到追踪段(TraceSegment)中,每次上报数据都以追踪段为单位,并生成三段特殊标记符号。在数据展示侧中根据标记顺序重新组装并展示出一次链路调用过程,使得开发人员能够方便的定制追踪***的实现。
本发明解决了异构环境多服务***遇到故障及性能排查困难、耗时长等相关问题。为业务功能使用情况分析、应用性能优化等提供数据支撑,从而提升应用的运行稳定性和性能。
附图说明
图1为本发明的方法流程图;
图2为经过扩展后按时间顺序呈现的调用链。
具体实施方式
一种基于OpenTracing的链路跟踪方法,通过扩展OpenTracing的标准协议,把链路(Trace)中的多个跨度(Span)分类聚合到追踪段(TraceSegment)中,每次上报数据都以追踪段为单位,并生成三段特殊标记符号。在数据展示侧中根据标记顺序重新组装并展示出一次链路调用过程,使得开发人员能够方便的定制追踪***的实现。如图1所示,包括:
(1)客户端发起请求:客户端访问带有探针的服务器对外暴露的服务信息。
(2)探针服务器拦截请求:在各个组件侧部署定制化的探针,当组件收到用户请求时,探针将调用链等信息写到符合OpenTracing的请求头中,并将请求信息发送给链路监控平台,每个调用链由多个扩展的TraceSegment对象中,Segment包含跨度(Span) 。Span 和Span 的关系称为 Reference。
OpenTracing把一次分布式链路跟踪(Distributed Trace)分为多个跨度(Span),我们在此基础上增加了追踪段(TraceSegment)的概念。一个追踪段是一次分布式链路跟踪链路的一段,是用来用于记录所在线程的链路数据,每个追踪段中包含多个跨度。这样就可以解决跨进程和跨线程的调用链路跟踪的问题。
如图2所示是经过扩展后按时间顺序呈现的调用链。
对于语义规则中的无实际意义的跨度,我们把他扩展为五种类型的跨度,分为两大类共五种,有具体操作的跨度:入口跨度(用于记录服务端的链路信息)、本地跨度(用于本地方法的链路信息)、出口跨度(用于记录消费端的链路信息)和无具体操作的跨度:无操作入口跨度、无操作出口跨度。
以下是对上图各种类型组件的追踪信息采集方案的具体解释。
(2-1)移动应用追踪信息采集:预先在移动应用中安装链路监控平台提供的SDK探针,用户在使用应用时,探针捕获到网络请求并在其中添加特殊的请求头,同时把采集到到的数据构建成跨度,并把跨度数组分类聚合成追踪段,发送到链路监控平台。
(2-2)安全接入平台追踪信息采集:安全接入平台作为内外网物理隔离的最重要一环,一般体现为安全接入网关代理,每次的的请求代理都会在移动终端中保存日志,这些日志被预先安装在移动应用上的SDK探针读取并发送到链路监控平台。
(2-3)应用前置服务追踪信息采集:应用前置服务与安全接入平台不同的是,它被信息内网应用服务的运维人员维护,可以记录每次请求代理的日志数据,使用链路监控平台提供的日志格式配置,可以记录请求头中的追踪段信息,通过安装在应用前置服务中的Kafka把日志发送到链路监控平台。
(2-4)信息内网应用服务追踪信息采集:目前大部分的组件服务集成都是通过网络来进行传输数据,预先安装链路监控平台提供的服务端探针可以捕获服务端接收的网络请求,通过解析请求头中的跨度信息,结合捕获到的请求类型,生成跨度数组并分类聚合成追踪段发送到链路监控平台。探针同时可以捕获到服务端发送出的网络请求,并添加请求头数据并进行正常转发。这些请求的目标可能是下一个信息内网应用服务,也有可能是数据库、中间件等,通过安装的服务端探针,可以捕获到这些服务接收的网络请求,并按照以上过程进行数据的发送和请求的转发;
(4)链路监控平台根据请求形成链路拓扑:链路监控平台在接收到安全接入平台、应用前置服务的日志数据后,分别对日志进行分析后,重构成跨度数组并分类聚合成追踪段并持久化到数据库中。在接收到移动应用、信息内网应用服务发送的追踪段数据后,持久化到数据库。在接到查询链路拓扑的请求后,从数据库中取出相应的追踪段数据,按照链路标识构建成一条链路拓扑。
本发明解决了异构环境多服务***遇到故障及性能排查困难、耗时长等相关问题。为业务功能使用情况分析、应用性能优化等提供数据支撑,从而提升应用的运行稳定性和性能。
Claims (2)
1.一种基于OpenTracing的链路跟踪方法,其特征在于:该方法通过扩展OpenTracing的标准协议,把链路中的多个跨度分类聚合到追踪段中,每次上报数据都以追踪段为单位,并生成三段特殊标记符号;在数据展示侧中根据标记顺序重新组装并展示出一次链路调用过程,定制出追踪***;包括以下步骤:
(1)客户端发起请求:客户端访问带有探针的服务器对外暴露的服务信息;
(2)探针服务器拦截请求:在各个组件侧部署定制化的探针,当组件收到用户请求时,探针将调用链信息写到符合OpenTracing的请求头中;
(3)链路监控平台根据请求形成链路拓扑:链路监控平台在接收到数据后,按照链路标识构建成一条链路拓扑;链路监控平台把接收到的追踪段数据进行分析后,从中拆分出服务指标信息,并把追踪段数据持久化到数据库中;在接收到查询链路跟踪的请求后,把追踪段数据从数据库中取出并根据链路标识重组成链路拓扑,从而实现链路跟踪;
步骤(2)具体包括:
(2-1)在捕获到用户的网络请求时,生成跨度信息,分类聚合成追踪段 数据并发送到链路监控平台,然后将链路标识、追踪段信息写到符合OpenTracing规则的请求头中并进行请求转发;
(2-2)安全接入平台在接收到客户端请求时,会将本次请求的代理请求日志记录下来并保存到客户端文件中;客户端探针定时读取安全接入平台日志文件,把日志发送到链路监控平台;
(2-3)应用前置服务在接收到网络请求后,会根据链路监控平台提供的日志格式记录下请求头中的链路标识、追踪段信息,并通过Kafka把日志发送到链路监控平台;
(2-4)在捕获到用户的网络请求时,服务端探针解析请求头中的链路标识、追踪段信息,生成自己的跨度信息,分类聚合成追踪段数据并发送到链路监控平台;在捕获到服务发出的网络请求时,探针将链路标识、追踪段信息写到符合OpenTracing规则的请求头中,并将请求转发出去。
2.根据权利要求1所述的基于OpenTracing的链路跟踪方法,其特征在于,步骤(1)中客户端探针在感知到客户端应用启动时,发送客户端信息到链路监控平台,生成链路标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417358.XA CN111431773B (zh) | 2020-05-18 | 2020-05-18 | 一种基于OpenTracing的链路跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417358.XA CN111431773B (zh) | 2020-05-18 | 2020-05-18 | 一种基于OpenTracing的链路跟踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431773A CN111431773A (zh) | 2020-07-17 |
CN111431773B true CN111431773B (zh) | 2022-01-28 |
Family
ID=71558856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010417358.XA Active CN111431773B (zh) | 2020-05-18 | 2020-05-18 | 一种基于OpenTracing的链路跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431773B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118153B (zh) * | 2020-09-06 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种基于grpc和spring mvc的链路监控方法及*** |
CN113472850B (zh) * | 2021-05-31 | 2023-05-09 | 北京达佳互联信息技术有限公司 | 链路数据获取方法、装置、***、电子设备和存储介质 |
CN113613254B (zh) * | 2021-07-30 | 2023-10-27 | 国网湖南省电力有限公司 | 针对企业级移动应用的安全监测溯源管控方法及*** |
CN114357044A (zh) * | 2021-12-28 | 2022-04-15 | 南威软件股份有限公司 | 基于值守追踪的大数据全生命周期管理方法、***及应用 |
CN114003472B (zh) * | 2022-01-04 | 2022-04-12 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114817968B (zh) * | 2022-06-29 | 2022-10-14 | 深圳红途科技有限公司 | 无特征数据的路径追溯方法、装置、设备及存储介质 |
CN116028469A (zh) * | 2023-01-04 | 2023-04-28 | 北京夏石科技有限责任公司 | 数据安全链路跟踪方法及装置 |
CN116232963B (zh) * | 2023-02-20 | 2024-02-09 | 中银消费金融有限公司 | 一种链路跟踪方法及*** |
CN117714327A (zh) * | 2024-02-05 | 2024-03-15 | 神州灵云(北京)科技有限公司 | 全链路业务请求性能指标追踪方法、***、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535722A (zh) * | 2019-08-27 | 2019-12-03 | 江苏瑞中数据股份有限公司 | 一种跨安全区域的微服务全链路运行监控方法 |
CN111078504A (zh) * | 2019-12-25 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种分布式调用链跟踪方法、装置、计算机设备及存储介质 |
CN111163150A (zh) * | 2019-12-25 | 2020-05-15 | 上海精鲲计算机科技有限公司 | 一种分布式调用追踪*** |
CN112118153A (zh) * | 2020-09-06 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种基于grpc和spring mvc的链路监控方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224445B (zh) * | 2015-10-28 | 2017-02-15 | 北京汇商融通信息技术有限公司 | 分布式跟踪*** |
CN106487596B (zh) * | 2016-10-26 | 2019-12-13 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
-
2020
- 2020-05-18 CN CN202010417358.XA patent/CN111431773B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535722A (zh) * | 2019-08-27 | 2019-12-03 | 江苏瑞中数据股份有限公司 | 一种跨安全区域的微服务全链路运行监控方法 |
CN111078504A (zh) * | 2019-12-25 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种分布式调用链跟踪方法、装置、计算机设备及存储介质 |
CN111163150A (zh) * | 2019-12-25 | 2020-05-15 | 上海精鲲计算机科技有限公司 | 一种分布式调用追踪*** |
CN112118153A (zh) * | 2020-09-06 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种基于grpc和spring mvc的链路监控方法及*** |
Non-Patent Citations (5)
Title |
---|
Skywalking分布式追踪与监控:起始篇;Jared.Tan;《知乎》;20200307;第2-6页 * |
Skywalking跨进程链路信息传递协议(一);易企秀高级工程师-Frank;《segmentfault》;20200318;全文 * |
分布式调用链监控组件的实践与比较(一)实践;小学生II;《博客园》;20191015;全文 * |
基于 Tracing 数据的拓扑关系生成原理;吴波;《知乎》;20191120;全文 * |
服务链路追踪(Spring Cloud Sleuth);duanxz;《博客园》;20170919;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111431773A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111431773B (zh) | 一种基于OpenTracing的链路跟踪方法 | |
Wang et al. | A smart home gateway platform for data collection and awareness | |
CN107040863B (zh) | 实时业务推荐方法及*** | |
US9717011B2 (en) | Event management in telecommunications networks | |
US20070266149A1 (en) | Integrating traffic monitoring data and application runtime data | |
CN114189430A (zh) | 立体化日志全链路监控***、方法、介质及设备 | |
CN108259269A (zh) | 网络设备的监控方法和*** | |
CN110855493B (zh) | 用于混合环境的应用拓扑图绘制装置 | |
CN116232963B (zh) | 一种链路跟踪方法及*** | |
CN108462598A (zh) | 一种日志生成方法、日志分析方法及装置 | |
US20200159607A1 (en) | Veto-based model for measuring product health | |
CN103532795A (zh) | 一种检测web业务***可用性的监控***及方法 | |
CN109462490B (zh) | 视频监控***及故障分析方法 | |
CN111400127B (zh) | 业务日志的监控方法及装置、存储介质、计算机设备 | |
CN111163150A (zh) | 一种分布式调用追踪*** | |
CN110209518A (zh) | 一种多数据源日志数据集中收集存储方法及装置 | |
CN105045700A (zh) | 一种实时监控应用***用户体验指标的方法 | |
CN110113205A (zh) | 一种基于软件定义网络技术的网络排障***及其工作方法 | |
CN105637488A (zh) | 追踪源代码用于末端用户监控 | |
CN107635003A (zh) | ***日志的管理方法、装置及*** | |
CN109802842B (zh) | 应用拓扑的生成方法及相关设备 | |
CN107463490B (zh) | 一种应用于平台开发中的集群日志集中收集方法 | |
CN111343196B (zh) | 一种兼容多种通讯协议的通信***与通信方法 | |
CN112333020A (zh) | 一种基于五元组的网络安全监测及数据报文解析*** | |
CN117914511A (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 |