CN114978880B - 服务调用链追踪方法、系统、计算机及存储介质 - Google Patents

服务调用链追踪方法、系统、计算机及存储介质 Download PDF

Info

Publication number
CN114978880B
CN114978880B CN202210562769.7A CN202210562769A CN114978880B CN 114978880 B CN114978880 B CN 114978880B CN 202210562769 A CN202210562769 A CN 202210562769A CN 114978880 B CN114978880 B CN 114978880B
Authority
CN
China
Prior art keywords
service
call
information message
call chain
log
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
Application number
CN202210562769.7A
Other languages
English (en)
Other versions
CN114978880A (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.)
Nanchang Intelligent New Energy Vehicle Research Institute
Original Assignee
Nanchang Intelligent New Energy Vehicle Research Institute
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 Nanchang Intelligent New Energy Vehicle Research Institute filed Critical Nanchang Intelligent New Energy Vehicle Research Institute
Priority to CN202210562769.7A priority Critical patent/CN114978880B/zh
Publication of CN114978880A publication Critical patent/CN114978880A/zh
Application granted granted Critical
Publication of CN114978880B publication Critical patent/CN114978880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0677Localisation of faults
    • 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/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种服务调用链追踪方法、系统、计算机及存储介质,服务调用链追踪方法包括:调用链追踪工具生成包含唯一标识的调用链信息报文,将SOME/IP信息报文的信息添加至调用链信息报文中,发送调用链信息报文;调用链追踪工具将包含调用链信息的服务日志予以标识,生成第一服务日志;调用链追踪工具通过接收到的SOME/IP信息报文查找对应接收到的调用链信息报文,调用链追踪工具储存包含接收到的调用链信息报文的服务日志,形成第二服务日志;调用链追踪工具追踪第一服务日志及第二服务日志,建立服务调用的多叉树数据结构。通过采用上述方法,可以清晰明了的对故障进行相应问题节点的快送定位,更加方便的确定服务依赖关系。

Description

