CN116232963B - 一种链路跟踪方法及*** - Google Patents
一种链路跟踪方法及*** Download PDFInfo
- Publication number
- CN116232963B CN116232963B CN202310134323.9A CN202310134323A CN116232963B CN 116232963 B CN116232963 B CN 116232963B CN 202310134323 A CN202310134323 A CN 202310134323A CN 116232963 B CN116232963 B CN 116232963B
- Authority
- CN
- China
- Prior art keywords
- data
- link
- service
- span
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 239000000523 sample Substances 0.000 claims abstract description 22
- 238000012423 maintenance Methods 0.000 claims abstract description 12
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 41
- 238000004458 analytical method Methods 0.000 claims description 21
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000013480 data collection Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 238000007405 data analysis Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 claims description 3
- 238000007639 printing Methods 0.000 claims description 3
- 238000007619 statistical method Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims 1
- 244000046052 Phaseolus vulgaris Species 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 abstract description 7
- 238000011835 investigation Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 4
- 230000004044 response Effects 0.000 abstract description 3
- 239000000284 extract Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 19
- 239000008186 active pharmaceutical agent Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000013024 troubleshooting Methods 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/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
- 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
- H04L41/0631—Management 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
-
- 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/12—Discovery or management of network topologies
-
- 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
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- 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
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
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 (1)
1.一种链路跟踪***,其特征在于,包括:
数据生成模块:用于提供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、跨度总耗时、跨度自身耗时;点击节点展示节点原始数据;
所述调用链展示模块包括业务拓展、业务下钻;业务拓扑展示该应用所有探测到的服务以及服务与服务之间调用关系、服务与其他应用调用关系;业务下钻到服务拓扑,查看改业务下服务之间调用关系,以及查看服务指标和告警;
所述业务分析模块用于查看业务的性能信息:统计分析、每分钟请求数、平均耗时、耗时分布、耗时百分比、请求最多的服务列表、错误率最高的服务列表,展示所有服务的拓扑关系,可根据业务、服务、端点进行过滤,展示符合条件的服务及其上下游关系鼠标。
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 CN116232963A (zh) | 2023-06-06 |
CN116232963B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756737B (zh) * | 2023-08-24 | 2024-03-26 | 深圳红途科技有限公司 | 接口异常行为分析方法、装置、计算机设备及存储介质 |
CN117201292B (zh) * | 2023-10-30 | 2024-02-23 | 智业软件股份有限公司 | 能准确定位微服务间请求调用异常的方法 |
CN117312104B (zh) * | 2023-11-30 | 2024-03-12 | 青岛民航凯亚***集成有限公司 | 一种基于机场生产运营***的可视化链路追踪方法及*** |
Citations (9)
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通信协议的链路追踪方法及*** |
-
2023
- 2023-02-20 CN CN202310134323.9A patent/CN116232963B/zh active Active
Patent Citations (9)
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)
Title |
---|
基于APM的应用性能管理***的设计与实现;杨军;中国优秀硕士学位论文全文数据库信息科技辑;全文 * |
基于分布式微服务全链路实时监控***设计与实现;刘嘉裕;中国优秀硕士学位论文全文数据库信息科技辑;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116232963A (zh) | 2023-06-06 |
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的日志埋点的业务分析告警***及方法 | |
CN107229556A (zh) | 基于elastic组件的日志分析*** | |
US20150180891A1 (en) | Using network locations obtained from multiple threat lists to evaluate network data or machine data | |
US20040193612A1 (en) | System and method for testing, monitoring, and tracking distributed transactions using a search engine | |
CN107273267A (zh) | 基于elastic组件的日志分析方法 | |
CN111431773B (zh) | 一种基于OpenTracing的链路跟踪方法 | |
CN106371986A (zh) | 一种日志处理运维监控*** | |
CN108809701A (zh) | 一种数据中心智慧数据平台及其实现方法 | |
CN111259073A (zh) | 基于日志、流量和业务访问的业务***运行状态智能研判*** | |
CN111163150A (zh) | 一种分布式调用追踪*** | |
KR102067032B1 (ko) | 하이브리드 빅데이터 시스템 기반 데이터 처리 방법 및 시스템 | |
US20200159607A1 (en) | Veto-based model for measuring product health | |
US20210135959A1 (en) | Support ticket platform for improving network infrastructures | |
CN103295155A (zh) | 证券核心业务***监控方法 | |
CN114780335A (zh) | 监测数据的关联方法、装置、计算机设备和存储介质 | |
CN114172949A (zh) | 一种微服务链路监控追踪方法和*** | |
CN112559237A (zh) | 运维***排障方法、装置、服务器和存储介质 | |
CN113067717A (zh) | 网络请求日志链式跟踪方法、全链路调用监控***和介质 | |
US20210156401A1 (en) | Vehicle with a Boom Comprising a Hydraulic Control Circuit with a Load Control Valve | |
Ten et al. | Study on advanced visualization tools in network monitoring platform |
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 |