CN116069608A - 一种应用调用链路追踪方法、装置及分布式系统 - Google Patents
一种应用调用链路追踪方法、装置及分布式系统 Download PDFInfo
- Publication number
- CN116069608A CN116069608A CN202310080918.0A CN202310080918A CN116069608A CN 116069608 A CN116069608 A CN 116069608A CN 202310080918 A CN202310080918 A CN 202310080918A CN 116069608 A CN116069608 A CN 116069608A
- Authority
- CN
- China
- Prior art keywords
- application
- link
- information
- response
- request source
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 80
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000003745 diagnosis Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种应用调用链路追踪方法、装置及分布式系统,涉及分布式系统链路追踪技术领域,包括:一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪,解决现有链路追踪需要引入组件,增加资源占用,系统运行效率较低的问题。
Description
技术领域
本发明涉及分布式系统链路追踪技术领域,尤其涉及一种应用调用链路追踪方法、装置及分布式系统。
背景技术
在大规模分布式系统中,开发出来的服务有成百上千个或者更多,之间的调研关系也非常复杂,因此在负载的调用关系中,收集系统调用链路的数据,并分析后以识别存在bug的调用链路或者存在性能问题的链路,有利于改进系统。
当前分布式系统中的链路追踪有多种方式,如Skywalking是当前流行且功能强大的实现方式,主要特性是无入侵系统代码方式,通过字节码植入,再通过HTTP或者gRPC方式发送数据到存储设备,通过数据的加工和分析以web可视化的方式展现出来。这种链路追踪在云原生之前是比较高效和实用的方法,运用比较广泛。
但是需要在应用中引入Skywalking组件依赖,并且这个代理组件需要寄生与应用服务本身进行数据采集,这样应用本身已经分配的资源需要被占用一部分,降低了应用本身的资源可用量,进而影响系统应用的运行效率。
发明内容
为了克服上述技术缺陷,本发明的目的在于提供一种应用调用链路追踪方法、装置及分布式系统,用于解决现有链路追踪需要引入组件,增加资源占用,系统运行效率较低的问题。
本发明公开了一种应用调用链路追踪方法,包括:
预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
优选地,所述生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息,包括:
获取所述请求源应用和所述目标应用的基本信息,并添加唯一链路标识;
采集网络状态码、网络响应消息、目标程序响应状态码及响应消息、当前系统时间,以获得响应信息;
根据所述响应信息的采集时间以及所述请求源应用基本信息的采集时间计算响应时间;
在所述响应时间后依次将所述基本信息、响应信息写入消息队列,以生成与所述唯一链路标识对应的链路信息。
优选地,所述请求源应用和所述目标应用的基本信息均包括以下至少一项:
应用名称;
方法;
端口;
IP;
当前系统时间。
优选地,在所述请求源应用同步在内核中触发eBPF程序前,还包括:
在内核中预先设置GPL许可证,在触发eBPF程序前加载GPL许可证的程序。
优选地,所述预先提供一eBPF程序的调用接口,包括:
运行命令编译eBPF程序的源文件,将所述eBPF程序的源文件编译为eBPF二进制文件;
调用加载函数将所述eBPF二进制文件加载至内核,并验证以编译对应的机器码;
执行所述机器码,以提供一eBPF程序的调用接口。
优选地,所述请求源应用同步在内核中触发eBPF程序,包括:
在内核中,接收eBPF程序触发信号,发出回调函数执行eBPF程序。
优选地,在用户层执行所述一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应,以及日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
优选地,所述根据链路标识在日志存储服务器中对应用调用进行链路追踪,包括:
在日志存储服务器上,根据所述链路标识调取所述链路信息,进行分析或链路诊断。
本发明还提供一种应用调用链路追踪系统,包括应用端以及日志存储服务器:
所述应用端包括:
预处理模块,用于预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
应用操作模块,用于一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
链路信息生成模块,用于所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
日志存储服务器包括日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据所述链路标识在日志存储服务器中对应用调用进行链路追踪。
本发明还提供一种分布式系统,其特征在于:应用上述的应用调用链路追踪装置。
采用了上述技术方案后,与现有技术相比,具有以下有益效果:
本申请提供的链路追踪方法通过在内核提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,当执行应用请求或响应时,触发eBPF程序,生成唯一链路信息,日志存储服务器可获得各个链路信息,进行存储或分析,实现链路追踪,系统问题诊断,基于eBPF程序实现分布式应用系统的全链路追踪,实现追踪流程对应用程序无入侵,减少资源占用,提高应用处理效率。
附图说明
图1为本发明所述一种应用调用链路追踪方法实施例一的流程图;
图2为本发明所述一种应用调用链路追踪方法实施例一实施过程示意图;
图3为本发明所述一种应用调用链路追踪方法实施例一中生成链路信息的流程图;
图4为本发明所述一种应用调用链路追踪装置的模块示意图。
附图标记:
4-应用调用链路追踪装置;41-应用端;42-日志存储服务器;411-预处理模块;412-应用操作模块;413-链路信息生成模块。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
实施例一:本实施例公开了一种应用调用链路追踪方法,参阅图1和图2,包括以下步骤:
预先提供一eBPF(Extended Berkeley Packet Filter)程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
在本实施方式中,通过eBPF程序的应用,以零侵入的方式运行于物理网络、虚拟化、容器等多种环境中,通过在内核中进行数据采集,提升数据处理效率,降低计算资源消耗、输出指标数据时的带宽消耗等。
在运行eBPF程序前,需要编译以调用,因此所述预先提供一eBPF程序的调用接口,包括:
运行命令编译eBPF程序的源文件,将eBPF程序的源文件编译为eBPF二进制文件;调用加载函数将所述eBPF二进制文件加载至内核,并验证以编译对应的机器码;执行所述机器码,以提供一eBPF程序的调用接口。
进一步的,在上述编译源文件并生成调用接口后,在后续触发后,即可直接调用,即,所述请求源应用同步在内核中触发eBPF程序,包括:在内核中,接收eBPF程序触发信号,发出回调函数执行eBPF程序。
作为举例以说明的,运行编译命令编译sys_log_trace.c。使用clang将eBPF程序的源文件sys_log_trace.c编译成eBPF字节码sys_log_trace.o;通过load_bpf_file这个函数来将一个eBPF二进制文件加载到内核,并对其进行验证和编译成对应的机器码,执行后sys_log_trace.c就生效了,后续有应用调用时,内核就会出发绑定的回调函数执行对sys_log_trace.c程序。
还需要说明的是,由于Linux内核采用GPL许可证,所以它只能加载GPL许可证的程序。如果将程序设置为其它许可证,内核将拒绝加载该程序,因此在所述请求源应用同步在内核中触发eBPF程序前,还包括:在内核中预先设置GPL许可证,在触发eBPF程序前加载GPL许可证的程序。通过加载指定程序的许可证,确保eBPF程序调用实现。
S100:一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
具体的,在用户层(用户态)执行所述一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应,以及下述步骤S300中的日志存储中心消费(如获取、调取等)所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
在本实施方式中,可应用于分布式系统中,其中可包括若干应用,各个应用之间的调用、以及数据处理(如消息队列,数据存储)在系统应用层实现,而eBPF程序用于实现链路追踪则请求应用端的内核中实现,对应用程序服务无任何入侵,减少程序依赖和运行负担,可大幅度降低资源损耗。
S200:所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
在上述步骤中,生成唯一标识作为trace_id以便用于对每一响应或者请求过程进行标记,可根据唯一链路标识实现对不同链路的追踪,在本实施方式,请求源应用可请求多个目标应用,也可以包含多个请求,对于每一请求及其对应的响应标记唯一链路标识。
作为举例的,参阅图2,应用A的B方法调用应用C的D方法,并得到响应结果。在调用过程中,A应用所在内核会触发sys_log_trace.c的eBPF程序,并执行内部程序,获取相关信息后写入到消息队列中。
具体的,上述生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息,如图3,包括:
S210:获取请求源应用和目标应用的基本信息,并添加唯一链路标识;
具体的,所述请求源应用和目标应用的基本信息均可包括以下信息中至少一个:应用名称;方法;端口;IP;当前系统时间等。在一些实施例中,可以仅获取其中的一种信息,在另一些实施例中可以获取其中的多种信息,在此不做限定,如,获取请求源应用的名称(A)、方法(B)、端口、IP、当前系统时间等基础信息;以及,获取请求目标应用的名称(C)、方法(D)、端口、IP、当前系统时间等基础信息。
S220:采集网络状态码、网络响应消息、目标程序响应状态码及响应消息、当前系统时间,以获得响应信息;
在上述步骤中,响应信息具体的,不止可包括上述请求目标响应的结果信息:网络状态码、网络响应消息、(目标应用中的)目标程序响应状态码及响应消息、当前系统时间,还可包括下述计算响应时间,以便后续写入消息队列。
S230:根据响应信息的采集时间以及请求源应用基本信息的采集时间计算响应时间;
在上述步骤中,响应信息的采集时间即目标应用响应时刻,请求源应用基本信息的采集时间即为请求发出时刻,请求发出至目标应用响应之间的时间为上述响应时间。
S240:在所述响应时间后依次将所述基本信息、响应信息写入消息队列,以生成与所述唯一链路标识对应的链路信息。
即,在上述步骤中,对于每一请求均可生成唯一链路信息。
作为示例的,写入消息队列的基本结构可参考下表:
S300:日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
在本实施方式中,日志存储中心通过消费消息队列的数据后,经过加工处理后存储到日志存储服务,通过日志分析与搜索服务追踪系统运行情况,并且根据traceId标识,可以追踪出请求的全流程。该处理在应用层实现,eBPF程序在内核调用采集上述数据,发送至应用层分析、诊断或存储,进一步减少资源占用,提高系统应用效率。
具体的,所述根据链路标识在日志存储服务器中对应用调用进行链路追踪,包括:在日志存储服务器上,根据链路标识调取所述链路信息,进行分析或链路诊断。除用于请求链路追踪,也可以用于系统问题诊断,通过网络状态或者响应状态码判断系统运行情况,从而用于对系统中各个请求应用端或目标应用端的运行状态进行监测,以提升系统运行效率。
本实施方式提供的链路追踪方法,在内核下设置eBPF程序调用,以零侵入的方式运行于物理网络、虚拟化、容器等多种环境中,通过近内核方式采集,性能为现有组件tcpdump的10倍,计算资源消耗可低至运行环境总资源量的1%、输出指标数据时的带宽消耗可低至业务流量的1%,并可采集包括中间件、存储、网络、自研应用等多种服务,实现了一键部署,完全零入侵,全局通用的效果。
实施例二:本实施例还提供一种应用调用链路追踪装置4,包括应用端41以及日志存储服务器42:
所述应用端41包括:
预处理模块411,用于预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
在预处理模块下,运行命令编译eBPF程序的源文件,将eBPF程序的源文件编译为eBPF二进制文件;调用加载函数将所述eBPF二进制文件加载至内核,并验证以编译对应的机器码;执行所述机器码,以提供一eBPF程序的调用接口,在上述编译源文件并生成调用接口后,在后续触发后,即可直接调用eBPF程序,在触发eBPF程序前,还在预加载GPL许可证,以确保程序运行。
应用操作模块412,用于一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
具体的,在用户层执行上述一请求源应用请求调用一目标应用,每一应用端均可包含一个或多个请求源应用,以同时或分步调用一个或多个目标应用。还可应用于集群服务器或分布式系统中,其中可包括若干应用端,各个应用端之间的调用、以及数据处理(如消息队列,数据存储)在应用层实现,作为举例的,图2中应用A(请求源应用)、应用C(请求源应用),可位于同一应用端下或不同应用端下。
链路信息生成模块413,用于所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
在调用过程中,链路信息触发eBPF程序,生成模块执行内部程序,获取相关信息后写入到消息队列中,用于生成每一请求及响应对应的唯一链路信息。
日志存储服务器42包括日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
作为说明的是,日志存储服务器从eBPF程序获取数据并执行链路分析、系统问题诊断,通过网络状态或者响应状态码判断系统运行情况等操作,其布置在应用外部,即分布式系统应用层,与请求应用端、目标应用端同级。
本实施方式中,通过预处理模块在内核运行命令编译eBPF程序的源文,预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,当应用操作模块执行应用请求或响应时,触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成唯一链路信息,日志存储服务器可获得各个链路信息,进行存储或分析,实现链路追踪,系统问题诊断,通过网络状态或者响应状态码判断系统运行情况等功能,基于eBPF程序实现分布式应用系统的全链路追踪,减少组件插入,减少对系统资源的占用,实现追踪流程对应用程序无入侵,提高应用处理效率。
实施例三:本实施例提供一种分布式系统,应用上述实施例二中所述的应用调用链路追踪装置,分布式系统包含若干应用端以及其他用于实现系统运行的服务器或控制模块,每一应用端均可作为请求源应用或目标应用,或包含多个请求源应用或目标应用,且每一请求源应用可发送若干请求至不同的目标应用,每一请求均可通过实施例一的方法获得具有唯一链路标识的链路信息,从而在日志存储服务器中执行链路分析、系统问题诊断等功能。
应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种应用调用链路追踪方法,其特征在于,包括:
预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据所述链路标识在日志存储服务器中对应用调用进行链路追踪。
2.根据权利要求1所述的链路追踪方法,其特征在于,所述生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息,包括:
获取所述请求源应用和所述目标应用的基本信息,并添加唯一链路标识;
采集网络状态码、网络响应消息、目标程序响应状态码及响应消息、当前系统时间,以获得响应信息;
根据所述响应信息的采集时间以及所述请求源应用基本信息的采集时间计算响应时间;
在所述响应时间后依次将所述基本信息、响应信息写入消息队列,以生成与所述唯一链路标识对应的链路信息。
3.根据权利要求1或2所述的链路追踪方法,其特征在于:
所述请求源应用和所述目标应用的基本信息均包括以下至少一项:
应用名称;
方法;
端口;
IP;
当前系统时间。
4.根据权利要求1所述的链路追踪方法,其特征在于,在所述请求源应用同步在内核中触发eBPF程序前,还包括:
在内核中预先设置GPL许可证,在触发eBPF程序前加载GPL许可证的程序。
5.根据权利要求1所述的链路追踪方法,其特征在于,所述预先提供一eBPF程序的调用接口,包括:
运行命令编译eBPF程序的源文件,将所述eBPF程序的源文件编译为eBPF二进制文件;
调用加载函数将所述eBPF二进制文件加载至内核,并验证以编译对应的机器码;
执行所述机器码,以提供一eBPF程序的调用接口。
6.根据权利要求1所述的链路追踪方法,其特征在于,所述请求源应用同步在内核中触发eBPF程序,包括:
在内核中,接收eBPF程序触发信号,发出回调函数执行eBPF程序。
7.根据权利要求1所述的链路追踪方法,其特征在于:
在用户层执行所述一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应,以及日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据链路标识在日志存储服务器中对应用调用进行链路追踪。
8.根据权利要求1所述的链路追踪方法,其特征在于,所述根据链路标识在日志存储服务器中对应用调用进行链路追踪,包括:
在日志存储服务器上,根据所述链路标识调取所述链路信息,进行分析或链路诊断。
9.一种应用调用链路追踪装置,其特征在于,包括应用端以及日志存储服务器:
所述应用端包括:
预处理模块,用于预先提供一eBPF程序的调用接口,用于触发以生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息;
应用操作模块,用于一请求源应用请求调用一目标应用,并接收来自所述目标应用的响应;
链路信息生成模块,用于所述请求源应用同步在内核中触发eBPF程序,生成唯一链路标识,并关联请求源应用和目标应用的基本信息及响应信息,写入消息队列生成链路信息;
日志存储服务器用于日志存储中心消费所述消息队列并加工存储到日志存储服务器,以根据所述链路标识在日志存储服务器中对应用调用进行链路追踪。
10.一种分布式系统,其特征在于:
应用上述权利要求9所述的应用调用链路追踪装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080918.0A CN116069608A (zh) | 2023-01-17 | 2023-01-17 | 一种应用调用链路追踪方法、装置及分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080918.0A CN116069608A (zh) | 2023-01-17 | 2023-01-17 | 一种应用调用链路追踪方法、装置及分布式系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069608A true CN116069608A (zh) | 2023-05-05 |
Family
ID=86179800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310080918.0A Pending CN116069608A (zh) | 2023-01-17 | 2023-01-17 | 一种应用调用链路追踪方法、装置及分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069608A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632445A (zh) * | 2024-01-25 | 2024-03-01 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及装置、任务执行方法以及装置 |
CN117687743A (zh) * | 2023-12-18 | 2024-03-12 | 微栈科技(浙江)有限公司 | 一种分布式应用的链路请求追踪系统和方法 |
-
2023
- 2023-01-17 CN CN202310080918.0A patent/CN116069608A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687743A (zh) * | 2023-12-18 | 2024-03-12 | 微栈科技(浙江)有限公司 | 一种分布式应用的链路请求追踪系统和方法 |
CN117632445A (zh) * | 2024-01-25 | 2024-03-01 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及装置、任务执行方法以及装置 |
CN117632445B (zh) * | 2024-01-25 | 2024-04-30 | 杭州阿里云飞天信息技术有限公司 | 请求处理方法以及装置、任务执行方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11714675B2 (en) | Virtualization-based transaction handling in an on-demand network code execution system | |
CN116069608A (zh) | 一种应用调用链路追踪方法、装置及分布式系统 | |
US11159411B2 (en) | Distributed testing service | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
Geist et al. | PVM 3 user's guide and reference manual | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
CN111913818A (zh) | 一种确定服务间依赖关系的方法及相关装置 | |
CN112148610A (zh) | 测试用例执行方法、装置、计算机设备和存储介质 | |
CN105871966A (zh) | 消息分发的方法、装置及系统 | |
CN109271359A (zh) | 日志信息处理方法、装置、电子设备及可读存储介质 | |
CN113590492B (zh) | 信息处理方法、系统、电子设备及计算机可读存储介质 | |
EP3724776A1 (en) | Method, function manager and arrangement for handling function calls | |
CN115237713A (zh) | 一种应用数据采集方法、装置、计算机设备及存储介质 | |
CN109597952B (zh) | 网页信息处理方法、系统、电子设备和存储介质 | |
CN111381847B (zh) | 信息处理方法及设备 | |
CN111782428B (zh) | 数据调用系统以及方法 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN113760562A (zh) | 链路追踪方法、装置、系统、服务器和存储介质 | |
CN112685252A (zh) | 微服务监控方法、装置、设备和存储介质 | |
CN108055305B (zh) | 一种存储扩展方法及存储扩展装置 | |
CN113411382B (zh) | 一种基于网络设备f5的实时数据采集系统及方法 | |
CN114745415B (zh) | 一种车辆业务通信数据处理方法、装置、设备及存储介质 | |
US20170123818A1 (en) | Dynamic Configuration of Native Functions to Intercept | |
CN114662690B (zh) | 面向深度学习Transformer类模型的移动设备协同推断系统 | |
Talasila et al. | BITS Darshini: A Modular, Concurrent Protocol Analyzer Workbench |
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 |