服务调用链追踪方法、系统、计算机及存储介质
技术领域
本申请涉及智能汽车软件领域,特别是涉及一种服务调用链追踪方法、系统、计算机及存储介质。
背景技术
面向服务架构(Service-Oriented Architectures,SOA)是智能汽车软件架构的发展方向。面向服务架构是一种将信息化模块化、标准化为“服务”的架构风格,核心是实现服务和技术的完全分离,从而达到服务的可重用性。面向服务架构能使应用之间松散耦合、整个系统动态灵活、可扩展。
AUTOSAR组织于2017年3月31日首次发布Adaptive平台,作为电子控制单元(ECU)的标准化集成平台。AUTOSAR Adaptive平台基于POSIX操作系统,是面向最新汽车大趋势的ECU标准。AUTOSAR Adaptive平台采用面向服务的架构,使用SOME/IP(Scalable service-Oriented MiddlewarE over IP)协议实现面向服务的通信。
目前,汽车上存在成百上千的服务,一个服务会调用其他若干服务,从而形成复杂的调用关系。如果这些调用关系不能被理清楚,将给软件开发人员定位故障带来很大的困难。例如,A服务调用B服务,B服务调用C和D服务。在这样的情况下,如果C服务出现故障,B服务和A服务都将会出现故障。AUTOSAR Adaptive平台目前并没有引入服务调用链追踪相关的功能,只能选用传统的故障定位方式,通过Dlt(Diagnostic Log and Trace)模块将每个节点调用服务和被请求服务的行为记录到日志中,逐一分析日志来排查故障。但是这些服务的日志是分散的,彼此没有很强的联系,很难从中整理出C服务故障是A服务与B服务故障的根本原因。
从技术实现上分析,AUTOSAR Adaptive平台通过SOME/IP协议实现服务的请求与调用。Zipkin、Pinpoint等服务调用链追踪工具是基于http协议实现,原理是将调用链信息加入http协议的首部行(header line)发送到服务端。SOME/IP协议的头部无法存储调用链信息,调用链信息只能通过其他的方式发送到服务端,同时必须保证一条调用链信息与SOME/IP报文是唯一对应的。因此,由于AUTOSAR Adaptive平台上使用SOME/IP协议实现面向服务通信,未有相应的服务调用链追踪方法来实现服务调用关系的追踪整理,进而导致面向服务架构的故障定位极为困难。
发明内容
本申请实施例提供了一种服务调用链追踪方法、系统、存储介质、终端及系统,以解决由于AUTOSAR Adaptive平台上使用SOME/IP协议实现面向服务通信,未有相应的服务调用链追踪方法来实现服务调用关系的追踪整理,进而导致面向服务架构的故障定位极为困难的技术问题。
第一方面,本申请实施例提供了一种服务调用链追踪方法,包括:
当客户端发起SOME/IP服务调用时,调用链追踪工具生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
所述调用链追踪工具将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
当服务端接收到所述SOME/IP服务调用时,所述调用链追踪工具根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文以执行服务调用;
所述调用链追踪工具储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
所述调用链追踪工具追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构。
进一步地,所述调用链追踪工具形成包含唯一标识的调用链信息报文的步骤包括:
根据当前时间加随机数的方法来获取Trace Id,生成调用链唯一标识;
根据节点IP地址主机号、服务Id以及当前时间获取Span Id,生成节点唯一标识;
根据所述Trace Id及所述Span Id生成Parent Id,以及根据所述Trace Id、所述Span Id及所述Parent Id生成所述调用链信息报文;
所述将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中的步骤包括:
将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中。
进一步地,所述调用链追踪工具将包含所述调用链信息的服务日志予以标识,并生成第一服务日志的步骤包括:
通过调用链追踪工具将Dlt协议的Extended Header中的Context Id设置为预设字符作为标记,以生成所述第一服务日志。
进一步地,通过调用链追踪工具根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文,以执行服务调用的步骤包括:
通过调用链追踪工具根据接收到的所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述Client Id、所述Session Id、所述Service Id和所述Method Id信息;
根据接收到的所述调用链信息报文中的Service Id和Method Id,查询服务是否匹配,若是,则执行服务调用。
进一步地,通过调用链追踪工具追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构的步骤包括:
通过调用链追踪工具解析并判断所有的服务日志中的Context Id是否为所述预设字符;
若是,则以所述Trace Id为键值将所述调用链信息报文存入哈希表中,以形成调用日志;
以所述Trace Id为索引,查询所述调用日志,根据所述调用链信息报文中的SpanId和Parent Id的关系,建立服务调用的多叉树数据结构。
第二方面,本申请实施例提供了一种服务调用链追踪系统,应用于所述调用链追踪工具,所述系统包括:
第一生成模块,用于当客户端发起SOME/IP服务调用时,生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
第二生成模块,用于将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
查询模块,用于当服务端接收到所述SOME/IP服务调用时,根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文,以执行服务调用;
第三生成模块,用于储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
处理模块,用于追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构。
进一步地,所述第一生成模块包括:
第一编写单元,用于所述编写模块用于根据当前时间加随机数的方法来获取Trace Id,形成调用链唯一标识;
第二编写单元,根据节点IP地址主机号加服务Id加当前时间获取Span Id,形成节点唯一标识;
第三编写单元,用于根据所述Trace Id及所述Span Id形成Parent Id,以及根据所述Trace Id、所述Span Id及所述Parent Id形成所述调用链信息报文;
第四编写单元,用于将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中的。
进一步地,所述查询模块包括:
第一查询单元,用于根据接收到的所述SOME/IP信息报文中的Client Id、SessionId、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述Client Id、所述Session Id、所述Service Id和所述Method Id信息;
第二查询单元,用于根据接收到的所述调用链信息报文中的Service Id和MethodId,查询服务是否匹配,若是,则执行服务调用。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的服务调用链追踪方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的服务调用链追踪方法。
相比于相关技术,本发明的有益效果在于:在客户端发起服务请求时,通过将SOME/IP信息报文中的ID信息加入包含唯一标识的调用链信息报文,发送所述调用链信息报文,当服务端接收到服务请求后,根据接收到的SOME/IP信息报文查找对应接收到的调用链信息报文,存储所述服务请求发起前后的所述服务日志,当面向服务构架发生故障时,通过所述唯一标识,调取相应的包含所述调用链信息报文的服务日志,通过所述唯一标识进行关联形成服务调用的多叉树数据结构,可以清晰明了的对故障进行相应问题节点的快送定位,更加方便的确定服务依赖关系。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明第一实施例中服务调用链追踪方法的流程图;
图2为本发明第二实施例中服务调用链追踪方法的流程图。
图3为本发明第二实施例中服务调用链追踪方法中调用链追踪工具Client组件的工作流程图;
图4为本发明第二实施例中服务调用链追踪方法中调用链追踪工具Server组件查询所述调用链信息报文与服务是否匹配的工作流程图;
图5为本发明第二实施例中服务调用链追踪方法中调用链追踪工具Server组件查询所述调用链信息报文与所述SOME/IP信息报文是否匹配的工作流程图;
图6为本发明第二实施例中服务调用链追踪方法中调用链追踪工具process组件查询解析服务日志的工作流程图;
图7为本发明第二实施例中服务调用链追踪方法中调用链追踪工具process组件建立所述服务调用多叉树数据结构的工作流程图;
图8为本发明第三实施例中服务调用链追踪系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
请参阅图1,本发明第一实施例提供的服务调用链追踪方法,所述方法包括步骤S10至步骤S60:
步骤S10:当客户端发起SOME/IP服务调用时,调用链追踪工具生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
通过UDP多播发送调用链信息报文实现调用链信息的传输,在调用链信息报文中加入SOME/IP报文的信息,实现与SOME/IP报文的唯一对应。此方法不需要修改SOME/IP报文信息和ARXML配置文件,并且能够与Adaptive平台任意应用实现SOME/IP通信,可以理解地,所述客户端为Adaptive的任意应用。
步骤S20:所述调用链追踪工具将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
通过AUTOSAR中的Dlt模块实现对系统内离散节点服务日志的收集工作,Dlt模块是AUTOSAR标准中使用的日志模块,通过Dlt协议传输所述服务日志,无需在AUTOSARAdptive平台上安装其他组件即可实现DLT日志的发送与控制。可以理解地,用于记录调用链信息记录的Dlt日志采用可阅读的方式设计,以实现通过所述服务日志分析出服务的调用链。Dlt协议的payload用以存储所述调用链信息。对于每条所述服务日志,Dlt协议里Standard Header中4字节的Timestamp字段标记了所述服务日志的创建时间。
步骤S30:当服务端接收到所述SOME/IP服务调用时,所述调用链追踪工具根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文以执行服务调用;
可以理解地,所述客户端为Adaptive的任意应用。
步骤S40:所述调用链追踪工具储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
步骤S50:所述调用链追踪工具追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构。
当点选某个储存的服务日志后,以所述唯一标识为索引,查询存储的所有包含所述唯一标识的服务日志,关联后形成所述服务调用的多叉树数据结构。
可以理解地,所述方法还包括步骤S60:显示所述服务调用的多叉树数据结构。
通过QT提供的图形显示工具将所述服务调的用多叉树数据结构以可视化的方式显示出来。在客户端发起服务请求时,通过将SOME/IP信息报文中的ID信息加入包含唯一标识的调用链信息报文,发送所述调用链信息报文,当服务端接收到服务请求后,根据接收到的SOME/IP信息报文查找对应接收到的调用链信息报文,存储所述服务请求发起前后的所述服务日志,当面向服务构架发生故障时,通过所述唯一标识,调取相应的包含所述调用链信息报文的服务日志,通过所述唯一标识进行关联形成服务调用的多叉树数据结构,可以清晰明了的对故障进行相应问题节点的快送定位,更加方便的确定服务依赖关系。
请参阅图2,本发明第二实施例提供的服务调用链追踪方法,所述方法包括步骤S100至步骤S111:
步骤S100:根据当前时间加随机数的方法来获取Trace Id,生成调用链唯一标识;
具体地,通过调用链追踪工具Client组件生成所述调用链信息报文,所述TraceId作为所述调用链唯一标识,必须保持其唯一性。通过使用当前时间加随机数的方法来获取。同一时间的服务调用链发起数量有限,对于开始时间完全相同的服务调用链,通过加入随机数的方式,避免所述Trace Id冲突的可能,所述Trace Id的结构如下表所述:
Time[16bits] Random Number[16bits]
步骤S101:根据节点IP地址主机号、服务Id以及当前时间获取Span Id,生成节点唯一标识;
在服务调用链中,服务调用的客户端和服务端都被认为是一个节点,节点的唯一标识即为Span Id。在一条服务调用链中,同一个服务可能被反复调用,所以对于同一服务被多次调用的情况,服务端的Span Id不能相同,客户端的Span Id也不能相同。因此通过将所述Span Id被设计为节点IP地址主机号加服务Id加当前时间,以实现上述需求。所述SpanId的结构如下表所述:
IP host Id[8bits] Service Id[16bits] Time[8bits]
步骤S102:根据所述Trace Id及所述Span Id生成Parent Id,以及根据所述TraceId、所述Span Id及所述Parent Id生成所述调用链信息报文;
请参阅图3,当客户端向服务端调用服务时,客户端的所述Span Id即为服务端的所述Parent Id。通过每一个调用链信息中的所述Span Id和所述Parent Id就能分析出该条调用链的服务调用关系。具体地,当客户端发起服务调用时,所述调用链追踪工具Client组件读取发起服务调用时上下文中是否有所述Trace Id。如有,则读取上下文中的所述Trace Id,并将其赋值到所述调用链信息报文中。将上下文中的所述Span Id赋值到所述调用链信息报文中,形成所述Parent Id。如没有,则生成新的所述Trace Id,并将所述ParentId设置为0,即为调用链根节点。
步骤S103:将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中。
在同一时间,可能有多个客户端并发访问服务端提供的同一服务,所述SOME/IP信息报文的到达时间与所述调用链信息报文的到达时间并不是有序的。通过将所述SOME/IP信息报文中的Client Id与Session Id比对所述调用链信息报文中的Client Id与SessionId,能够将所述调用链信息报文与所述SOME/IP信息报文唯一关联。可以理解地,一个Adaptive应用会同时作为多个服务的服务端,在所述调用链信息报文中加入所述ServiceId和所述Method Id,能够帮助准确的识别所述调用链信息报文与哪个服务相关联。所述调用链信息报文的结构如下表所示:
步骤S104:发送所述调用链信息报文;
通过UDP协议传输所述调用链信息报文,通过Dlt协议发送所述服务日志。
步骤S105:通过调用链追踪工具将Dlt协议的Extended Header中的Context Id设置为预设字符作为标记,以生成所述第一服务日志;
优选地,所述预设字符为“Trac”,将所述第一服务日志中的每一项信息采取不定长的字符串加以记录,可实现所述第一服务日志的存储;
具体地,如下表所示,为了使日志具有可读性,对于上报日志中的每一项信息采取不定长的字符串加以记录,以‘\20’(空格)作为间隔加以区分。
其中Call Context表示当前上报信息的时机,包括“Client Start”、“ClientEnd”、“Server Start”和“Server End”四种状态。“Client Start”表示客户端发起服务调用时,“Client End”表示客户端完成服务调用时,“Server Start”表示服务端接收服务调用时,“Server End”表示服务端处理完成服务调用时。
步骤S106:通过调用链追踪工具根据接收到的所述SOME/IP信息报文中的ClientId、Session Id、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述Client Id、所述Session Id、所述Service Id和所述Method Id信息;
具体地,通过调用链追踪工具Server组件于服务端接收所述调用链信息报文,并根据服务端接收到的所述SOME/IP信息报文,查询对应接收到的所述调用链信息报文。
步骤S107:根据接收到的所述调用链信息报文中的Service Id和Method Id,查询服务是否匹配,若是,则执行服务调用;
请参阅图4,当接收到所述服务调用链信息报文时,解析该报文中的所有信息,如果Service Id和Method Id与本应用提供的服务匹配时,存储本条服务调用链信息,否则丢弃该报文。
请参阅图5,因为网络传输的不确定性,所述SOME/IP信息报文和所述服务调用链信息报文的接收时间的先后顺序未知,如先接收所述SOME/IP信息报文,等待接收所述服务调用链信息报文,直至完成查找。查找完成后,存储包含所述接收到的调用链信息报文的服务日志。设置执行调用的上下文信息,以执行所述服务请求。
步骤S108:所述调用链追踪工具储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
步骤S109:通过调用链追踪工具解析并判断所有的服务日志中的Context Id是否为所述预设字符;
若是,则以所述Trace Id为键值将所述调用链信息报文存入哈希表中,以生成调用日志;
请参阅图6,具体地,调用链追踪工具process组件接收服务日志,并解析所述服务日志,判断所述服务日志的Extended Header中Context Id是否为预设字符,如是,则服务日志中包含所述调用链信息报文,以所述Trace Id为键值,将所述调用链信息报文存入哈希表中,并解析所述调用链信息报文中的所有信息,显示到程序界面中的表格内。如不是,则判断为无关的服务日志,丢弃该条服务日志。
步骤S110:以所述Trace Id为索引,查询所述调用日志,根据所述调用链信息报文中的Span Id和Parent Id的关系,建立服务调用的多叉树数据结构。
请参阅图7,当点击所述程序截面中的表格中的某一行后,以该行的所述Trace Id为索引,查询所有包含所述Trace Id的所述调用日志。并根据所述调用日志中所述调用链报文信息的Span Id和Parent Id的关系建立服务调用的多叉树数据结构。
步骤S111:显示所述服务调用的多叉树数据结构。
请参阅图8,本发明第三实施例提供了一种服务调用链追踪系统,该系统应用于所述调用链追踪工具,并实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
所述系统包括:
第一生成模块10,用于当客户端发起SOME/IP服务调用时,生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
优选地,所述第一生成模块10包括第一编写单元,用于所述编写模块用于根据当前时间加随机数的方法来获取Trace Id,形成调用链唯一标识;第二编写单元,根据节点IP地址主机号加服务Id加当前时间获取Span Id,形成节点唯一标识第三编写单元,用于根据所述Trace Id及所述Span Id形成Parent Id,以及根据所述Trace Id、所述Span Id及所述Parent Id形成所述调用链信息报文;第四编写单元,用于将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中的。
可以理解地,所述第一生成模块10还包括第一发送单元,所述发送单元用于将上述信息组成的所述调用链信息报文,通过UDP多播协议发送至服务端。
第二生成模块20,用于将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
可以理解地,所述第二生成模块20具体用于通过调用链追踪工具将Dlt协议的Extended Header中的Context Id设置为预设字符作为标记,以生成所述第一服务日志。
当客户端发起SOME/IP服务调用时,所述第一发送单元还用于将所述调用链信息报文同步发送至所述第二生成模块20。
查询模块30,用于当服务端接收到所述SOME/IP服务调用时,根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文以执行服务调用;
优选地,所述查询模块30包括第一查询单元,用于根据接收到的所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述Client Id、所述Session Id、所述Service Id和所述Method Id信息;
第二查询单元,用于根据接收到的所述调用链信息报文中的Service Id和MethodId,查询服务是否匹配,若是,则执行服务调用。
第三生成模块40,用于储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志。
可以理解地,所述查询模块30还包括第二发送单元,所述第二发送单元用于在服务端接收到所述SOME/IP服务调用时,将接收到的所述调用链信息报文发送至所述第三生成模块40。
处理模块50,用于追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构;
优选地,所述处理模块50包括识别单元及处理单元,所述识别单元用于通过调用链追踪工具解析并判断所有的服务日志中的Context Id是否为所述预设字符;若是,则以所述Trace Id为键值将所述调用链信息报文存入哈希表中,以生成调用日志;
所述处理单元用于以所述Trace Id为索引,查询所述调用日志,根据所述调用链信息报文中的Span Id和Parent Id的关系,建立服务调用的多叉树数据结构。
优选地,所述系统还包括图形显示工具60,所述图形显示工具60用于显示所述服务调用的多叉树数据结构。
本发明还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述技术方案中所述的服务调用链追踪方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述技术方案中所述的服务调用链追踪方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种服务调用链追踪方法,其特征在于,包括:
当客户端发起SOME/IP服务调用时,调用链追踪工具生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
所述调用链追踪工具形成包含唯一标识的调用链信息报文的步骤包括:
根据当前时间加随机数的方法来获取Trace Id,生成调用链唯一标识;
根据节点IP地址主机号、服务 Id以及当前时间获取Span Id,生成节点唯一标识;
根据所述Trace Id及所述Span Id生成Parent Id,以及根据所述Trace Id、所述SpanId及所述Parent Id生成所述调用链信息报文;
所述将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中的步骤包括:
将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中;
所述调用链追踪工具将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
通过调用链追踪工具将包含所述调用链信息的服务日志予以标识,并生成第一服务日志的步骤包括:
通过调用链追踪工具将Dlt协议的Extended Header中的Context Id设置为预设字符作为标记,以生成所述第一服务日志;
当服务端接收到所述SOME/IP服务调用时,所述调用链追踪工具根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文,以执行服务调用;
所述调用链追踪工具储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
所述调用链追踪工具追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构;
通过调用链追踪工具追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构的步骤包括:
通过调用链追踪工具解析并判断所有的服务日志中的Context Id是否为所述预设字符;
若是,则以所述Trace Id为键值将所述调用链信息报文存入哈希表中,以生成调用日志;
以所述Trace Id为索引,查询所述调用日志,根据所述调用链信息报文中的Span Id和Parent Id的关系,建立服务调用的多叉树数据结构。
2.根据权利要求1所述的服务调用链追踪方法,其特征在于,通过调用链追踪工具根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文,以执行服务调用的步骤包括:
通过调用链追踪工具根据接收到的所述SOME/IP信息报文中的Client Id、SessionId、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述Client Id、所述Session Id、所述Service Id和所述Method Id信息;
根据接收到的所述调用链信息报文中的Service Id和Method Id,查询服务是否匹配,若是,则执行服务调用。
3.一种服务调用链追踪系统,应用于调用链追踪工具,其特征在于,所述系统包括:
第一生成模块,用于当客户端发起SOME/IP服务调用时,生成包含唯一标识的调用链信息报文,将SOME/IP信息报文中的ID信息添加至所述调用链信息报文中,发送所述调用链信息报文;
所述第一生成模块包括:
第一编写单元,用于根据当前时间加随机数的方法来获取Trace Id,形成调用链唯一标识;
第二编写单元,用于根据节点IP地址主机号加服务 Id加当前时间获取Span Id,形成节点唯一标识;
第三编写单元,用于根据所述Trace Id及所述Span Id形成Parent Id,以及根据所述Trace Id、所述Span Id及所述Parent Id形成所述调用链信息报文;
第四编写单元,用于将所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息添加至所述调用链信息报文中的;
第二生成模块,用于将包含所述调用链信息的服务日志予以标识,并生成第一服务日志;
所述第二生成模块具体用于通过调用链追踪工具将Dlt协议的Extended Header中的Context Id设置为预设字符作为标记,以生成所述第一服务日志;
查询模块,用于当服务端接收到所述SOME/IP服务调用时,根据接收到的所述SOME/IP信息报文中的ID信息,查找对应接收到的所述调用链信息报文,以执行服务调用;
第三生成模块,用于储存包含接收到的所述调用链信息报文的服务日志,以生成第二服务日志;
处理模块,用于追踪所述第一服务日志及所述第二服务日志,建立服务调用的多叉树数据结构;
所述处理模块包括识别单元及处理单元,所述识别单元用于通过调用链追踪工具解析并判断所有的服务日志中的Context Id是否为所述预设字符;
若是,则以所述Trace Id为键值将所述调用链信息报文存入哈希表中,以生成调用日志;
所述处理单元用于以所述Trace Id为索引,查询所述调用日志,根据所述调用链信息报文中的Span Id和Parent Id的关系,建立服务调用的多叉树数据结构。
4.根据权利要求3所述的服务调用链追踪系统,其特征在于,所述查询模块包括:
第一查询单元,用于根据接收到的所述SOME/IP信息报文中的Client Id、Session Id、Service Id和Method Id信息,查找接收到的所述调用链信息报文中是否包含所述ClientId、所述Session Id、所述Service Id和所述Method Id信息;
第二查询单元,用于根据接收到的所述调用链信息报文中的Service Id和Method Id,查询服务是否匹配,若是,则执行服务调用。
5.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1或2所述的服务调用链追踪方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1或2所述的服务调用链追踪方法。
CN202210562769.7A 2022-05-23 2022-05-23 服务调用链追踪方法、系统、计算机及存储介质 Active CN114978880B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210562769.7A CN114978880B (zh) 2022-05-23 2022-05-23 服务调用链追踪方法、系统、计算机及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210562769.7A CN114978880B (zh) 2022-05-23 2022-05-23 服务调用链追踪方法、系统、计算机及存储介质

