CN116232963A - 一种链路跟踪方法及系统 - Google Patents

一种链路跟踪方法及系统 Download PDF

Info

Publication number
CN116232963A
CN116232963A CN202310134323.9A CN202310134323A CN116232963A CN 116232963 A CN116232963 A CN 116232963A CN 202310134323 A CN202310134323 A CN 202310134323A CN 116232963 A CN116232963 A CN 116232963A
Authority
CN
China
Prior art keywords
link
data
service
request
call
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.)
Granted
Application number
CN202310134323.9A
Other languages
English (en)
Other versions
CN116232963B (zh
Inventor
王小宇
朱文寅
于洋
毛炜锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boc Consumer Finance Co ltd
Original Assignee
Boc Consumer Finance Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Boc Consumer Finance Co ltd filed Critical Boc Consumer Finance Co ltd
Priority to CN202310134323.9A priority Critical patent/CN116232963B/zh
Publication of CN116232963A publication Critical patent/CN116232963A/zh
Application granted granted Critical
Publication of CN116232963B publication Critical patent/CN116232963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明公开了一种链路跟踪方法及系统,包括:发送请求;探针拦截请求,初始化链路上下文信息,生成全局唯一的traceId串联整个调用链路,当前服务节点默认为根节点,作为调用链的入口;探针记录链路调用信息;探针往通信协议头部注入链路信息,用于传递至下游服务;请求发送至下游服务;下游服务收到请求;探针拦截上游请求,提取协议头部附带的链路信息,复用traceId,初始化新的链路上下文信息;探针记录链路调用信息;处理请求。本发明便于运维、开发人员实时跟踪服务状态;具有通用的实时数据接口,充分考虑了问题发现的响应速度和生产运维工作的流程;可以追溯一段时间的服务请求数据,便于历史遗留问题的排查。

Description

一种链路跟踪方法及系统
技术领域
本发明属于计算机技术领域,特别是涉及一种链路跟踪方法及系统。
背景技术
微服务架构进一步提高了现代互联网应用应对高并发量以及快速需求变化的能力,但也提高了程序物理上的分布性。微服务架构节点众多,节点之间的拓扑结构复杂,一次业务失败很难确定问题发生的准确位置。因此快速感知节点失败的能力非常重要。
链路跟踪系统可以描绘分布式系统中的一次完整调用,从用户界面上的请求到数据库的调用都完整地体现在分布式链路之中,该链路可以描述每个微服务的服务名称、接口名称、服务的IP、调用是否成功、调用的时长以及每次调用的返回结果等,使用此类信息,应用程序开发人员可以快速地进行问题定位和性能分析。链路跟踪系统可以帮助程序员应对分布式应用带来的物理上的拓扑复杂性。
链路跟踪系统主要分成黑盒跟踪和基于标注的跟踪系统。黑盒的跟踪方案主要是收集系统信息,使用统计推断的方式构建跟踪链路。黒盒跟踪系统的主要优点是对被跟踪系统完全无侵入;缺点是查询一次链路的时间较长,准确性欠佳。基于标注的跟踪系统需要改造公共组件,在微服务系统发生调用时标注链路信息,后续通过采集的方式集中存储链路日志,查询时将链路信息结构化并进行渲染。基于标注跟踪系统对被踪系统有一定的侵入性,但是准确性和查询速度都要更好,因此是一类使用更加广泛的链路跟踪系统。本发明实现的链路跟踪系统主要是基于标注的跟踪系统。
Pinpoint是一个J2EE平台的问题侦测系统,较早提出动态分析组件问题的概念,同时较早提出改造中间件及通信网关的方案,可以有效降低被跟踪应用对跟踪系统的感知。与Pinpoint强调发现组件的问题不同,X-trace更加强调组件在网络上的分布性。X-trace针对应用级别的网络跟踪系统,链路跟踪系统的三个主要设计原则:(1)跟踪系统的唯一标注信息和业务请求一起发送,而不是发送单独的探测请求;(2)跟踪信息的收集独立于被跟踪系统,和被跟踪系统的数据路径解耦;(3)数据的分析模块和跟踪数据标注模块解耦。Google的Dapper主要提出采样率的使用以及将代码植入限制在一小部分公共库的改造上。采样率的使用可以降低跟踪系统对被跟踪系统的性能影响,而仅仅修改公共库,可以让被跟踪应用对跟踪系统无感知。OpenTracing致力于为链路跟踪创建更标准化的API和工具,它由完整的API规范、实现该规范的框架、库以及项目文档组成。OpenTracing提供了一套平台无关、厂商无关的API,这样不同的组织或者开发人员就能够更加方便的添加或更换追踪系统的实现。
传统的生产问题排查方案为人工介入微服务部署的所有集群节点服务器,通过人工观测当前服务器性能指标,通过海量日志查看定位问题根源,存在以下缺陷:(1)各个团队开发运维人员协调沟通难度大;(2)问题定位需要从起始服务逐步排查,耗时耗力。现有链路跟踪技术通过收集每个请求的链路信息,构建用户访问的完整拓扑信息。根据链路信息查询的结果定位解决问题,但也存在因得到的查询结果无法准确定位问题根源,造成排查耗时长等问题。
发明内容
本发明提供了一种链路跟踪方法及系统,基于以上技术发展背景,设计实现了高性能、轻量化的链路跟踪系统,定位异常事件,分析业务处理性能,帮助运维人员快速响应处理生产事件。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明的一种链路跟踪方法,基于微服务架构下的一次链路调用跟踪过程如下:
S1、发送请求;
S2、探针拦截请求,初始化链路上下文信息,生成全局唯一的traceId串联整个调用链路,设置parentId为0,设置spanId为0,当前服务节点默认为根节点,作为调用链的入口;
S3、探针记录链路调用信息,包括接口名称、服务地址、调用起始时间戳;
S4、探针往通信协议头部注入包括traceId、spanId、parentId在内的链路信息,用于传递至下游服务;
S5、请求发送至下游服务;
S6、下游服务收到请求;
S7、探针拦截上游请求,提取协议头部附带的链路信息,复用traceId,初始化新的链路上下文信息;
S8、探针记录包括接口名称、服务地址、调用起始时间戳在内的链路调用信息;
S9、处理请求,如需继续调用下游服务,转至步骤S3,否则请求处理完毕后,计算服务处理耗时,并远程上报链路数据至链路监控平台。
一种链路跟踪系统,包括:
数据生成模块:用于提供Agent插件与应用服务共同部署,并远程上报链路数据至数据收集加工模块;数据生成模块即探针Agent用于生成上报链路数据,内含链路API、MDC扩展模块、数据上报模块和插件组;
数据收集加工模块:用于运行经过收集、解析、加工、存储的流程,链路数据和指标信息最终存储到不同存储介质用于查询分析;所述数据收集加工模块流程运转经由数据接入、数据加工、数据存储三大阶段;
数据展示模块:用于提供包括查询、配置、告警的功能,方便运维人员实现可视化监控;所述数据展示模块包括调用链展示模块、单笔调用该搜索展示模块、业务分析模块。
进一步地,所述链路API基于OpenTracing规范、ByteBuddy字节码编辑技术以及Disruptor内存队列,对外提供API功能实现链路数据的生成上报;所述MDC扩展模块基于SLF4J MDC原理,实现应用服务日志中打印TraceId、SpanId参数;所述数据上报模块默认实现为KafkaReporter,用于远程上报链路数据;所述插件组基于字节码编辑技术,针对不同的远程调用技术实现对应的插件。
进一步地,所述数据接入阶段包括数据采集和数据传输两个模块,数据采集使用包括filebeat,metricbeat的开源组件,适配不同类型数据,支持的采集协议包含syslog、snmptrap、jdbc/odbc、file、restful;各个节点采集的数据传递给Kafka消息中间件,然后提供给计算处理服务消费数据,数据传输实现了均衡网络传输,消息缓存机制从而降低因网络闭塞丢失数据的可能性。
进一步地,所述数据加工阶段基于flink实现数据处理、计算;Flink任务从Kafka消息队列消费数据,对数据依次进行包括解析、补维、校验的操作,然后把数据存储到库中;除这些基础任务外,通过任务算子还对数据进行计算加工,包括从应用日志中计算接口调用tps、接口调用耗时的信息。
进一步地,所述数据存储由ES数据库、Influxdb数据库、Mysql数据库构成;ES数据库存储数据解析后的结构化和半结构化日志数据;Influxdb数据库存储时序的指标数据;Mysql数据库存储配置数据,包括告警规则、业务业务系统、服务器信息。
进一步地,所述数据展示模块为链路跟踪系统提供包括权限管理、统一认证、服务注册、服务监控的功能,为用户提供可视化的数据集成,数据计算处理配置。
进一步地,所述调用链展示模块包括业务拓展、业务下钻;业务拓扑展示该应用所有探测到的服务以及服务与服务之间调用关系、服务与其他应用调用关系;业务下钻下钻到服务拓扑,查看改业务下服务之间调用关系,以及查看服务指标和告警。
进一步地,所述单笔调用搜索展示模块根据业务、服务、实例、端点、状态、链路id、耗时进行过滤,将符合过滤条件的节点所在的链路头节点返回到左侧列表;列表展示内容包含链路入口操作名称、链路耗时、链路开始时间、链路结束时间的详情信息;点击列表数据,右侧展示当前链路的详细信息:
上层展示:链路入口操作名称、链路耗时、链路Id、链路总跨度数量、链路开始时间;中层展示:当前链路所经过的服务以及服务在链路中所占跨度数占比、选择某个服务,展示改服务的每分钟调用次数、平均耗时、错误率;下层展示:默认按照时间线展示当前链路的详细信息:跨度操作名、跨度所属服务、跨度所属id、跨度总耗时、跨度自身耗时;下层展示:默认按照时间线展示当前链路的详细信息:跨度操作名、跨度所属服务、跨度所属id、跨度总耗时、跨度自身耗时;点击节点展示节点原始数据。
进一步地,所述业务分析模块用于查看业务的性能信息:统计分析、每分钟请求数、平均耗时、耗时分布、耗时百分比、请求最多的服务列表、错误率最高的服务列表,展示所有服务的拓扑关系,可根据业务、服务、端点进行过滤,展示符合条件的服务及其上下游关系鼠标。
本发明相对于现有技术包括有以下有益效果:
(1)系统展示链路调用拓扑图至监控内管平台上,便于运维、开发人员实时跟踪服务状态;
(2)具有通用的实时数据接口,从探针上传数据中读取实时链路数据,并加工处理这些数据反映到图形上;
(3)由于本系统是针对生产异常事件处理设计的,因此充分考虑了问题发现的响应速度和生产运维工作的流程;
(4)由于本系统实时记录数据,因此可以追溯一段时间的服务请求数据,便于历史遗留问题的排查。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种链路跟踪方法的步骤流程图;
图2为具体实施例中链路数据上报及处理机制原理图;
图3为基于OpenTracing规范实现的Span模型原理图;
图4为基于OpenTracing规范实现的Span树形结构图;
图5为优化后的Span模型原理图;
图6为图中优化后的Span模型对应的Span树形结构图;
图7为本发明链路跟踪系统的系统框架图;
图8为数据生成模块的结构原理图;
图9为数据收集加工模块的结构原理图;
图10为链路监控平台整体页面图;
图11为本具体实施例中业务拓展页面图;
图12为本具体实施例中业务下钻展示图页面1;
图13为本具体实施例中业务下钻展示图页面2;
图14为本具体实施例中业务下钻展示图页面3;
图15为本具体实施例中单笔调用搜索展示图页面1;
图16为本具体实施例中单笔调用搜索展示图页面2;
图17为本具体实施例中单笔调用搜索展示图页面3;
图18为本具体实施例中业务分析展示展示图页面1;
图19为本具体实施例中业务分析展示展示图页面2。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明的一种链路跟踪方法,基于微服务架构下的一次链路调用跟踪过程如下:
S1、发送请求;
S2、探针拦截请求,初始化链路上下文信息,生成全局唯一的traceId串联整个调用链路,设置parentId为0,设置spanId为0,当前服务节点默认为根节点,作为调用链的入口;
S3、探针记录链路调用信息,包括接口名称、服务地址、调用起始时间戳;
S4、探针往通信协议头部注入包括traceId、spanId、parentId在内的链路信息,用于传递至下游服务;
S5、请求发送至下游服务;
S6、下游服务收到请求;
S7、探针拦截上游请求,提取协议头部附带的链路信息,复用traceId,初始化新的链路上下文信息;
S8、探针记录包括接口名称、服务地址、调用起始时间戳在内的链路调用信息;
S9、处理请求,如需继续调用下游服务,转至步骤S3,否则请求处理完毕后,计算服务处理耗时,并远程上报链路数据至链路监控平台。
对应的基于本发明方法对应的链路数据上报及处理机制如图2所示;
图2中,服务探针插件安装于应用服务器,生成链路数据远程上报至Kafka消息中间件。流处理服务对链路原始数据依次进行解析、补维、校验等操作,加工后的链路指标数据分别存入不同的存储介质。ES主要存储数据解析后的结构化和半结构化日志数据,Influxdb主要存储时序的指标数据、Mysql主要存储配置数据,如告警规则、业务业务系统、服务器信息等。链路监控内管平台为运维人员提供可视化的数据展示服务。
如图3所示,为基于OpenTracing规范实现的Span模型原理图;该图中的①和⑥、②和③、④和⑤均是一次完整的远程调用;描述ServerA和ServerB间调用关系的SpanId为1000,该Span的parentSpanId为默认值0000,其将成为跟踪树形结构中的根节点。
链路调用过程中记录cs、cr、sr、ss等标签信息,用于计算网络传输及服务处理耗时。步骤②和③、④和⑤产生的Span是根节点的子调用Span。此模型下,单条链路调用需要生成6条Span信息,最后加工组装成3个Span结构如图4所示;图4为基于OpenTracing规范实现的Span树形结构图;
自优化Span模型:
图4展示的链路调用横跨四个系统,但跟踪树形结构中只有三个节点显示,这种结构不易理解。优化后的Span模型如图5所示,对应的Span树形结构图如图6所示:
远程调用链路经过的节点个数与Span数量一致。链路信息中增加cid标签,由上游服务生成并传递给下游服务。这种设计违背了一次远程调用由一个SpanId的数据进行维护的设计理念,但在树形结构中与应用服务节点对应,更易理解。
如图7所示,链路跟踪系统总体结构包括数据生成、数据收集加工、数据展示模块。数据生成模块提供Agent插件与应用服务共同部署,并远程上报链路数据至数据收集加工模块。数据收集加工模块运行流程经过收集、解析、加工、存储流程,相关链路数据和指标信息最终存储到不同存储介质用于查询分析。数据展示模块主要提供查询、配置、告警等功能,方便运维人员实现可视化监控。
如图8所示,为数据生成模块的结构原理图,数据生成模块即探针Agent用于生成上报链路数据,内含链路API、MDC扩展模块、数据上报模块和插件组。链路API基于OpenTracing规范、ByteBuddy字节码编辑技术以及Disruptor内存队列,对外提供API功能实现链路数据的生成上报。MDC扩展模块基于SLF4J MDC原理,实现应用服务日志中打印TraceId、SpanId参数。数据上报模块默认实现为KafkaReporter,用于远程上报链路数据。插件组基于字节码编辑技术,针对不同的远程调用技术实现对应的插件。
如图9所示,为数据收集加工模块的结构原理图,数据收集加工模块流程运转经由数据接入、数据加工、数据存储三大阶段。
数据接入阶段包括数据采集和数据传输两个模块,数据采集使用filebeat,metricbeat等开源组件,适配不同类型数据,支持的采集协议主要包含syslog、snmptrap、jdbc/odbc、file、restful等;各个节点采集的数据传递给Kafka消息中间件,然后提供给计算处理服务消费数据,数据传输实现了均衡网络传输,消息缓存机制从而降低因网络闭塞丢失数据的可能性;
数据加工阶段基于flink实现数据处理、计算;Flink任务从Kafka消息队列消费数据,对数据依次进行解析、补维、校验等操作,然后把数据存储到库中。除这些基础任务外,通过任务算子还可以对数据进行计算加工,如从应用日志中计算接口调用tps、接口调用耗时等信息;数据存储服务主要有ES、Influxdb、Mysql组成,ES主要存储数据解析后的结构化和半结构化日志数据,Influxdb主要存储时序的指标数据、Mysql主要存储配置数据,如告警规则、业务业务系统、服务器信息等。
数据展示模块为链路跟踪系统提供权限管理、统一认证、服务注册、服务监控等功能,为用户提供可视化的数据集成,数据计算处理配置。用户可以流程化的配置数据接入、处理计算任务,并为接入的数据配置各种告警规则,分析展示视图,而且通过全文检索服务可以实现对接入的各种数据快速索、分析、统计;如图10,展示了本具体实施例中基于数据展示模块对应的链路监控平台整体页面图;
调用链展示模块包括业务拓扑、业务下钻;
业务拓扑展示该应用所有探测到的服务以及服务与服务之间调用关系、服务与其他应用调用关系;如图11所示,为本具体实施例中业务拓展页面图;
业务下钻下钻到服务拓扑,可以查看改业务下服务之间调用关系,以及查看服务指标以及告警;如图12所示,为本具体实施例中业务下钻展示图页面1;如图13所示,为本具体实施例中业务下钻展示图页面2;如图14所示,为本具体实施例中业务下钻展示图页面3;
单笔调用搜索展示模块可根据业务、服务、实例、端点、状态、链路id、耗时进行过滤,将符合过滤条件的节点所在的链路头节点返回到左侧列表。列表展示内容包含链路入口操作名称、链路耗时、链路开始时间、链路结束时间等详情信息。点击列表数据,右侧展示当前链路的详细信息:
上层展示:链路入口操作名称、链路耗时、链路Id、链路总跨度数量、链路开始时间。
中层展示:当前链路所经过的服务以及服务在链路中所占跨度数占比、选择某个服务,展示改服务的每分钟调用次数、平均耗时、错误率。
下层展示:默认按照时间线展示当前链路的详细信息:跨度操作名、跨度所属服务、跨度所属id、跨度总耗时、跨度自身耗时。点击节点展示节点原始数据。
如图15所示,为本具体实施例中单笔调用搜索展示图页面1;如图16所示,为本具体实施例中单笔调用搜索展示图页面2;如图17所示,为本具体实施例中单笔调用搜索展示图页面3;
业务分析模块可以查看业务的性能信息:统计分析、每分钟请求数、平均耗时、耗时分布、耗时百分比、请求最多的服务列表、错误率最高的服务列表;如图18所示,为本具体实施例中业务分析展示展示图页面1;
业务分析模块可以展示所有服务的拓扑关系,可根据业务、服务、端点进行过滤,展示符合条件的服务及其上下游关系鼠标。悬浮在节点上显示改服务的每分钟调用次数、平均耗时、错误率。点击业务节点展示:服务分析、指标趋势、告警内容;如图19所示,为本具体实施例中业务分析展示展示图页面2。
本发明系统展示链路调用拓扑图至监控内管平台上,便于运维、开发人员实时跟踪服务状态。该系统具有通用的实时数据接口,从探针上传数据中读取实时链路数据,并加工处理这些数据反映到图形上。由于该系统是针对生产异常事件处理设计的,因此充分考虑了问题发现的响应速度和生产运维工作的流程。由于该系统实时记录数据,因此可以追溯一段时间的服务请求数据,便于历史遗留问题的排查。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (10)

1.一种链路跟踪方法,其特征在于,基于微服务架构下的一次链路调用跟踪过程如下:
S1、发送请求;
S2、探针拦截请求,初始化链路上下文信息,生成全局唯一的traceId串联整个调用链路,设置parentId为0,设置spanId为0,当前服务节点默认为根节点,作为调用链的入口;
S3、探针记录链路调用信息,包括接口名称、服务地址、调用起始时间戳;
S4、探针往通信协议头部注入包括traceId、spanId、parentId在内的链路信息,用于传递至下游服务;
S5、请求发送至下游服务;
S6、下游服务收到请求;
S7、探针拦截上游请求,提取协议头部附带的链路信息,复用traceId,初始化新的链路上下文信息;
S8、探针记录包括接口名称、服务地址、调用起始时间戳在内的链路调用信息;
S9、处理请求,如需继续调用下游服务,转至步骤S3,否则请求处理完毕后,计算服务处理耗时,并远程上报链路数据至链路监控平台。
2.一种链路跟踪系统,其特征在于,包括:
数据生成模块:用于提供Agent插件与应用服务共同部署,并远程上报链路数据至数据收集加工模块;数据生成模块即探针Agent用于生成上报链路数据,内含链路API、MDC扩展模块、数据上报模块和插件组;
数据收集加工模块:用于运行经过收集、解析、加工、存储的流程,链路数据和指标信息最终存储到不同存储介质用于查询分析;所述数据收集加工模块流程运转经由数据接入、数据加工、数据存储三大阶段;
数据展示模块:用于提供包括查询、配置、告警的功能,方便运维人员实现可视化监控;所述数据展示模块包括调用链展示模块、单笔调用该搜索展示模块、业务分析模块。
3.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述链路API基于OpenTracing规范、ByteBuddy字节码编辑技术以及Disruptor内存队列,对外提供API功能实现链路数据的生成上报;所述MDC扩展模块基于SLF4J MDC原理,实现应用服务日志中打印TraceId、SpanId参数;所述数据上报模块默认实现为KafkaReporter,用于远程上报链路数据;所述插件组基于字节码编辑技术,针对不同的远程调用技术实现对应的插件。
4.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述数据接入阶段包括数据采集和数据传输两个模块,数据采集使用包括filebeat,metricbeat的开源组件,适配不同类型数据,支持的采集协议包含syslog、snmptrap、jdbc/odbc、file、restful;各个节点采集的数据传递给Kafka消息中间件,然后提供给计算处理服务消费数据,数据传输实现了均衡网络传输,消息缓存机制从而降低因网络闭塞丢失数据的可能性。
5.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述数据加工阶段基于flink实现数据处理、计算;Flink任务从Kafka消息队列消费数据,对数据依次进行包括解析、补维、校验的操作,然后把数据存储到库中;除这些基础任务外,通过任务算子还对数据进行计算加工,包括从应用日志中计算接口调用tps、接口调用耗时的信息。
6.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述数据存储由ES数据库、Influxdb数据库、Mysql数据库构成;ES数据库存储数据解析后的结构化和半结构化日志数据;Influxdb数据库存储时序的指标数据;Mysql数据库存储配置数据,包括告警规则、业务业务系统、服务器信息。
7.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述数据展示模块为链路跟踪系统提供包括权限管理、统一认证、服务注册、服务监控的功能,为用户提供可视化的数据集成,数据计算处理配置。
8.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述调用链展示模块包括业务拓展、业务下钻;业务拓扑展示该应用所有探测到的服务以及服务与服务之间调用关系、服务与其他应用调用关系;业务下钻下钻到服务拓扑,查看改业务下服务之间调用关系,以及查看服务指标和告警。
9.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述单笔调用搜索展示模块根据业务、服务、实例、端点、状态、链路id、耗时进行过滤,将符合过滤条件的节点所在的链路头节点返回到左侧列表;列表展示内容包含链路入口操作名称、链路耗时、链路开始时间、链路结束时间的详情信息;点击列表数据,右侧展示当前链路的详细信息:
上层展示:链路入口操作名称、链路耗时、链路Id、链路总跨度数量、链路开始时间;中层展示:当前链路所经过的服务以及服务在链路中所占跨度数占比、选择某个服务,展示改服务的每分钟调用次数、平均耗时、错误率;下层展示:默认按照时间线展示当前链路的详细信息:跨度操作名、跨度所属服务、跨度所属id、跨度总耗时、跨度自身耗时;下层展示:默认按照时间线展示当前链路的详细信息:跨度操作名、跨度所属服务、跨度所属id、跨度总耗时、跨度自身耗时;点击节点展示节点原始数据。
10.根据权利要求2所述的一种链路跟踪系统,其特征在于,所述业务分析模块用于查看业务的性能信息:统计分析、每分钟请求数、平均耗时、耗时分布、耗时百分比、请求最多的服务列表、错误率最高的服务列表,展示所有服务的拓扑关系,可根据业务、服务、端点进行过滤,展示符合条件的服务及其上下游关系鼠标。
CN202310134323.9A 2023-02-20 2023-02-20 一种链路跟踪方法及系统 Active CN116232963B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310134323.9A CN116232963B (zh) 2023-02-20 2023-02-20 一种链路跟踪方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310134323.9A CN116232963B (zh) 2023-02-20 2023-02-20 一种链路跟踪方法及系统

Publications (2)

Publication Number Publication Date
CN116232963A true CN116232963A (zh) 2023-06-06
CN116232963B CN116232963B (zh) 2024-02-09

Family

ID=86583920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310134323.9A Active CN116232963B (zh) 2023-02-20 2023-02-20 一种链路跟踪方法及系统

Country Status (1)

Country Link
CN (1) CN116232963B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756737A (zh) * 2023-08-24 2023-09-15 深圳红途科技有限公司 接口异常行为分析方法、装置、计算机设备及存储介质
CN117201292A (zh) * 2023-10-30 2023-12-08 智业软件股份有限公司 能准确定位微服务间请求调用异常的方法
CN117312104A (zh) * 2023-11-30 2023-12-29 青岛民航凯亚系统集成有限公司 一种基于机场生产运营系统的可视化链路追踪方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766205A (zh) * 2017-10-10 2018-03-06 武汉大学 一种面向微服务调用过程跟踪的监控系统及方法
CN110457178A (zh) * 2019-07-29 2019-11-15 江苏艾佳家居用品有限公司 一种基于日志采集分析的全链路监控告警方法
CN110730246A (zh) * 2019-10-23 2020-01-24 家乡互动(厦门)网络科技有限公司 一种微服务架构下的分布式链路跟踪方法
CN111431773A (zh) * 2020-05-18 2020-07-17 江苏电力信息技术有限公司 一种基于OpenTracing的链路跟踪方法
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统
CN112910945A (zh) * 2020-12-08 2021-06-04 江苏苏宁云计算有限公司 请求链路跟踪方法和业务请求处理方法
CN114490268A (zh) * 2022-02-09 2022-05-13 中国工商银行股份有限公司 全链路监控方法、装置、设备、存储介质和程序产品
CN115314542A (zh) * 2021-04-21 2022-11-08 深圳联友科技有限公司 基于Socket通信协议的链路追踪方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766205A (zh) * 2017-10-10 2018-03-06 武汉大学 一种面向微服务调用过程跟踪的监控系统及方法
CN110457178A (zh) * 2019-07-29 2019-11-15 江苏艾佳家居用品有限公司 一种基于日志采集分析的全链路监控告警方法
CN110730246A (zh) * 2019-10-23 2020-01-24 家乡互动(厦门)网络科技有限公司 一种微服务架构下的分布式链路跟踪方法
CN111431773A (zh) * 2020-05-18 2020-07-17 江苏电力信息技术有限公司 一种基于OpenTracing的链路跟踪方法
CN111787073A (zh) * 2020-06-18 2020-10-16 多加网络科技(北京)有限公司 一种统一服务的限流熔断平台及其方法
CN112910945A (zh) * 2020-12-08 2021-06-04 江苏苏宁云计算有限公司 请求链路跟踪方法和业务请求处理方法
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统
CN115314542A (zh) * 2021-04-21 2022-11-08 深圳联友科技有限公司 基于Socket通信协议的链路追踪方法及系统
CN114490268A (zh) * 2022-02-09 2022-05-13 中国工商银行股份有限公司 全链路监控方法、装置、设备、存储介质和程序产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘嘉裕: "基于分布式微服务全链路实时监控系统设计与实现", 中国优秀硕士学位论文全文数据库信息科技辑 *
杨军: "基于APM的应用性能管理系统的设计与实现", 中国优秀硕士学位论文全文数据库信息科技辑 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756737A (zh) * 2023-08-24 2023-09-15 深圳红途科技有限公司 接口异常行为分析方法、装置、计算机设备及存储介质
CN116756737B (zh) * 2023-08-24 2024-03-26 深圳红途科技有限公司 接口异常行为分析方法、装置、计算机设备及存储介质
CN117201292A (zh) * 2023-10-30 2023-12-08 智业软件股份有限公司 能准确定位微服务间请求调用异常的方法
CN117201292B (zh) * 2023-10-30 2024-02-23 智业软件股份有限公司 能准确定位微服务间请求调用异常的方法
CN117312104A (zh) * 2023-11-30 2023-12-29 青岛民航凯亚系统集成有限公司 一种基于机场生产运营系统的可视化链路追踪方法及系统
CN117312104B (zh) * 2023-11-30 2024-03-12 青岛民航凯亚系统集成有限公司 一种基于机场生产运营系统的可视化链路追踪方法及系统

Also Published As

Publication number Publication date
CN116232963B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
CN116232963B (zh) 一种链路跟踪方法及系统
US11921791B2 (en) Cardinality of time series
US11646953B2 (en) Identification of network issues by correlation of cross-platform performance data
CN106487596B (zh) 分布式服务跟踪实现方法
US10841365B2 (en) Mapping application dependencies in a computer network
CN111581054B (zh) 一种基于elk的日志埋点的业务分析告警系统及方法
CN111431773B (zh) 一种基于OpenTracing的链路跟踪方法
US20150180891A1 (en) Using network locations obtained from multiple threat lists to evaluate network data or machine data
CN106371986A (zh) 一种日志处理运维监控系统
CN107273267A (zh) 基于elastic组件的日志分析方法
CN108809701A (zh) 一种数据中心智慧数据平台及其实现方法
EP1790130A2 (en) Agile information technology infrastructure management system
CN105657039A (zh) 一种基于大数据的电厂设备故障快速定位系统和方法
CN111163150A (zh) 一种分布式调用追踪系统
CN111259073A (zh) 基于日志、流量和业务访问的业务系统运行状态智能研判系统
US11362912B2 (en) Support ticket platform for improving network infrastructures
CN103295155A (zh) 证券核心业务系统监控方法
KR102067032B1 (ko) 하이브리드 빅데이터 시스템 기반 데이터 처리 방법 및 시스템
US11301475B1 (en) Transmission handling of analytics query response
CN110086682A (zh) 基于tcp的服务链路调用关系视图和故障根因定位方法
CN113067717A (zh) 网络请求日志链式跟踪方法、全链路调用监控系统和介质
CN114172949A (zh) 一种微服务链路监控追踪方法和系统
CN112559237A (zh) 运维系统排障方法、装置、服务器和存储介质
WO2022086610A1 (en) End-to-end visibility of a user session
US20210156401A1 (en) Vehicle with a Boom Comprising a Hydraulic Control Circuit with a Load Control Valve

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