CN113590372A - 基于日志的链路追踪方法、装置、计算机设备及存储介质 - Google Patents

基于日志的链路追踪方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113590372A
CN113590372A CN202110913657.7A CN202110913657A CN113590372A CN 113590372 A CN113590372 A CN 113590372A CN 202110913657 A CN202110913657 A CN 202110913657A CN 113590372 A CN113590372 A CN 113590372A
Authority
CN
China
Prior art keywords
log
traceid
logs
query request
keywords
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
Application number
CN202110913657.7A
Other languages
English (en)
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110913657.7A priority Critical patent/CN113590372A/zh
Publication of CN113590372A publication Critical patent/CN113590372A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例属于云监控技术领域,涉及一种基于日志的链路追踪方法、装置、计算机设备及存储介质,其中方法包括:获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。

Description

基于日志的链路追踪方法、装置、计算机设备及存储介质
技术领域
本申请涉及云监控领域,尤其涉及基于日志的链路追踪方法、装置、计算机设备及存储介质。
背景技术
目前应用系统领域中微服务架构越来越普及。微服务架构的核心方案是将传统的,大型的,非常复杂的,单体的应用系统根据一定的规则拆分成不同模块,并将这些不同模式分布在海量的实例上。虽然微服务架构大大的提升了应用系统的整体可用性和系统容错性,但是离散的服务实例导致无法还原一个完整的调用链路,也无法通过日志快速定位的异常问题。
传统架构下运维人员排查问题仅需要登录少量机器,再通过某些技术手段或者个人能力通过日志快速定位到异常问题。但这种情况在微服务架构下不再现实。运维人员无法从海量的实例中快速的过滤出异常问题日志,也无法将错误信息建立一定的关联性从而降低了运维工作效率,减缓了异常恢复时效,甚至造成不可挽回的损失。
发明内容
本申请实施例的目的在于提出一种基于日志的链路追踪方法、装置、计算机设备及存储介质,以解决微服务架构下系统出现异常时,离散的服务实例和日志无法还原完整的链路调用信息,以致难以进行异常定位的问题。
为了解决上述技术问题,本申请实施例提供一种基于日志的链路追踪方法,采用了如下所述的技术方案:
获取待查询的日志关键词;
根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;
解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
为了解决上述技术问题,本申请实施例还提供一种基于日志的链路追踪装置,采用了如下所述的技术方案:
获取模块,用于获取待查询的日志关键词;
查询模块,用于根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;
解析模块,用于解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;
聚合模块,用于将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
展示模块,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,处理器执行计算机可读指令时实现如上述基于日志的链路追踪方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时实现如上述基于日志的链路追踪方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:通过获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的基于日志的链路追踪方法的一个实施例的流程图;
图3是图2中步骤S202的一种具体实施方式的流程图;
图4是根据本申请的基于日志的链路追踪装置的一个实施例的结构示意图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于日志的链路追踪方法一般由服务器/终端设备执行,相应地,基于日志的链路追踪装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的日志的链路追踪方法的一个实施例的流程图。所述的基于日志的链路追踪方法,包括以下步骤:
步骤S201,获取待查询的日志关键词。
在本实施例中,基于日志的链路追踪方法运行于其上的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式获取待查询的日志关键词。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
通过可交互的界面或接口获取待查询的日志关键词。日志关键词可以为用户想查询的业务名称或异常现象的描述。日志关键词可以为多个。网络设备、系统及服务程序等,在运作时都会产生一种称为日志(log)的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。在软件系统上进行一些操作时,或软件系统之间的交互调用时,都会生成日志,这些日志会记录下操作或交互调用的相关内容,这些内容是问题排查的重要依据。但是系统产生的日志是海量的,通过获取待查询的日志关键词对日志集群进行搜索,可快速缩小日志查看的范围,提升问题定位的效率。
步骤S202,根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合。
在本实施例中,根据日志关键词生成日志查询请求。日志查询请求根据预设的规则生成,其中预设的规则用来定义日志查询服务调用的接口规则。例如,预设的规则为根据不同业务系统英文简称的区分不同的日志集群,当日志关键词包含业务系统时,根据业务系统的简称,生成查询该业务系统简称对应的日志集群的日志查询请求。然后日志查询请求调用预设的日志查询服务,查询该业务系统简称对应的日志集群返回满足日志查询请求的日志集合。当日志关键词包含多个业务系统时,相应的生成多个日志查询请求,分别查询不同的日志集群,避免查询海量日志造成性能缓慢,影响用户体验。
步骤S203,解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间。
微服务架构下,单体的应用系统根据一定的规则拆分成不同模块,通过调用微服务构成应用实例。每一次服务调用请求,都单独分配一个唯一的traceID用来标识一条请求链路,该traceID会贯穿整个请求处理过程的所有服务。同时每产生一条日志,该traceID也会记录在日志中。通过对日志解析,可以得到每条日志的traceID和日志生成时间。
步骤S204,将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
在本实施例中,根据日志集合中每条日志的traceID,将具有相同traceID日志聚合,得到N个日志子集。
步骤S205,根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
在本实施例中,根据日志的生成时间,对每个日志子集中的日志按照日志生成时间排序,这样可以看到每个日志子集对应的traceID的链路调用信息。TraceID标记某个请求,TraceID可在服务端从接收请求到响应请求中流转,接力传递给下游应用中流转,用于唯一标记和定义这次请求。而日志记录了从服务端接收请求到响应请求中的链路调用信息。
本申请通过获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。
在本实施例的一些可选的实现方式中,参阅图3,在步骤S202之前,上述电子设备还可以执行以下步骤:
步骤S301,获取待查询的日志时间段;
步骤S302,根据所述日志关键词和日志时间段生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合。
在一些场景下,设置日志查询时间段可以进一步缩小日志查询的范围,提升问题定位的效率。根据日志关键词和日志时间段生成日志查询请求,日志查询请求中包含请求查询的日志生成时间,根据日志查询请求调用预设的日志查询服务,获得相应时间段的日志集合。
在一些可选的实现方式中,在上述步骤S302中,上述电子设备可以执行以下步骤:
根据所述日志关键词和所述日志时间段分别生成S个日志查询请求,其中,S为预设的时间子段个数,S为大于1的正整数,每个日志查询请求只覆盖一个时间子段,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的S个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述S个日志集合中具有相同traceID的日志聚合,获得与traceID对应的R个日志子集,其中,每个日志子集对应一个traceID;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
在一些场景下,由于日志集群存储日志数据为海量数据,不同时间段的日志存储在不同的日志集群,为了提高日志查询的效率,避免查询海量数据造成性能缓慢,影响用户体验,根据预设的日志查询生成规则,将查询的日志时间段分成多个时间子段,每个时间子段对应一个日志查询请求,通过时间子段的设置使日志查询分布到多个日志集群同时进行,既提升了日志查询的效率,又避免查询海量数据对性能造成冲击。
在一些可选的实现方式中,当所述获取待查询的日志关键词步骤获取的日志关键词为M个,且M为大于1的整数时,在上述步骤S202中,上述电子设备可以执行以下步骤:
根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
根据所述每条日志的traceID构建每个日志集合的traceID列表,并根据所述traceID列表计算traceID交集;
根据所述traceID交集中的tracID,将所述M个日志集合中具有相同traceID的日志聚合,获得N个日志子集;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
在本实施例中,组合多个关键词对日志查询能进一步的缩小日志查询的范围。但是通过现有的搜索算法对日志集群进行搜索得到的结果范围过小,通常只有同一条日志同时包含多个关键词才会被作为查询结果输出。而在实际应用中,只要同一条链路的日志同时包含多个关键词,都应该作为问题定位的依据进行查看。所以,当获取的日志关键词为M个,M为大于1的正整数,根据每个关键词生成M个日志查询请求,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合。也就是说,每个关键词对应生成一个日志查询请求,每个日志查询请求调用日志查询服务,返回一个日志集合,该日志集合中的日志与该关键词匹配。
解析M个日志集合中每条日志的traceID,构建每个日志集合的traceID列表,并根据traceID列表计算traceID交集。traceID交集可采用交集算法,将元素最少的traceID列表放在数组A中,这样可以减少后续计算的次数,接着遍历数组A的所有traceID元素,如果该traceID元素在数组B中同时存在,则从数据B中提出并记录到候选结果数组中,数组B可取除数组A外的任一个traceID列表,再将候选结果数组作为新的数组A,从剩余的traceID列表中任选一个列表作为数组B,重复上述过程,得到M个traceID列表中的traceID交集。也就是说traceID交集中的traceID同时出现在每个traceID列表中。
然后根据traceID交集中的traceID,将M个日志集合中具有相同traceID的日志聚合,获得N个日志子集;根据所述生成时间对日志子集中的日志排序,根据排序后的日志获得与该日志子集对应的traceID的链路调用信息。
因为每个日志集合与一个日志关键词匹配,而traceID交集中traceID同时出现在每个日志集合中,所以通过该traceID串接起来的日志与M个关键词全匹配,通过该traceID串接起来的日志也体现了链路调用的信息,方便软件开发维护人员进行问题定位。
在一些可选的实现方式中,当所述获取待查询的日志关键词步骤获取的日志关键词为M个,且M为大于1的整数时,在上述步骤S202中,上述电子设备还可以执行以下步骤:
根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述M个日志集合中具有相同traceID的日志聚合,获得与traceID对应的L个候选日志子集;
根据所述M个关键词,遍历每个候选日志子集,当候选日志子集包含所述M个关键词时,确定所述候选日志子集为所述M个关键词的全匹配日志子集;
根据所述生成时间对所述全匹配日志子集中的日志排序,根据排序后的日志获得与所述全匹配日志子集对应traceID的链路调用信息。
在本实施例中,组合多个关键词对日志查询能进一步的缩小日志查询的范围。当获取的日志关键词为M个,M为大于1的正整数,根据每个关键词生成M个日志查询请求,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合。也就是说,每个关键词对应生成一个日志查询请求,每个日志查询请求调用日志查询服务,返回一个日志集合,该日志集合中的日志与该关键词匹配。
这样得到的M个日志集合中的日志至少与M个关键词中的一个匹配,解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;然后将M个日志集合中具有相同traceID的日志聚合,获得与traceID对应的L个候选日志子集;根据M个关键词,遍历每个候选日志子集,当候选日志子集包含M个关键词时,确定该候选日志子集为M个关键词的全匹配日志子集;也就是说该候选日志子集包含了所有的用户想查询的关键词,将该候选日志子集作为全匹配日志子集,根据该全匹配日志子集中日志的生成时间排序,可以得到与该全匹配日志子集对应traceID的链路调用信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图4,作为对上述图2所示方法的实现,本申请提供了一种基于日志的链路追踪装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的基于日志的链路追踪装置400包括:获取模块401、查询模块402、解析模块403、聚合模块404以及展示模块405。其中:
获取模块401,用于获取待查询的日志关键词;
查询模块402,用于根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;
解析模块403,用于解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;
聚合模块404,用于将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
展示模块405,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
在本实施例中,通过获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。
在本实施例的一些可选的实现方式中,基于日志的链路追踪装置400,还包括:
第一获取子模块,用于获取待查询的日志时间段;
第一查询子模块,用于根据所述日志关键词和日志时间段生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合。
在本实施例的一些可选的实现方式中,基于日志的链路追踪装置400,还包括:
第二查询子模块,用于根据所述日志关键词和所述日志时间段生成S个日志查询请求,其中,S为预设的时间子段个数,S为大于1的正整数,每个日志查询请求只覆盖一个时间子段,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的S个日志集合;
第一解析子模块,用于解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
第一聚合子模块,用于将所述S个日志集合中具有相同traceID的日志聚合,获得与traceID对应的R个日志子集,其中,每个日志子集对应一个traceID;
第一展示子模块,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
在本实施例的一些可选的实现方式中,基于日志的链路追踪装置400,还包括:
第三查询子模块,用于根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
第二解析子模块,用于解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
第一计算子模块,用于根据所述每条日志的traceID构建每个日志集合的traceID列表,并根据所述traceID列表计算traceID交集;
第二聚合子模块,用于根据所述traceID交集中的tracID,将所述M个日志集合中具有相同traceID的日志聚合,获得N个日志子集;
第二展示子模块,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
在本实施例的一些可选的实现方式中,基于日志的链路追踪装置400,还包括:
第四查询子模块,用于根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
第三解析子模块,用于解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
第三聚合子模块,用于将所述M个日志集合中具有相同traceID的日志聚合,获得与traceID对应的L个候选日志子集;
第一匹配子模块,用于根据所述M个关键词,遍历每个候选日志子集,当候选日志子集包含所述M个关键词时,确定所述候选日志子集为所述M个关键词的全匹配日志子集;
第三展示子模块,用于根据所述生成时间对所述全匹配日志子集中的日志排序,根据排序后的日志获得与所述全匹配日志子集对应traceID的链路调用信息。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
所述计算机设备5包括通过系统总线相互通信连接存储器51、处理器52、网络接口53。需要指出的是,图中仅示出了具有组件51-53的计算机设备5,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器51可以是所述计算机设备5的内部存储单元,例如该计算机设备5的硬盘或内存。在另一些实施例中,所述存储器51也可以是所述计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括其外部存储设备。本实施例中,所述存储器51通常用于存储安装于所述计算机设备5的操作系统和各类应用软件,例如基于日志的链路追踪方法的计算机可读指令等。此外,所述存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制所述计算机设备5的总体操作。本实施例中,所述处理器52用于运行所述存储器51中存储的计算机可读指令或者处理数据,例如运行所述基于日志的链路追踪方法的计算机可读指令。
所述网络接口53可包括无线网络接口或有线网络接口,该网络接口53通常用于在所述计算机设备5与其他电子设备之间建立通信连接。
本实施例通过获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于日志的链路追踪方法的步骤。
本实施例通过获取待查询的日志关键词;根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。通过关键词查询日志,再根据traceID按时间顺序将日志串接起来,可以方便的看到同一个traceID的链路调用信息,方便了问题定位。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种基于日志的链路追踪方法,其特征在于,包括下述步骤:
获取待查询的日志关键词;
根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;
解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
2.根据权利要求1所述的基于日志的链路追踪方法,其特征在于,在所述根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合的步骤之前还包括:
获取待查询的日志时间段;
根据所述日志关键词和日志时间段生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合。
3.根据权利要求2所述的基于日志的链路追踪方法,其特征在于,所述根据所述日志关键词和日志时间段生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合的步骤具体包括:
根据所述日志关键词和所述日志时间段生成S个日志查询请求,其中,S为预设的时间子段个数,S为大于1的正整数,每个日志查询请求只覆盖一个时间子段,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的S个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述S个日志集合中具有相同traceID的日志聚合,获得与traceID对应的R个日志子集,其中,每个日志子集对应一个traceID;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
4.根据权利要求1所述的基于日志的链路追踪方法,其特征在于,当所述获取待查询的日志关键词的步骤获取的日志关键词为M个,且M为大于1的整数时,所述根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合的步骤具体包括:
根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
根据所述每条日志的traceID构建每个日志集合的traceID列表,并根据所述traceID列表计算traceID交集;
根据所述traceID交集中的tracID,将所述M个日志集合中具有相同traceID的日志聚合,获得N个日志子集;
根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
5.根据权利要求1所述的基于日志的链路追踪方法,其特征在于,当所述获取待查询的日志关键词的步骤获取的日志关键词为M个,且M为大于1的整数时,所述根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合的步骤具体包括:
根据所述M个关键词生成M个日志查询请求,其中,每个日志查询请求只包含1个关键词,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的M个日志集合;
解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
将所述M个日志集合中具有相同traceID的日志聚合,获得与traceID对应的L个候选日志子集;
根据所述M个关键词,遍历每个候选日志子集,当候选日志子集包含所述M个关键词时,确定所述候选日志子集为所述M个关键词的全匹配日志子集;
根据所述生成时间对所述全匹配日志子集中的日志排序,根据排序后的日志获得与所述全匹配日志子集对应traceID的链路调用信息。
6.一种基于日志的链路追踪装置,其特征在于,包括:
获取模块,用于获取待查询的日志关键词;
查询模块,用于根据所述日志关键词生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合;
解析模块,用于解析所述日志集合中的每条日志,获得每条日志的traceID和生成时间;
聚合模块,用于将所述日志集合中具有相同traceID的日志聚合,获得N个日志子集,其中,每个日志子集对应一个traceID;
展示模块,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与traceID对应的链路调用信息。
7.根据权利要求6所述的基于日志的链路追踪装置,其特征在于,还包括:
第一获取子模块,用于获取待查询的日志时间段;
第一查询子模块,用于根据所述日志关键词和日志时间段生成日志查询请求,并根据所述日志查询请求调用预设的日志查询服务,获得所述日志查询服务响应所述日志查询请求返回的日志集合。
8.根据权利要求7所述的基于日志的链路追踪装置,其特征在于,还包括:
第二查询子模块,用于根据所述日志关键词和所述日志时间段生成S个日志查询请求,其中,S为预设的时间子段个数,S为大于1的正整数,每个日志查询请求只覆盖一个时间子段,并根据所述日志查询请求调用预设的日志查询服务,获取所述日志查询服务响应所述日志查询请求返回的S个日志集合;
第一解析子模块,用于解析每个日志集合中的每条日志,获得每条日志的traceID和生成时间;
第一聚合子模块,用于将所述S个日志集合中具有相同traceID的日志聚合,获得与traceID对应的R个日志子集,其中,每个日志子集对应一个traceID;
第一展示子模块,用于根据所述生成时间对所述日志子集中的日志排序,根据排序后的日志获得与所述日志子集对应的traceID的链路调用信息。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至5中任一项所述的基于日志的链路追踪方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至5中任一项所述的基于日志的链路追踪方法的步骤。
CN202110913657.7A 2021-08-10 2021-08-10 基于日志的链路追踪方法、装置、计算机设备及存储介质 Pending CN113590372A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110913657.7A CN113590372A (zh) 2021-08-10 2021-08-10 基于日志的链路追踪方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110913657.7A CN113590372A (zh) 2021-08-10 2021-08-10 基于日志的链路追踪方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN113590372A true CN113590372A (zh) 2021-11-02