Publications (2)

Publication Number Publication Date
CN114978880A CN114978880A (zh) 2022-08-30
CN114978880B true CN114978880B (zh) 2024-02-13

Family

ID=82986236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210562769.7A Active CN114978880B (zh) 2022-05-23 2022-05-23 服务调用链追踪方法、系统、计算机及存储介质

Country Status (1)

Country Link
CN (1) CN114978880B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116346473B (zh) * 2023-03-29 2024-03-26 贝壳找房(北京)科技有限公司 调用链路的识别方法、设备、存储介质及计算机程序产品

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
CN107943649A (zh) * 2017-11-21 2018-04-20 郑州云海信息技术有限公司 一种分布式集群性能监控系统及方法
CN110069354A (zh) * 2019-04-15 2019-07-30 必成汇(成都)科技有限公司 微服务全链路跟踪方法及微服务架构
CN112486786A (zh) * 2020-11-12 2021-03-12 贝壳技术有限公司 一种调用链路追踪方法及装置
CN112559212A (zh) * 2020-12-18 2021-03-26 北京航天云路有限公司 基于自研框架的服务调用链实现方法
CN112685008A (zh) * 2020-11-30 2021-04-20 上海赫千电子科技有限公司 一种基于autosar采用面向服务架构的服务失效控制方法
CN113259351A (zh) * 2021-05-12 2021-08-13 北京天融信网络安全技术有限公司 一种入侵检测方法、装置、存储介质和电子设备
KR102349107B1 (ko) * 2020-07-20 2022-01-07 현대오토에버 주식회사 오토사 플랫폼에서 러너블 실행을 관리하는 방법
WO2022027867A1 (zh) * 2020-08-04 2022-02-10 紫光云(南京)数字技术有限公司 基于mdc多线程链路追踪方法、装置及计算机可读存储介质
CN114297028A (zh) * 2021-12-28 2022-04-08 厦门安胜网络科技有限公司 一种微服务日志链路追踪方法与系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009030774B4 (de) * 2009-06-27 2020-01-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur rechnergestützten Erfassung von Fehlern beim Ablauf von einem oder mehreren softwarebasierten Programmen in einem System aus Komponenten
US11048610B2 (en) * 2016-08-03 2021-06-29 Toyota Motor Engineering & Manufacturing North America, Inc. Fleet-wide monitoring system for vehicles

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
CN107943649A (zh) * 2017-11-21 2018-04-20 郑州云海信息技术有限公司 一种分布式集群性能监控系统及方法
CN110069354A (zh) * 2019-04-15 2019-07-30 必成汇(成都)科技有限公司 微服务全链路跟踪方法及微服务架构
KR102349107B1 (ko) * 2020-07-20 2022-01-07 현대오토에버 주식회사 오토사 플랫폼에서 러너블 실행을 관리하는 방법
WO2022027867A1 (zh) * 2020-08-04 2022-02-10 紫光云(南京)数字技术有限公司 基于mdc多线程链路追踪方法、装置及计算机可读存储介质
CN112486786A (zh) * 2020-11-12 2021-03-12 贝壳技术有限公司 一种调用链路追踪方法及装置
CN112685008A (zh) * 2020-11-30 2021-04-20 上海赫千电子科技有限公司 一种基于autosar采用面向服务架构的服务失效控制方法
CN112559212A (zh) * 2020-12-18 2021-03-26 北京航天云路有限公司 基于自研框架的服务调用链实现方法
CN113259351A (zh) * 2021-05-12 2021-08-13 北京天融信网络安全技术有限公司 一种入侵检测方法、装置、存储介质和电子设备
CN114297028A (zh) * 2021-12-28 2022-04-08 厦门安胜网络科技有限公司 一种微服务日志链路追踪方法与系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Fault-Tolerance Support for Adaptive AUTOSAR Platforms using SOME/IP;Anand Bhat;《2020 IEEE 26th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA)》;全文 *
兼容ROS的自适应AUTOSAR面向服务通信研究;邱天时等;《万方数据库》;全文 *
车载以太网SOME/IP在信息娱乐系统的应用;赵颖慧;白杨;赵聪聪;;《汽车文摘》(04);全文 *

