CN117608992A - 一种追踪日志信息的方法、装置、计算机设备及存储介质 - Google Patents
一种追踪日志信息的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117608992A CN117608992A CN202311604201.8A CN202311604201A CN117608992A CN 117608992 A CN117608992 A CN 117608992A CN 202311604201 A CN202311604201 A CN 202311604201A CN 117608992 A CN117608992 A CN 117608992A
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- logic
- link
- log information
- 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 93
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
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
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及埋点追踪领域,公开了一种追踪日志信息的方法、装置、计算机设备及存储介质,以解决日志采集时耗时过大的问题。该方法包括:确定不同业务场景中使用到的所有应用程序,以及不同业务场景对应的目标任务,其中,目标任务依据对应的业务场景,与业务场景对应的应用程序相关联;将每个目标任务在所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;对每个预期逻辑链路中所有关键的逻辑节点进行标记;当执行目标任务时,获取目标任务对应的预期逻辑链路,标记为正在执行的执行逻辑链路;按照执行顺序,将执行逻辑链路中被执行过的逻辑节点,标记为完成节点;将执行逻辑链路中正在执行的逻辑节点,标记为执行节点;当获取到收集执行逻辑链路中的日志信息的请求时,采集执行逻辑链路对应的完成节点和执行节点产生的所有日志信息。
Description
技术领域
本发明涉及埋点追踪领域,尤其涉及一种追踪日志信息的方法、装置、计算机设备及存储介质。
背景技术
在应用程序研发及使用的过程中,通常会生成相关的日志信息,这些日志信息包括但不仅限于研发日志或操作日志等。日志信息通常经过追踪,通常可以用于数据分析和异常处理等各种应用场景,为了更好地对日志信息进行追踪,现有技术中,通常采用ELK(全称为Elasticsearch、Logstash和Kibana)对数据进行搜索、分析,进而将日志信息的处理结果存储起来。ELK可以用于疾病辅助诊断、健康管理、远程会诊等***的日志信息追踪。
但ELK对日志的采集方式通常是在大量离散的日志中进行搜索,然后筛选出需要的日志信息,并由人力对筛选出的日志信息进行串联分析。每次从大量日志中进行追踪搜索,耗费了大量时间。
发明内容
本发明实施例提供一种追踪日志信息的方法、装置、计算机设备及存储介质,以解决日志采集时耗时过大的问题。
本发明第一方面,提供一种追踪日志信息的方法,包括:
确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
在一种可能的设计中,所述采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息之后,所述方法还包括:
获取所述执行逻辑链路对应的所述完成节点和所述执行节点;
将所述执行节点与所述执行节点对应的所述日志信息进行关联,得到第一节点;
将所述完成节点与所述完成节点对应的所述日志信息进行关联,得到第二节点;
将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路。
在一种可能的设计中,所述将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路之后,所述方法还包括:
对所述日志逻辑链路中的每个节点关联的所述日志信息进行分类,得出日志类别;
分别将所述日志类别与所述日志逻辑链路中对应的节点进行关联,得出按照所述日志类别分类的节点日志。
在一种可能的设计中,所述将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路,包括:
生成每个所述目标任务对应的任务标识符;
生成每个所述目标任务对应的业务场景的业务标识符和场景标识符;
将每个所述目标任务对应的所述任务标识符、所述业务标识符和所述场景标识符,组成所述目标任务对应的所述预期逻辑链路的链路标识符,以区分不同的所述预期逻辑链路;
分别将每个所述目标任务相关联的所述应用程序的所有执行过程,标记上所述链路标识符;
分别汇总同一个所述链路标识符标记的执行过程,作为所述预期逻辑链路。
在一种可能的设计中,所述生成每个所述目标任务对应的任务标识符,包括:
判断所述目标任务是否为单次任务;
若是,则将所述目标任务的跟踪标识符,作为所述任务标识符;
若否,则获取所述业务场景对应的预期公共标识符,作为所述任务标识符。
在一种可能的设计中,所述对每个所述预期逻辑链路中所有关键的逻辑节点进行标记,包括:
分别获取每个所述预期逻辑链路的链路标识符;
分别获取每个所述逻辑节点的节点名称;
分别将所述节点名称和所述链路标识符,组成所述节点名称对应的所述逻辑节点的节点标识符;
将每个所述预期逻辑链路中所有关键的所述逻辑节点,分别标记上所述节点标识符。
在一种可能的设计中,所述关键的逻辑节点包括所述业务场景涉及的关键执行关系,所述关键执行关系包括分支条件、串行关系、并行关系。
第二方面,提供一种追踪日志信息的装置,包括:
获取模块,用于确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
第一标记模块,用于将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
第二标记模块,用于对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
第三标记模块,用于当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
第四标记模块,用于按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
第五标记模块,用于将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
采集模块,用于当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
第三方面,提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述追踪日志信息的方法的步骤。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述追踪日志信息的方法的步骤。
上述追踪日志信息的方法、装置、计算机设备及存储介质,首先,确定不同业务场景中使用到的所有应用程序,以及不同业务场景对应的目标任务,其中,目标任务依据对应的业务场景,与业务场景对应的应用程序相关联。不同的目标任务将会在应用程序中进行不同的逻辑跳转,本发明中将这些逻辑跳转作为关键的逻辑节点,并将逻辑节点的整个执行过程看作逻辑链路。也就是,将每个目标任务在所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路,对每个预期逻辑链路中所有关键的逻辑节点进行标记。当用户需要执行目标任务时,应用程序将被触发,此时就能依据应用程序的触发点获取到目标任务对应的预期逻辑链路,也就是执行逻辑链路。按照执行顺序,将执行逻辑链路中被执行过的逻辑节点,标记为完成节点。将执行逻辑链路中正在执行的逻辑节点,标记为执行节点。当设备获取到收集所述执行逻辑链路中的日志信息的请求时,就可以依据该执行逻辑链路中的执行节点和完成节点,高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中追踪日志信息的方法的一应用环境示意图;
图2是本发明一实施例中追踪日志信息的方法的一流程示意图;
图3是本发明一实施例中追踪日志信息的方法的一流程示意图;
图4是本发明一实施例中追踪日志信息的方法的一流程示意图;
图5是本发明一实施例中追踪日志信息的方法的一流程示意图;
图6是本发明一实施例中追踪日志信息的方法的一流程示意图;
图7是本发明一实施例中追踪日志信息的方法的一流程示意图;
图8是本发明一实施例中追踪日志信息的装置的一示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,日志分析可以采用ELK或分布式会话跟踪的方式进行。其中,一方面,ELK是一种日志集中分析平台,该平台使用Elasticsearch、Logstash和Kibana技术进行搭建。其中,Elasticsearch是一个搜索和分析引擎。Logstash是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如Elasticsearch等数据库中。因此,ELK的日志分析方式实质上是在收集了大量离散日志之后,对离散日志进行筛选,进而由人工进行日志的串联分析。整个过程不仅耗时过长、需要人工干预,并且消耗了大量设备性能。另一方面,分布式会话跟踪则是在调用执行的同时,实时进行日志链路的动态串联,但由于该方法基于会话,并且该方法仅关注了不同方法间的调用关系,而现有的业务流程往往涉及多个项目,且复杂多变,因此使用分布式会话跟踪日志往往容易出现跟踪中断、最终的日志信息不完整等问题,因此分布式会话跟踪无法准确地完成完整业务逻辑的日志信息的追踪和分析。
而本发明实施例为解决上述问题,提供了一种聚焦于业务逻辑追踪的追踪日志信息的方法,可应用在如图1的应用环境中,该方法将业务执行的日志信息依据业务执行的逻辑链路为载体进行高效组织和串联,并支持对业务执行的定位还原和全链路日志信息可视化查看,从而提升通过日志信息定位异常的效率,也就是可视化全链路日志追踪。其中,终端设备通过网络与服务器进行通信。服务器依据不同业务场景下的不同目标任务,预先对预期逻辑链路和逻辑节点进行标记。接着,在不同业务场景下,用户从终端设备触发用户期望执行的目标任务,该目标任务可能涉及到一个或多个不同的应用程序,服务器接收到触发指令后,依据触发节点,标记出执行逻辑链路,再依据执行顺序标记出完成节点和执行节点。最后,用户从终端设备查找期望的日志信息,服务器接收到查找请求,也就是手机某个执行逻辑链路中的日志信息的请求时,采集该执行逻辑链路中的完成节点和执行节点的所有日志信息。其中,终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种追踪日志信息的方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10:确定不同业务场景中使用到的所有应用程序,以及不同业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联。
服务器确定不同业务场景中使用到的所有应用程序,以及不同业务场景对应的目标任务。其中,目标任务将依据目标任务对应的业务场景,与业务场景对应的应用程序相关联。
业务场景指用户在某个特定的环节需要服务器或终端设备提供的产品或服务。该服务或产品包括但不仅限于应用程序、***平台等。目标任务指用户在某个业务场景的特定环节期望得到的产品或服务,包括但不仅限于数据展示、数据查询、数据更改、数据删除等任务。目标任务将依据不同的业务场景关联一个或多个应用程序,也就是目标任务执行的过程中,其执行过程将涉及的所有应用程序。
在一可能的实现场景中,业务场景可以是医疗业务场景,包括但不仅限查询个人健康档案、处方、检查报告等场景。
S20:将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路。
预设目标任务在所有应用程序中预期的执行过程,将整个过程标记为预期逻辑链路。该步骤将依据不同的目标任务,形成不同的预期逻辑链路,每个预期逻辑链路可以与一个或多个应用程序相关联。其中,执行过程指完成业务场景中确定的工作,以满足目标任务要求的一组过程,链路指业务场景下任务执行路径,可以使用特定语言或静态描述进行描述。
链路通常包括一个或多个逻辑节点,逻辑节点将按照一定的业务规则组合而成。其中,业务规则指各个逻辑节点之间存在的执行关系,该执行关系包括但不仅限于串行关系、并行关系、条件分支等。本实施例中通过JSON或XML定义出一系列逻辑节点的组合关系,优选采用DSL(Domain Specific Language)对逻辑链路进行描述,用于实现逻辑链路从抽象定义到具体实现。
S30:对每个所述预期逻辑链路中所有关键的逻辑节点进行标记。
将每个预期逻辑链路中所有关键的逻辑节点进行标记,该关键的逻辑节点指目标任务执行过程中需要标记的节点,也就是能够确定出准确的执行过程的路径的节点,包括但不仅限于分支节点、串行节点、并行节点等。
S40:当执行所述目标任务时,将所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路。
在某一业务场景下,用户期望执行某个目标任务时,用户通过终端设备发起执行该目标任务的指令,服务器接收到指令后,开始执行该目标任务,也就是开始执行目标任务对应的预期逻辑链路。将正在被执行的这一预期逻辑链路标记为正在执行的执行逻辑链路。
S50:按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点。
按照执行逻辑链路的执行顺序,将执行链路中被执行过的逻辑节点,标记为完成节点。
具体地,本实施例中,在预期逻辑链路被执行的过程中,通过透传串联标识,确定是哪个预期逻辑链路正在被执行,以及执行到了哪个逻辑节点。例如,预期逻辑链路的A节点被触发执行,则该预期逻辑链路将被作为执行逻辑链路,将在后续的链路和逻辑节点中传递串联标识,随着目标任务的执行,逐步完成整个执行逻辑链路的染色,也就是逐步将所有逻辑节点标记为完成节点。
S60:将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点。
将执行逻辑链路中正在被执行的逻辑节点,标记为执行节点。也就是,将执行链路中正在被执行的逻辑节点,作为执行节点,以便后续步骤S70中,能够直接、准确地定位到执行逻辑链路的执行位置,以准确地获取到执行逻辑链路上的日志信息。
S70:当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
用户可以通过终端设备发送收集日志信息的请求,服务器获取到收集日志信息的请求后,确定该请求的日志信息需要从哪个执行逻辑链路中获取,将执行逻辑脸书对应的完成节点和执行节点的所有日志信息。
需要说明的是,首先,确定不同业务场景中使用到的所有应用程序,以及不同业务场景对应的目标任务,其中,目标任务依据对应的业务场景,与业务场景对应的应用程序相关联。不同的目标任务将会在应用程序中进行不同的逻辑跳转,本发明中将这些逻辑跳转作为关键的逻辑节点,并将逻辑节点的整个执行过程看作逻辑链路。也就是,将每个目标任务在所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路,对每个预期逻辑链路中所有关键的逻辑节点进行标记。当用户需要执行目标任务时,应用程序将被触发,此时就能依据应用程序的触发点获取到目标任务对应的预期逻辑链路,也就是执行逻辑链路。按照执行顺序,将执行逻辑链路中被执行过的逻辑节点,标记为完成节点。将执行逻辑链路中正在执行的逻辑节点,标记为执行节点。当设备获取到收集所述执行逻辑链路中的日志信息的请求时,就可以依据该执行逻辑链路中的执行节点和完成节点,高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,步骤S70中,用户还可以通过终端设备向服务器发送收集某个执行节点的日志信息的请求,服务器接收到该请求后,通过定位执行节点所在的执行逻辑链路,获取到对应的完成节点,进而向客户端返回该完成节点和执行节点所有的日志信息,以有效提升了日志采集、搜索的效率。
在一实施例中,如图3所示,步骤S70之后,即采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息,该追踪日志信息的方法还包括如下步骤:
S81:获取所述执行逻辑链路对应的所述完成节点和所述执行节点。
S82:将所述执行节点与所述执行节点对应的所述日志信息进行关联,得到第一节点。
S83:将所述完成节点与节点对应的所述日志信息进行关联,得到第二节点。
S84:将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路。
本实施例中,获取执行逻辑对应的完成节点和执行节点,接着,将执行节点与该执行节点对应的日志信息进行关联,得到第一节点,并将完成节点与该完成节点对应的日志信息进行关联,得到第二节点。最后,将第一节点与第二节点按照执行顺序进行串联,得到日志逻辑链路。
需要说明的是,本实施例中之所需要将日志信息与对应的节点相关联,实质上是为了生成最终与日志信息相关联的日志逻辑链路。该日志逻辑链路能够直观地向用户展示出每个日志信息所产生的执行顺序,以及每个日志信息所处的逻辑节点,有效地提升了用户定位异常原因的速度和准确度。同时,也可以,在后续步骤中,直接通过日志逻辑链路得出该链路上所有节点的日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,如图4所示,步骤S84之后,即将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路之后,该追踪日志信息的方法还包括如下步骤:
S91:对所述日志逻辑链路中的每个节点关联的所述日志信息进行分类,得出日志类别。
S92:分别将所述日志类别与所述日志逻辑链路中对应的节点进行关联,得出按照所述日志类别分类的节点日志。
本实施例中,首先,对日志逻辑链路中的每个节点关联的日志信息进行分类,得出日志类别。接着,分别将日志类别和日志逻辑链路中对应的节点进行关联,得出按照日志类别分类的节点日志。其中,日志类别包括但不仅限于WRAN(警告)、ERRO(错误,全称为error)、INFO(信息,全称为information)等。
需要说明的是,本实施例实质上是将日志逻辑链路上每个节点上的日志信息进行了分类,使得该日志逻辑链路能够更直观地向用户展示出每个日志信息所产生的执行顺序,以及每个日志信息所处的逻辑节点,有效地提升了用户定位异常原因的速度和准确度。同时,也可以在后续步骤中,直接通过日志逻辑链路得出该链路上所有节点的日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,步骤S92之后,还可以依据用户输入的优先级或用户预先配置的优先级,对日志类别进行排序。从而将优先级更高的日志类别,排在更加靠前的位置,例如,用户预先配置了日志类别的优先级为ERRO类别高于WARN类别,WARN类别高于INFO类别,此时,日志类别为ERRO的日志信息将被排列在最前面,接着将是WARN类别的日志信息,最后是INRO类别的日志信息。该步骤使得用户能够依据实际情况对生成的日志信息进行排序,更加直观、高效、准确地定位异常原因,同时,也可以在后续步骤中,直接通过日志逻辑链路得出该链路上所有节点的日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,如图5所示,步骤S20中,即将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路,具体包括如下步骤:
S21:生成每个所述目标任务对应的任务标识符。
S22:生成每个所述目标任务对应的业务场景的业务标识符和场景标识符。
S23:将每个所述目标任务对应的所述任务标识符、所述业务标识符和所述场景标识符,组成所述目标任务对应的所述预期逻辑链路的链路标识符,以区分不同的所述预期逻辑链路。
S24:分别将每个所述目标任务相关联的所述应用程序的所有执行过程,标记上所述链路标识符。
S25:分别汇总同一个所述链路标识符标记的执行过程,作为所述预期逻辑链路。
本实施例中,首先,生成每个目标任务对应的任务标识符,该任务标识符为任务唯一标识符,可以是任务ID(全称为Identity Document),也可以是任务名称等,此处不做限定。
然后,生成每个目标任务对应的业务场景的业务标识符和场景标识符。其中,业务指需要处理的事务,业务标识符指业务唯一标识符,可以是业务ID,也可以是业务名称,此处不做限定。场景指事务产生的某种条件,这个条件包括但不限于环境、时间、地点、空间等,只有条件满足,才会产生特定的事务。场景标识符指场景唯一标识符,可以是场景ID,也可以是场景名称,此处不做限定。
接着,将每个目标任务对应的任务标识符、业务标识符和场景标识符,组成该目标任务对应的预期逻辑链路的链路标识符,用于区分不同的预期逻辑链路。该步骤实质上是生成了预期逻辑链路的唯一标识符。
最后,分别将每个目标任务相关联的所有应用程序的所有执行过程,标记上该链路标识符,并分别汇总同一个链路标识符标记的执行过程,作为预期逻辑链路。
具体地,本实施例中,首先确定链路标识符,也就是串联标识。当预期逻辑链路被触发时,即可确定对应的链路标识符。将该链路标识符在链路上进行标记,使得该预期逻辑链路被标记为执行逻辑链路。
例如,链路标识符直接由“业务标识符+场景标识符+任务标识符”组成的字符串构成,意为某个业务场景下的某个任务。接着将该链路标识符,标记在预期逻辑链路上,使之成为执行逻辑链路。
需要说明的是,本实施例实质上提供了一种标记执行逻辑链路的方式,本方式通过透传链路标识符,简单、有效地标记出正在执行的执行逻辑链路,以便在后续步骤中,准确、高效地查询出对应的执行逻辑链路,进而得到该执行逻辑链路中的执行节点和完成节点,高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,如图6所示,步骤S21中,即生成每个所述目标任务对应的任务标识符,具体包括如下步骤:
S211:判断所述目标任务是否为单次任务。
S212:若是,则将所述目标任务的跟踪标识符,作为所述任务标识符。
S213:若否,则获取所述业务场景对应的预期公共标识符,作为所述任务标识符。
本实施例中,判断目标任务是否为单次任务,也就是单次调用,不会被多次调用、执行。若是,则将目标任务的跟踪标识符(traceID)作为任务标识符。若否,则获取业务场景对应的预期公共标识符,作为任务标识符。该预期公共标识符可以通过业务场景在预先设定的配置文件中读取,也可以每次通过终端设备获取,此处不做限定。
例如,当标识传递至“E”节点时,则表示“D”条件分支的判断结果是“true”,同时动态地将“E”节点串联至已执行的链路中。
需要说明的是,本实施例提供了一种高效、简洁的任务标识符的生成方式,有效避免了多次调用的情况下,任务标识符可能重复的异常情况。因此在生成任务标识符之前,先对目标任务是否会被多次调用进行判断,进而将单次调用的目标任务的跟踪标识符作为任务标识符,将被多次调用的目标任务依据预先配置读取其唯一标识符,作为任务标识符。从而准确、高效地生成执行逻辑链路的唯一链路标识符,防止链路标识符出现重复,导致程序异常、出错,进而在后续步骤中能够准确地得到该执行逻辑链路中的执行节点和完成节点,高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,如图7所示,步骤S30中,即对每个所述预期逻辑链路中所有关键的逻辑节点进行标记,具体包括如下步骤:
S31:分别获取每个所述预期逻辑链路的链路标识符。
S32:分别获取每个所述逻辑节点的节点名称。
S33:分别将所述节点名称和所述链路标识符,组成所述节点名称对应的所述逻辑节点的节点标识符。
S34:将每个所述预期逻辑链路中所有关键的所述逻辑节点,分别标记上所述节点标识符。
本实施例中,分别获取每个预期逻辑链路的链路标识符,该链路标识符的获取方式可以依据步骤S21-S25获得,此处不复赘述。然后,分别获取每个逻辑节点的节点名称,接着,分别将节点名称和链路标识符,组成该节点名称对应的逻辑节点的节点标识符。最后,在每个预期逻辑链路中所有关键的逻辑节点上,分别标记上节点标识符,用于实现步骤S30中逻辑节点的标记。
需要说明的是,本实施例实质上提供了节点标识符,也就是节点的唯一标识符的生成方式,依据节点名称和链路标识符组成节点的唯一标识符,以便后续步骤中能够准确地对完成节点和执行节点进行标记,另外,也能够在用户对特定节点或执行逻辑链路进行日志信息收集时,准确、高效地地位出具体的完成节点和执行节点,从而高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
在一实施例中,步骤S30或S34中,其中,关键的逻辑节点包括所述业务场景涉及的关键执行关系,所述关键执行关系包括分支条件、串行关系、并行关系。其中,分支条件包括但不仅限于程序代码中的if-else、switch等分支判断条件。并行关系包括但不仅限于程序代码中不同线程、异步操作间的并行关系。串行关系指程序代码中逐一执行的函数方法间的关系。
需要说明的是,本实施例实质上明确了关键逻辑节点的内容。其中,包括了程序代码在执行过程中的各种可能情况,也就是本发明实质上对程序代码中的各种可能情况都在预期逻辑链路上进行了标记,以便后续无论用户期望检索任意一个执行节点,都可以得出所有的完成节点和执行节点的日志信息,防止搜索出的日志信息出现遗漏导致后续工作的复杂性。进而准确、高效地地位出具体的完成节点和执行节点,从而高效采集到完成节点和执行节点产生的所有日志信息,有效提升了日志采集、搜索的效率。
值得注意的是,本实施例由于对关键逻辑节点得标记,使得本实施例追踪日志信息比现有技术中分布式会话追中的方式更加准确、范围更大。
本发明中通过可视化全逻辑链路的日志信息,对日志信息进行追踪,将异常排查的耗时由小时级降低至分钟级别。在实际的应用中,异常排查的平均速度降低至五分钟以内。同时该追踪日志信息的方法也可以提供给测试人员进行测试辅助,利用将日志信息进行串联并展示的方式,提升了开发人员进行自测和测试人员进行测试的效率。另外,本实施例中采用DSL对逻辑链路进行描述,该方式只需要进行简单的日志上报改造,即可快速接入,有效防止了该方法接入不同应用场景时,需要进行过多的代码改动。
值得注意的是,由于本发明中标记了所有可能的逻辑链路,因此,无论需要查询任意一个执行节点,都可以被追踪到。相较于现有技术中分布式会话追踪的方式,本发明所追踪的日志信息的范围更广。另外,由于本发明支持通过链路的方式可视化展示查询到的日志信息,使得整体操作更加简单,开发人员或测试人员能够简单、高效地通过可视化展示的日志链路,高效地追踪到异常发生的原因。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种追踪日志信息的装置,该追踪日志信息的装置与上述实施例中追踪日志信息的方法一一对应。如图8所示,该追踪日志信息的装置包括获取模块10、第一标记模块20、第二标记模块30、第三标记模块40、第四标记模块50、第五标记模块60和采集模块70。各功能模块详细说明如下:
获取模块10,用于确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
第一标记模块20,用于将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
第二标记模块30,用于对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
第三标记模块40,用于当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
第四标记模块50,用于按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
第五标记模块60,用于将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
采集模块70,用于当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
关于追踪日志信息的装置的具体限定可以参见上文中对于追踪日志信息的方法的限定,在此不再赘述。上述追踪日志信息的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储上述追踪日志信息的方法中所产生的各类数据,包括不仅限于日志信息、各类标识符等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种追踪日志信息的方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种追踪日志信息的方法,其特征在于,包括:
确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
2.如权利要求1所述追踪日志信息的方法,其特征在于,所述采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息之后,所述方法还包括:
获取所述执行逻辑链路对应的所述完成节点和所述执行节点;
将所述执行节点与所述执行节点对应的所述日志信息进行关联,得到第一节点;
将所述完成节点与所述完成节点对应的所述日志信息进行关联,得到第二节点;
将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路。
3.如权利要求2所述追踪日志信息的方法,其特征在于,所述将所述第一节点和所述第二节点按照执行顺序进行串联,得到日志逻辑链路之后,所述方法还包括:
对所述日志逻辑链路中的每个节点关联的所述日志信息进行分类,得出日志类别;
分别将所述日志类别与所述日志逻辑链路中对应的节点进行关联,得出按照所述日志类别分类的节点日志。
4.如权利要求1所述追踪日志信息的方法,其特征在于,所述将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路,包括:
生成每个所述目标任务对应的任务标识符;
生成每个所述目标任务对应的业务场景的业务标识符和场景标识符;
将每个所述目标任务对应的所述任务标识符、所述业务标识符和所述场景标识符,组成所述目标任务对应的所述预期逻辑链路的链路标识符,以区分不同的所述预期逻辑链路;
分别将每个所述目标任务相关联的所述应用程序的所有执行过程,标记上所述链路标识符;
分别汇总同一个所述链路标识符标记的执行过程,作为所述预期逻辑链路。
5.如权利要求4所述追踪日志信息的方法,其特征在于,所述生成每个所述目标任务对应的任务标识符,包括:
判断所述目标任务是否为单次任务;
若是,则将所述目标任务的跟踪标识符,作为所述任务标识符;
若否,则获取所述业务场景对应的预期公共标识符,作为所述任务标识符。
6.如权利要求1所述追踪日志信息的方法,其特征在于,所述对每个所述预期逻辑链路中所有关键的逻辑节点进行标记,包括:
分别获取每个所述预期逻辑链路的链路标识符;
分别获取每个所述逻辑节点的节点名称;
分别将所述节点名称和所述链路标识符,组成所述节点名称对应的所述逻辑节点的节点标识符;
将每个所述预期逻辑链路中所有关键的所述逻辑节点,分别标记上所述节点标识符。
7.如权利要求1或6所述追踪日志信息的方法,其特征在于,所述关键的逻辑节点包括所述业务场景涉及的关键执行关系,所述关键执行关系包括分支条件、串行关系、并行关系。
8.一种追踪日志信息的装置,其特征在于,包括:
获取模块,用于确定不同业务场景中使用到的所有应用程序,以及不同所述业务场景对应的目标任务,其中,所述目标任务依据对应的所述业务场景,与所述业务场景对应的所述应用程序相关联;
第一标记模块,用于将每个所述目标任务在所述所有应用程序中预期的执行过程,分别标记为不同的预期逻辑链路;
第二标记模块,用于对每个所述预期逻辑链路中所有关键的逻辑节点进行标记;
第三标记模块,用于当执行所述目标任务时,获取所述目标任务对应的所述预期逻辑链路,标记为正在执行的执行逻辑链路;
第四标记模块,用于按照执行顺序,将所述执行逻辑链路中被执行过的所述逻辑节点,标记为完成节点;
第五标记模块,用于将所述执行逻辑链路中正在执行的所述逻辑节点,标记为执行节点;
采集模块,用于当获取到收集所述执行逻辑链路中的日志信息的请求时,采集所述执行逻辑链路对应的所述完成节点和所述执行节点产生的所有日志信息。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述追踪日志信息的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述追踪日志信息的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311604201.8A CN117608992A (zh) | 2023-11-27 | 2023-11-27 | 一种追踪日志信息的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311604201.8A CN117608992A (zh) | 2023-11-27 | 2023-11-27 | 一种追踪日志信息的方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117608992A true CN117608992A (zh) | 2024-02-27 |
Family
ID=89952946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311604201.8A Pending CN117608992A (zh) | 2023-11-27 | 2023-11-27 | 一种追踪日志信息的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117608992A (zh) |
-
2023
- 2023-11-27 CN CN202311604201.8A patent/CN117608992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN109672741B (zh) | 微服务监控方法、装置、计算机设备和存储介质 | |
US8151248B1 (en) | Method and system for software defect management | |
CN110704297B (zh) | 代码评审方法、装置、计算机设备及存储介质 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN108427613B (zh) | 异常接口定位方法、装置、计算机设备和存储介质 | |
CN109766261B (zh) | 覆盖测试方法、装置、计算机设备和存储介质 | |
CN111178069B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US11809406B2 (en) | Event records in a log file | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN113342685A (zh) | 精准测试方法、装置、计算机设备和存储介质 | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN106557419B (zh) | 程序的测试方法及装置 | |
CN111597069A (zh) | 程序处理方法、装置、电子设备和存储介质 | |
CN114168565B (zh) | 业务规则模型的回溯测试方法、装置、***及决策引擎 | |
CN111737148A (zh) | 自动回归测试方法、装置、计算机设备及存储介质 | |
CN112835779A (zh) | 测试用例确定方法、装置、计算机设备 | |
CN109522206B (zh) | 异常数据定位方法、装置、计算机设备及存储介质 | |
Brent et al. | A versatile framework for painless benchmarking of database management systems | |
CN115629940A (zh) | 一种微服务全链路追踪方法、装置、***及介质 | |
CN117608992A (zh) | 一种追踪日志信息的方法、装置、计算机设备及存储介质 | |
CN116414594A (zh) | 故障树更新方法、装置、计算机设备和存储介质 | |
CN113704114A (zh) | 功能接口的自动化测试方法、装置、设备及介质 | |
CN113572900A (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 |