Family

ID=78256767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110913657.7A Pending CN113590372A (zh) 2021-08-10 2021-08-10 基于日志的链路追踪方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113590372A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228353A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Query classification based on query click logs
CN103853743A (zh) * 2012-11-29 2014-06-11 百度在线网络技术(北京)有限公司 一种分布式系统及其日志查询方法
CN110019077A (zh) * 2018-08-21 2019-07-16 平安科技(深圳)有限公司 日志查询方法、装置、设备及计算机可读存储介质
CN111459766A (zh) * 2019-11-14 2020-07-28 国网浙江省电力有限公司信息通信分公司 一种面向微服务系统的调用链跟踪与分析方法
CN111522922A (zh) * 2020-03-26 2020-08-11 浙江口碑网络技术有限公司 日志信息查询方法、装置、存储介质及计算机设备
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228353A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Query classification based on query click logs
CN103853743A (zh) * 2012-11-29 2014-06-11 百度在线网络技术(北京)有限公司 一种分布式系统及其日志查询方法
CN110019077A (zh) * 2018-08-21 2019-07-16 平安科技(深圳)有限公司 日志查询方法、装置、设备及计算机可读存储介质
CN111459766A (zh) * 2019-11-14 2020-07-28 国网浙江省电力有限公司信息通信分公司 一种面向微服务系统的调用链跟踪与分析方法
CN111522922A (zh) * 2020-03-26 2020-08-11 浙江口碑网络技术有限公司 日志信息查询方法、装置、存储介质及计算机设备
CN112612675A (zh) * 2020-12-25 2021-04-06 山东经伟晟睿数据技术有限公司 微服务架构下的分布式大数据日志链路跟踪方法及系统

