CN114448776A - 一种链路追踪方法及装置 - Google Patents
一种链路追踪方法及装置 Download PDFInfo
- Publication number
- CN114448776A CN114448776A CN202210108771.7A CN202210108771A CN114448776A CN 114448776 A CN114448776 A CN 114448776A CN 202210108771 A CN202210108771 A CN 202210108771A CN 114448776 A CN114448776 A CN 114448776A
- Authority
- CN
- China
- Prior art keywords
- log
- link
- message
- response
- log file
- 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 62
- 230000004044 response Effects 0.000 claims abstract description 148
- 238000005516 engineering process Methods 0.000 claims abstract description 28
- 230000002776 aggregation Effects 0.000 claims abstract description 15
- 238000004220 aggregation Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 abstract description 24
- 230000008569 process Effects 0.000 abstract description 19
- 238000004458 analytical method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000007639 printing Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000011551 log transformation method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- 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/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种链路追踪方法及装置,请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文并保存至第一日志文件中;第一日志报文中携带有请求端获得响应端响应的响应信息和用于进行链路追踪的第一链路信息;响应端在接收到服务请求报文而对请求端进行响应时,生成第二日志报文并保存至第二日志文件中;第二日志报文中携带有响应端对请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;链路追踪端获得第一日志文件和第二日志文件;利用链路追踪技术对第一日志文件和第二日志文件中进行日志聚合和链路追踪。本发明可以对业务处理过程中涉及到的调用进行全链路追踪。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种链路追踪方法及装置。
背景技术
在大型互联网企业进行的业务处理过程中,可能会涉及到多个组件、模块或应用之间的调用。当业务处理过程中出现异常时,需要尽快的确定出具体是哪一个调用出现了问题而导致的异常,以尽快进行排障处理,保障业务处理效率。
具体的,现有技术可以对业务处理过程中涉及到的各个调用进行链路追踪,实现对各个调用的链路信息的监控。当业务处理过程中出现异常时,现有技术可以基于各个调用的链路信息进行问题的排查,提高问题定位速率。
但是,现有技术无法有效的对业务处理过程中涉及到的调用进行链路追踪。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的链路追踪方法及装置,技术方案如下:
一种链路追踪方法,所述方法包括:
请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文;其中,所述服务请求报文中携带有用于进行链路追踪的链路信息,所述第一日志报文中携带有所述请求端获得所述响应端响应的响应信息和用于进行链路追踪的第一链路信息;
所述请求端将所述第一日志报文保存至相应的第一日志文件中;
所述响应端在接收到所述服务请求报文而对所述请求端进行响应时,生成第二日志报文;所述第二日志报文中携带有所述响应端对所述请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;
所述响应端将所述第二日志报文保存至相应的第二日志文件中;
链路追踪端获得所述第一日志文件和所述第二日志文件;
所述链路追踪端利用链路追踪技术,对所述第一日志文件和所述第二日志文件中进行日志聚合,基于所述第一日志报文和所述第二日志报文进行链路追踪。
可选的,在所述请求端将所述第一日志报文保存至相应的第一日志文件中之前,所述方法还包括:
所述请求端确定所述第一日志文件的数据量是否未超过第一阈值,如果是,则再将所述第一日志报文保存至所述第一日志文件中;否则,禁止将所述第一日志报文保存至所述第一日志文件中,创建第三日志文件,并将所述第一日志报文保存至所述第三日志文件中。
可选的,在所述基于所述第一日志报文和所述第二日志报文进行链路追踪之后,所述方法还包括:
所述链路追踪端将追踪到的链路追踪信息输出到屏幕上。
可选的,所述第一日志报文中包括:服务类型编号、平台名称、产品名称、返回码、请求端名称、接口名称、接口版本号和时间;所述第二日志报文中包括:服务类型编号、平台名称、产品名称、返回码、响应端名称、接口名称、接口版本号和时间。
可选的,所述链路追踪技术为分布式链路追踪技术。
一种链路追踪装置,所述装置包括:请求端、响应端和链路追踪端;其中:
所述请求端在通过向响应端发送服务请求报文,来成功调用所述响应端的服务接口时,生成第一日志报文;其中,所述服务请求报文中携带有用于进行链路追踪的链路信息,所述第一日志报文中携带有所述请求端获得所述响应端响应的响应信息和用于进行链路追踪的第一链路信息;
所述请求端将所述第一日志报文保存至相应的第一日志文件中;
所述响应端在接收到所述服务请求报文而对所述请求端进行响应时,生成第二日志报文;所述第二日志报文中携带有所述响应端对所述请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;
所述响应端将所述第二日志报文保存至相应的第二日志文件中;
所述链路追踪端获得所述第一日志文件和所述第二日志文件;
所述链路追踪端利用链路追踪技术,对所述第一日志文件和所述第二日志文件中进行日志聚合,基于所述第一日志报文和所述第二日志报文进行链路追踪。
可选的,在所述请求端将所述第一日志报文保存至相应的第一日志文件中之前,所述请求端还确定所述第一日志文件的数据量是否未超过第一阈值,如果是,则再将所述第一日志报文保存至所述第一日志文件中;否则,禁止将所述第一日志报文保存至所述第一日志文件中,创建第三日志文件,并将所述第一日志报文保存至所述第三日志文件中。
可选的,在所述基于所述第一日志报文和所述第二日志报文进行链路追踪之后,所述链路追踪端将追踪到的链路追踪信息输出到屏幕上。
可选的,所述第一日志报文中包括:服务类型编号、平台名称、产品名称、返回码、请求端名称、接口名称、接口版本号和时间;所述第二日志报文中包括:服务类型编号、平台名称、产品名称、返回码、响应端名称、接口名称、接口版本号和时间。
可选的,所述链路追踪技术为分布式链路追踪技术。
本实施例提出的链路追踪方法及装置,请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文;其中,服务请求报文中携带有用于进行链路追踪的链路信息,第一日志报文中携带有请求端获得响应端响应的响应信息和用于进行链路追踪的第一链路信息;请求端将第一日志报文保存至相应的第一日志文件中;响应端在接收到服务请求报文而对请求端进行响应时,生成第二日志报文;第二日志报文中携带有响应端对请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;响应端将第二日志报文保存至相应的第二日志文件中;链路追踪端获得第一日志文件和第二日志文件;链路追踪端利用链路追踪技术,对第一日志文件和第二日志文件中进行日志聚合,基于第一日志报文和第二日志报文进行链路追踪。本发明可以对业务处理过程中涉及到的调用进行全链路追踪。
上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例提供的第一种链路追踪方法的流程图;
图2示出了本发明实施例提供的第二种链路追踪方法的流程图;
图3示出了本发明实施例提供的一种链路追踪装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本实施例提出了第一种链路追踪方法,该方法可以包括以下步骤:
S101、请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文;其中,服务请求报文中携带有用于进行链路追踪的链路信息,第一日志报文中携带有请求端获得响应端响应的响应信息和用于进行链路追踪的第一链路信息;
其中,请求端可以为向外发送请求的应用程序、微服务或者系统平台等。比如,在银行企业中,请求端可以为手机银行。
其中,响应端可以为针对请求端的服务请求报文,向请求端返回相应响应数据的应用程序、微服务或者系统平台等。比如,在银行企业中,响应端可以为统一支付平台。当手机银行作为请求端,统一支付平台作为响应端时,手机银行可以向统一支付平台发送服务请求报文,以调用统一支付平台的代收接口。
其中,服务请求报文可以为请求端向响应端发送的用于请求响应端返回相应服务数据的报文。服务请求报文中携带的链路信息,可以包括用于标识请求端与响应端本次通信链路的信息,比如请求端名称、请求时间和响应端名称。
其中,第一日志报文可以为记录有响应端对请求端的服务请求报文进行响应的相关信息的日志报文,该相关信息可以包括请求端名称、响应端名称、响应时间和响应数据类型等信息。
其中,第一日志报文中携带的第一链路信息,可以包括用于标识响应端向请求端进行响应的本次通信链路的信息,比如响应端名称、响应时间和请求端时间。
S102、请求端将第一日志报文保存至相应的第一日志文件中;
其中,第一日志文件可以为专门用于保存请求端生成的响应日志报文的日志文件。响应日志报文可以为请求端生成的用于记录其他系统、微服务或者平台等向请求端进行响应的相关信息的日志报文,如上述第一日志报文。
需要说明的是,第一日志文件的文件名规范可以APM_[系统缩写]_[微服务编号].log,如果请求端为单体服务,则微服务编号与系统编号可以是相同的。具体的,第一日志文件允许保存的日志报文的数据量大小可以不超过预定义阈值(如50M),如果第一日志文件保存的日志报文的数据量即将到达或超过预定义阈值,则本发明可以生成另一带新序号的专门用于保存请求端生成的响应日志报文的日志文件,并将请求端生成的新日志报文保存至新的日志文件中。缺省保留不带日期及序号,其余序号文件需要压缩存放。
S103、响应端在接收到服务请求报文而对请求端进行响应时,生成第二日志报文;第二日志报文中携带有响应端对请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;
具体的,响应端可以在对请求端进行响应后,生成第二日志报文。
其中,第二日志报文可以为记录有响应端对请求端的服务请求报文进行响应的相关信息的日志报文,该相关信息可以包括请求端名称、响应端名称、响应时间和响应数据类型等信息。
其中,第二日志报文中携带的第二链路信息,可以包括用于标识响应端向请求端进行响应的本次通信链路的信息,比如响应端名称、响应时间和请求端时间。
可选的,在本实施例提出的其他链路追踪方法中,第一日志报文中包括:服务类型编号、平台名称、产品名称、返回码、请求端名称、接口名称、接口版本号和时间;第二日志报文中包括:服务类型编号、平台名称、产品名称、返回码、响应端名称、接口名称、接口版本号和时间。
S104、响应端将第二日志报文保存至相应的第二日志文件中;
其中,第二日志文件可以为专门用于保存响应端生成的响应日志报文的日志文件。响应端生成的响应日志报文可以为用于记录响应端向请求端进行响应的相关信息的日志报文,如上述第二日志报文。
需要说明的是,与第一日志文件相同的是,第二日志文件可以同样具有对日志报文的数据量大小的限制。当第二日志文件保存的日志报文数据量达到或者即将超过限制时,本发明也可以生成另一带新序号的专门用于保存响应端生成的响应日志报文的日志文件。
S105、链路追踪端获得第一日志文件和第二日志文件;
具体的,链路追踪端可以为利用链路追踪技术对请求端和响应端进行的通信链路进行链路追踪的某个电子设备。
可选的,链路追踪技术为分布式链路追踪技术。
具体的,链路追踪端所使用的链路追踪技术可以为分布式链路追踪技术。此时,请求端在向响应端发送的服务请求报文以及其生成的第一日志报文中,均可以携带有用于进行分布式链路追踪的链路信息;且,响应端生成的第二日志报文中可以携带有用于进行分布式链路追踪的链路信息。
具体的,链路追踪端可以从请求端处获得第一日志文件,从响应端处获得第二日志文件。
S106、链路追踪端利用链路追踪技术,对第一日志文件和第二日志文件中进行日志聚合,基于第一日志报文和第二日志报文进行链路追踪。
具体的,链路追踪端可以在获得第一日志文件和第二日志文件后,利用链路追踪技术,对第一日志文件和第二日志文件进行日志聚合,即对第一日志文件和第二日志文件中的日志报文进行聚合,对第一日志文件和第二日志文件中用于标识同一通信链路的第一日志报文和第二日志报文进行聚合,从而实现对请求端和响应端进行的请求与响应的通信链路的链路记录和追踪。
可选的,如图2所示,在本实施例提出的第二种链路追踪方法中,在步骤S106之后,还可以包括步骤S201。其中:
S201、链路追踪端将追踪到的链路追踪信息输出到屏幕上。
链路追踪端可以在对第一日志报文和第二日志报文进行聚合后,将聚合的日志报文输出至显示屏中进行展示。
可选的,对于某个企业中的所有交易或业务处理平台,其中的所有请求端和所有响应端均可以在完成某次功能调用期间,即从请求端发送服务请求报文至响应端返回响应数据期间,生成用于记录响应端对请求端进行响应的日志报文。此时,链路追踪端可以对该企业的所有交易或业务处理平台中的所有日志文件进行日志聚合,对其中的所有日志报文进行聚合,实现对业务处理过程中涉及到的调用的全链路追踪。
需要说明的是,本发明可以应用于银行企业的业务系统。银行企业可以设置有多种业务系统,如在社交应用程序中内嵌的小程序银行、统一字符平台、核心柜面和贷款中台等业务系统,该多种业务系统在进行业务处理过程中,均可以作为请求端或者响应端。每次在作为请求端向响应端发送服务请求报文,或者作为响应端向请求端返回响应数据的过程中,各业务系统均可以生成上述第一日志报文或第二日志报文,并保存至相应的第一日志文件或第二日志文件中,如小程序银行日志、统一支付平台日志、核心柜面日志和贷款平台日志。具体的,链路追踪端中可以利用分布式链路追踪技术对各业务系统的日志文件进行分布式追踪,其中,链路追踪端中可以设置有功能处理层和链路分析层,功能处理层中可以包括日志采集模块、日志处理模块、日志检索模块和日志存储模块,日志采集模块可以对各业务系统的日志文件进行采集,链路分析层中可以包括原始日志分析模块、调用单元分析模块和链路分析模块。链路追踪端可以通过功能处理层和链路分析层对各业务系统的日志文件进行日志处理和链路分析,实现各业务系统中的日志报文的全链路追踪,之后基于全链路追踪的结果进行全链路展示。
可选的,在银行企业的业务运行监控平台上,可以设置有日志聚合层、链路追踪层和追踪展示层。具体的,各业务系统均可以对日志报文和日志文件进行日志改造,按照约定格式,生成记录响应信息的日志报文并定向输出到专门的日志文件中。具体的,链路追踪层可以收集业务系统的日志文件,进行日志文件的分类以及存储,通过分布式链路追踪技术,对业务系统的日志文件中的日志报文进行链路分析,输出对应的业务链路分析数据,并提供给追踪展示层。追踪展示层可以接收业务链路分析数据,展示到监控页面,直观显示业务全链路数据,便于问题根源追踪以及问题分析。
可选的,请求端可以为客户端,服务端可以为服务端。客户端在向服务端发送服务请求报文,接收到服务端返回的响应数据时,客户端与服务端均可以不改变原有日志,各自新增打印一条记录响应信息的日志报文,而无需打印记录请求信息的日志报文。例如,手机银行可以作为客户端,统一支付平台可以作为服务端。
需要说明的是,本发明可以在分布式链路追踪技术的基础上,改造请求端和响应端的报文生成规则,使得请求端和响应端可以按照改造后的报文生成规则,生成用于记录响应信息的日志报文,并保存至专门的日志文件中,以使得后续可以利用分布式链路追踪技术,实现对业务处理过程中涉及到的所有调用进行适应性的全链路追踪。
本实施例提出的链路追踪方法,请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文;其中,服务请求报文中携带有用于进行链路追踪的链路信息,第一日志报文中携带有请求端获得响应端响应的响应信息和用于进行链路追踪的第一链路信息;请求端将第一日志报文保存至相应的第一日志文件中;响应端在接收到服务请求报文而对请求端进行响应时,生成第二日志报文;第二日志报文中携带有响应端对请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;响应端将第二日志报文保存至相应的第二日志文件中;链路追踪端获得第一日志文件和第二日志文件;链路追踪端利用链路追踪技术,对第一日志文件和第二日志文件中进行日志聚合,基于第一日志报文和第二日志报文进行链路追踪。本发明可以对业务处理过程中涉及到的调用进行全链路追踪。
基于图1,本实施例提出第三种链路追踪方法。该方法在步骤S102之前,还可以包括:
请求端确定第一日志文件的数据量是否未超过第一阈值,如果是,则再将第一日志报文保存至第一日志文件中;否则,禁止将第一日志报文保存至第一日志文件中,创建第三日志文件,并将第一日志报文保存至第三日志文件中。
具体的,请求端在将第一日志报文保存至第一日志文件之前,可以先行确定第一日志文件已保存的日志报文的报文数据量是否已超过预定义的第一阈值。如果已超过,则请求端可以创建出与第一日志文件相同类型的第三日志文件,将第一日志报文保存至第三日志文件中;如果未超过,则请求端可以直接将第一日志报文保存至第一日志文件中。此时,本发明可以避免单个日志文件的数据量过大而难以管理,也可以避免单个日志文件出现问题时,无法对日志报文进行处理的问题。
其中,第一阈值可以由技术人员根据实际情况进行制定,本发明对此不作限定。
本实施例提出的链路追踪方法,可以避免单个日志文件的数据量过大而难以管理,也可以避免单个日志文件出现问题时,无法对日志报文进行处理的问题。
需要说明的是,在银行企业的应用场景中,分布式链路追踪技术所使用的原日志报文的样例可以为:
{"traceid":"MBL00100000000000000000000000000000001",
"spanid":"LOAN0100000000000000000000000000008001",
"parentspanid":"ESB00100000000000000000000000000001001",
"starttime":"20190101090003010","endtime":"20190101090024010",
"errorcode":"000000","errormessage":"000000","service":"WDZLC",
"interface":"","productNo":"","eventNo":"","attribute":"","remark":""};
在改造后的报文生成规则中,所有要素均可通过分布式报文头获取,或者提供了生成规则。对于已提供分布式报文头的微服务无需修改接口,未接入分布式报文头的微服务需要修改接口,传输必要的打印要素。
在银行企业中,打印要素和要素生成规则如下:
Traceid:可以使用分布式报文头中的globalSerialNo。透传整个链路。
spanid:使用分布式报文头中的subSerialNo+新生成的唯一UUID(19位)。
parentspanid:直接使用接收到的spanid。入口层parentspanid为固定值”root-first”,spanid为固定值”root-second”。
busitype:由前端发起端生成,3位系统标识+15位ESC接口编号或系统自定义接口编号,不足15位时右侧补0+2位顺序号。每个业务类型标志busitype对应一条交易链路,例如手机银行行内转入、手机银行行内转出等。由最前端业务系统生成busitype,如手机银行、金融超市、线上贷、互联网贷款、条码聚合支付系统等,后端系统透传busitype整个链路日志。
mchtname:平台或商户名称,透传整个链路日志。
productname:产品名称,透传整个链路日志。
apmreserve:保留域名,暂时为空。
errorcode:返回码,包括技术层面返回码以及业务层面返回码,各个系统需要提供映射关系,默认哪些业务返回码映射成技术层面展示返回码,技术返回码标准:0正常,1自身错误,2非自身错误,3超时,4网络错误;映射表模板详见附件,后续补充,需按系统整理。
service:服务编码,标识本服务信息。格式:<系统英文缩写.微服务英文名称>,没有微服务时微服务英文名称使用系统英文缩写,系统英文缩写使用全行统一名称,可通过项目管理系统查询。例如:service:qol.common,如果没有微服务的情况,例如service:cap.cap。标识当前日志所在服务信息,客户端打印客户端信息,服务端打印服务端信息。
servicename:服务名称,标识本服务信息。格式:<系统中文名称.微服务中文名称>,没有微服务时微服务名称使用系统中文名称,系统中文名称使用全行标准系统名称。例如:servicename:统一支付平台.前置服务,servicename:核心系统.核心系统。标识当前日志所在服务信息,客户端打印客户端信息,服务端打印服务端信息。
interface:接口编码,发布到ESC的使用ESC接口编号,客户端格式:<系统英文缩写.微服务英文名称.接口编号.客户端系统英文缩写.client>,如果没有微服务,微服务英文名称使用系统英文缩写。服务端格式:<系统英文缩写.微服务英文名称.接口编号.渠道编号.server>,如果没有微服务,微服务英文名称使用系统英文缩写。
例如:interface:spp.front.SPP304103100200.EAS.client。客户端应使用服务端提供的信息。
interfacename:接口名称,发布到ESC的使用ESC接口名称,客户端格式:<系统中文名称.微服务中文名称.接口名称.客户端>,如果没有微服务<系统中文名称.系统中文名称.接口名称.客户端>。服务端格式:<系统中文名称.微服务中文名称.接口名称.服务端>,如果没有微服务<系统中文名称.系统中文名称.接口名称.服务端>。例如:interfacename:统一支付平台.前置服务.代收.客户端。客户端应使用服务端提供的信息。
interfaceversion:接口版本号,用于灰度发布接口覆盖度检查,源头系统确定版本后,通过分布式报文头透传到下游结点,下游结点从分布式报文头中获取并打印。
starttime,endtime,oltptime,errormessage:按实际填写。starttime,endtime格式为YYYYMMDDHHMMSSUUU,UUU表示毫秒,oltptime单位为毫秒。
其中,对于未接入分布式报文头的系统,以及接口中未包含分布式报文头的微服务,服务端段接口中需要增加相应字段,以便客户端传递相应参数信息。
在对分布式报文头进行调整时,本发明可以启用报文头中的extendInfo扩展域,传递业务类型信息busitype、逻辑单元标识spanid、商户名称mchtname、产品名称productname、APM扩展域apmreserve。对于busitype规则和spanid规则,示例如下:
还需要说明的是,本发明在利用分布式链路追踪技术即Dapper技术过程中,可以对应用开发者近乎零浸入的成本对分布式控制路径进行跟踪,几乎完全依赖于基于少量通用组件库的改造。
具体的,当一个线程在处理跟踪控制路径的过程中,Dapper技术把这次跟踪的上下文的在ThreadLocal中进行存储。追踪上下文是一个小而且容易复制的容器,其中承载了Scan的属性比如跟踪ID和span ID。
具体的,当计算过程是延迟调用的或是异步的,大多数开发者通过线程池或其他执行器,使用一个通用的控制流库来回调。Dapper确保所有这样的回调可以存储这次跟踪的上下文,而当回调函数被触发时,这次跟踪的上下文会与适当的线程关联上。在这种方式下,Dapper可以使用trace ID和span ID来辅助构建异步调用的路径。
具体的,对于某个系统平台,其所有进程间的通信链路均可以是建立在一个使用C++和Java开发的RPC框架上。本发明可以把跟踪植入该框架来定义RPC中所有的span。span的ID和跟踪的ID会从客户端发送到服务端。像那样的基于RPC的系统被广泛使用在Google中,这是一个重要的植入点。当那些非RPC通信框架发展成熟并找到了自己的用户群之后,我们会计划对RPC通信框架进行植入。
与图1所示方法相对应,如图3所示,本实施例提出一种链路追踪装置100。该装置100可以包括:请求端101、响应端102和链路追踪端103;其中:
请求端101在通过向响应端102发送服务请求报文,来成功调用响应端102的服务接口时,生成第一日志报文;其中,服务请求报文中携带有用于进行链路追踪的链路信息,第一日志报文中携带有请求端101获得响应端102响应的响应信息和用于进行链路追踪的第一链路信息;
请求端101将第一日志报文保存至相应的第一日志文件中;
响应端102在接收到服务请求报文而对请求端101进行响应时,生成第二日志报文;第二日志报文中携带有响应端102对请求端101进行响应的响应信息和用于进行链路追踪的第二链路信息;
响应端102将第二日志报文保存至相应的第二日志文件中;
链路追踪端103获得第一日志文件和第二日志文件;
链路追踪端103利用链路追踪技术,对第一日志文件和第二日志文件中进行日志聚合,基于第一日志报文和第二日志报文进行链路追踪。
需要说明的是,请求端101、响应端102和链路追踪端103的具体处理过程及其带来的技术效果可以参照图1中的步骤S101、S102、S103、S104、S105和S106,此处不再赘述。
本实施例提出的链路追踪装置100,请求端101在通过向响应端102发送服务请求报文,来成功调用响应端102的服务接口时,生成第一日志报文;其中,服务请求报文中携带有用于进行链路追踪的链路信息,第一日志报文中携带有请求端101获得响应端102响应的响应信息和用于进行链路追踪的第一链路信息;请求端101将第一日志报文保存至相应的第一日志文件中;响应端102在接收到服务请求报文而对请求端101进行响应时,生成第二日志报文;第二日志报文中携带有响应端102对请求端101进行响应的响应信息和用于进行链路追踪的第二链路信息;响应端102将第二日志报文保存至相应的第二日志文件中;链路追踪端103获得第一日志文件和第二日志文件;链路追踪端103利用链路追踪技术,对第一日志文件和第二日志文件中进行日志聚合,基于第一日志报文和第二日志报文进行链路追踪。本发明可以对业务处理过程中涉及到的调用进行全链路追踪。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种链路追踪方法,其特征在于,所述方法包括:
请求端在通过向响应端发送服务请求报文,来成功调用响应端的服务接口时,生成第一日志报文;其中,所述服务请求报文中携带有用于进行链路追踪的链路信息,所述第一日志报文中携带有所述请求端获得所述响应端响应的响应信息和用于进行链路追踪的第一链路信息;
所述请求端将所述第一日志报文保存至相应的第一日志文件中;
所述响应端在接收到所述服务请求报文而对所述请求端进行响应时,生成第二日志报文;所述第二日志报文中携带有所述响应端对所述请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;
所述响应端将所述第二日志报文保存至相应的第二日志文件中;
链路追踪端获得所述第一日志文件和所述第二日志文件;
所述链路追踪端利用链路追踪技术,对所述第一日志文件和所述第二日志文件中进行日志聚合,基于所述第一日志报文和所述第二日志报文进行链路追踪。
2.根据权利要求1所述的链路追踪方法,其特征在于,在所述请求端将所述第一日志报文保存至相应的第一日志文件中之前,所述方法还包括:
所述请求端确定所述第一日志文件的数据量是否未超过第一阈值,如果是,则再将所述第一日志报文保存至所述第一日志文件中;否则,禁止将所述第一日志报文保存至所述第一日志文件中,创建第三日志文件,并将所述第一日志报文保存至所述第三日志文件中。
3.根据权利要求1所述的链路追踪方法,其特征在于,在所述基于所述第一日志报文和所述第二日志报文进行链路追踪之后,所述方法还包括:
所述链路追踪端将追踪到的链路追踪信息输出到屏幕上。
4.根据权利要求1所述的链路追踪方法,其特征在于,所述第一日志报文中包括:服务类型编号、平台名称、产品名称、返回码、请求端名称、接口名称、接口版本号和时间;所述第二日志报文中包括:服务类型编号、平台名称、产品名称、返回码、响应端名称、接口名称、接口版本号和时间。
5.根据权利要求1所述的链路追踪方法,其特征在于,所述链路追踪技术为分布式链路追踪技术。
6.一种链路追踪装置,其特征在于,所述装置包括:请求端、响应端和链路追踪端;其中:
所述请求端在通过向响应端发送服务请求报文,来成功调用所述响应端的服务接口时,生成第一日志报文;其中,所述服务请求报文中携带有用于进行链路追踪的链路信息,所述第一日志报文中携带有所述请求端获得所述响应端响应的响应信息和用于进行链路追踪的第一链路信息;
所述请求端将所述第一日志报文保存至相应的第一日志文件中;
所述响应端在接收到所述服务请求报文而对所述请求端进行响应时,生成第二日志报文;所述第二日志报文中携带有所述响应端对所述请求端进行响应的响应信息和用于进行链路追踪的第二链路信息;
所述响应端将所述第二日志报文保存至相应的第二日志文件中;
所述链路追踪端获得所述第一日志文件和所述第二日志文件;
所述链路追踪端利用链路追踪技术,对所述第一日志文件和所述第二日志文件中进行日志聚合,基于所述第一日志报文和所述第二日志报文进行链路追踪。
7.根据权利要求6所述的链路追踪装置,其特征在于,在所述请求端将所述第一日志报文保存至相应的第一日志文件中之前,所述请求端还确定所述第一日志文件的数据量是否未超过第一阈值,如果是,则再将所述第一日志报文保存至所述第一日志文件中;否则,禁止将所述第一日志报文保存至所述第一日志文件中,创建第三日志文件,并将所述第一日志报文保存至所述第三日志文件中。
8.根据权利要求6所述的链路追踪装置,其特征在于,在所述基于所述第一日志报文和所述第二日志报文进行链路追踪之后,所述链路追踪端将追踪到的链路追踪信息输出到屏幕上。
9.根据权利要求6所述的链路追踪装置,其特征在于,所述第一日志报文中包括:服务类型编号、平台名称、产品名称、返回码、请求端名称、接口名称、接口版本号和时间;所述第二日志报文中包括:服务类型编号、平台名称、产品名称、返回码、响应端名称、接口名称、接口版本号和时间。
10.根据权利要求6所述的链路追踪装置,其特征在于,所述链路追踪技术为分布式链路追踪技术。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108771.7A CN114448776A (zh) | 2022-01-28 | 2022-01-28 | 一种链路追踪方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108771.7A CN114448776A (zh) | 2022-01-28 | 2022-01-28 | 一种链路追踪方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114448776A true CN114448776A (zh) | 2022-05-06 |
Family
ID=81371434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210108771.7A Pending CN114448776A (zh) | 2022-01-28 | 2022-01-28 | 一种链路追踪方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114448776A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687743A (zh) * | 2023-12-18 | 2024-03-12 | 微栈科技(浙江)有限公司 | 一种分布式应用的链路请求追踪系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966653A (zh) * | 2020-08-05 | 2020-11-20 | 深圳乐信软件技术有限公司 | 微服务调用链路数据处理方法、装置、服务器及存储介质 |
CN112181931A (zh) * | 2020-10-20 | 2021-01-05 | 上海依图网络科技有限公司 | 一种大数据系统链路追踪方法及电子设备 |
CN112286776A (zh) * | 2020-11-04 | 2021-01-29 | 中国电力财务有限公司 | 一种微服务链路追踪的方法及系统 |
CN112632007A (zh) * | 2020-12-23 | 2021-04-09 | 平安银行股份有限公司 | 一种日志存储及提取方法、装置、设备及存储介质 |
WO2021189899A1 (zh) * | 2020-09-24 | 2021-09-30 | 平安科技(深圳)有限公司 | 链路状态的追踪方法、装置、电子设备及计算机存储介质 |
-
2022
- 2022-01-28 CN CN202210108771.7A patent/CN114448776A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966653A (zh) * | 2020-08-05 | 2020-11-20 | 深圳乐信软件技术有限公司 | 微服务调用链路数据处理方法、装置、服务器及存储介质 |
WO2021189899A1 (zh) * | 2020-09-24 | 2021-09-30 | 平安科技(深圳)有限公司 | 链路状态的追踪方法、装置、电子设备及计算机存储介质 |
CN112181931A (zh) * | 2020-10-20 | 2021-01-05 | 上海依图网络科技有限公司 | 一种大数据系统链路追踪方法及电子设备 |
CN112286776A (zh) * | 2020-11-04 | 2021-01-29 | 中国电力财务有限公司 | 一种微服务链路追踪的方法及系统 |
CN112632007A (zh) * | 2020-12-23 | 2021-04-09 | 平安银行股份有限公司 | 一种日志存储及提取方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687743A (zh) * | 2023-12-18 | 2024-03-12 | 微栈科技(浙江)有限公司 | 一种分布式应用的链路请求追踪系统和方法 |
CN117687743B (zh) * | 2023-12-18 | 2024-07-23 | 微栈科技(浙江)有限公司 | 一种分布式应用的链路请求追踪系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102214099B (zh) | 用于autosar的rte代码自动生成方法 | |
CN110311831A (zh) | 基于容器云的系统资源监控方法及相关设备 | |
CN110750222A (zh) | 打印方法、装置、计算机设备和存储介质 | |
CN109634730A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN110688828A (zh) | 文件处理方法及装置、文件处理系统、计算机设备 | |
CN112286776A (zh) | 一种微服务链路追踪的方法及系统 | |
CN110109766A (zh) | 数据请求方法、装置、系统、数据转发装置及存储介质 | |
CN111190750B (zh) | 一种数据处理方法以及系统 | |
CN114448776A (zh) | 一种链路追踪方法及装置 | |
CN113179301A (zh) | 文件的下载方法和装置、存储介质、电子装置 | |
CN112416739B (zh) | 测试方法、装置以及电子设备 | |
CN108900627A (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN111562893A (zh) | 一种重印方法及装置 | |
CN107249019A (zh) | 基于业务的数据处理系统、方法、装置和服务器 | |
EP2690560A2 (en) | Method of benchmarking the behaviour of a replacement information system with the old system | |
CN115250233B (zh) | 一种灰度路由控制方法、灰度路由组件及计算机设备 | |
CN110519714A (zh) | 一种短信审批处理方法、装置、电子设备和存储介质 | |
CN115460265A (zh) | 接口调用方法、装置、设备及介质 | |
CN115168203A (zh) | 接口模拟方法、装置、系统、计算机设备和存储介质 | |
CN114217790A (zh) | 接口编排调度方法、装置、电子设备及介质 | |
CN111401819B (zh) | 系统间数据推送方法及系统 | |
US20100269052A1 (en) | Notifying of an unscheduled system interruption requiring manual intervention and adjusting interruption specifics reactive to user feedback | |
CN110489234A (zh) | 区块链层的报文处理方法、装置、设备及可读存储介质 | |
CN110908636A (zh) | 一种自动提供接口服务的接口模拟方法及装置 | |
CN114997866B (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 |