Also Published As

Publication number Publication date
CN114978880A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
US8161468B2 (en) Processing of expressions
CN111078504A (zh) 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN109981349B (zh) 调用链信息查询方法以及设备
US20140089383A1 (en) Method and system for automatic detecting and resolving apis
CN106611000A (zh) 一种检索资源对象的方法、装置和系统
CN114978880B (zh) 服务调用链追踪方法、系统、计算机及存储介质
CN111225082B (zh) 一种物联网智能设备的身份管理方法、装置及物联网平台
US20080162644A1 (en) Auto selection of connectors in a middleware framework
CN113704790A (zh) 一种异常日志信息汇总方法及计算机设备
CN110532011A (zh) 数据转换器版本升级方法、装置及数据通信系统
CN111984849A (zh) 一种信息查询方法、装置、设备及介质
CN113691635A (zh) 调用微服务的方法、装置、电子设备和可读存储介质
US20050108388A1 (en) Method, system, and apparatus for scheduling pattern based web services
CN111064729B (zh) 报文的处理方法及装置、存储介质和电子装置
CN116821215A (zh) 基于端口查询的opc ua服务器搜索方法
CN110647416B (zh) 一种消息队列跟踪记录方法及系统
CN111711605B (zh) 一种用于物联网平台的数据协议主动解析方法
CN112597119A (zh) 一种处理日志的生成方法、装置及存储介质
CN115333951B (zh) 网络资产信息的生成方法、装置及电子设备
CN117632445B (zh) 请求处理方法以及装置、任务执行方法以及装置
CN110708208B (zh) 监控数据的采集方法及装置、存储介质、终端
CN114006954B (zh) 一种goose报文的收发方法及装置
CN114745376B (zh) 一种ZooKeeper集群运维方法、装置及电子设备、存储介质
CN113347220B (zh) 一种服务间数据共享方法、装置、服务器及介质
CN116701185A (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