Similar Documents

Publication Publication Date Title
CN112491602B (zh) 行为数据的监控方法、装置、计算机设备及介质
CN112162965B (zh) 一种日志数据处理的方法、装置、计算机设备及存储介质
CN113254445B (zh) 实时数据存储方法、装置、计算机设备及存储介质
CN113326991A (zh) 自动授权方法、装置、计算机设备及存储介质
CN113836131A (zh) 一种大数据清洗方法、装置、计算机设备及存储介质
CN112181835A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN110807050B (zh) 性能分析方法、装置、计算机设备及存储介质
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
WO2022156087A1 (zh) 数据血缘关系建立方法、装置、计算机设备及存储介质
CN112363814A (zh) 任务调度方法、装置、计算机设备及存储介质
CN112130944A (zh) 页面异常的检测方法、装置、设备及存储介质
CN115292580A (zh) 数据查询方法、装置、计算机设备及存储介质
CN115378806A (zh) 流量分配方法、装置、计算机设备及存储介质
CN114615325A (zh) 消息推送方法、装置、计算机设备及存储介质
CN113590372A (zh) 基于日志的链路追踪方法、装置、计算机设备及存储介质
CN112416875A (zh) 日志管理方法、装置、计算机设备及存储介质
CN114663073B (zh) 异常节点的发现方法及其相关设备
CN109547290B (zh) 云平台垃圾数据检测处理方法、装置、设备及存储介质
CN113806372B (zh) 新数据信息构建方法、装置、计算机设备及存储介质
CN116842050A (zh) 多维度状态数据处理方法、装置、计算机设备及存储介质
CN112632102A (zh) 数据查询方法、装置、计算机设备及存储介质
CN117194032A (zh) 一种任务执行方法、装置、设备及其存储介质
CN116795511A (zh) 一种唯一标识符生成方法、装置、计算机设备及存储介质
CN116737437A (zh) 数据分析方法、装置、计算机设备及存储介质
CN117331804A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211102