CN110083581B - 一种日志追溯的方法、装置、存储介质及计算机设备 - Google Patents

一种日志追溯的方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN110083581B
CN110083581B CN201910191040.1A CN201910191040A CN110083581B CN 110083581 B CN110083581 B CN 110083581B CN 201910191040 A CN201910191040 A CN 201910191040A CN 110083581 B CN110083581 B CN 110083581B
Authority
CN
China
Prior art keywords
service
log data
identifier
target
calling
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
CN201910191040.1A
Other languages
English (en)
Other versions
CN110083581A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910191040.1A priority Critical patent/CN110083581B/zh
Publication of CN110083581A publication Critical patent/CN110083581A/zh
Application granted granted Critical
Publication of CN110083581B publication Critical patent/CN110083581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种日志追溯的方法、装置、存储介质及计算机设备,其中,该方法包括:调用第一对象的目标服务,并确定目标服务与当前的目标调用流程唯一对应的服务标识;根据服务标识生成用于表示调用目标服务的第一日志数据;指示第一对象根据服务标识生成用于表示目标服务被调用的第二日志数据;在测试过程中确定目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并确定目标调用流程的异常原因。该方法以调用流程为一组生成服务标识,在该流程内发生服务调用的过程时,基于该服务标识生成与调用操作相应的日志数据,从而在调用流程异常时通过该服务标识即可快速查询到相关的日志数据,进而方便用户快速确定问题并解决该问题。

Description

一种日志追溯的方法、装置、存储介质及计算机设备
技术领域
本发明涉及产品测试技术领域,特别涉及一种日志追溯的方法、装置、存储介质及计算机设备。
背景技术
目前,很多平台每天会产生大量的日志(比如搜索引擎的页面浏览量,查询等),处理这些日志需要特定的日志组件或系统,目前一般使用开源日志组件。现有的开源日志组件只是帮助用户记录日志的框架,以及给定时间戳、日志级别分类、自定义日志输出格式等。
对于分布式服务,接口与接口之间存在交互调用;如果同一请求在短时间内请求多次,当服务本身存在缺陷、问题需要解决和分析的时候,由于接口请求并发量非常大,往往被调接口方会记录多份不同的日志。由于跨系统、跨服务以及接口请求通信中的时间损耗,如果按照时间去找对应问题请求的日志,将不容易确认和分析,存在不确定性。在生成环境中此类问题也较多,所以不确定性导致生产环境的场景将拆为多个来进行内网复现分析,加大了测试工作量,当一个业务流程涉及较多服务和接口调用的时候,多个日志会交替记录在一起,难以筛选并追溯日志中存在的问题。
发明内容
为解决上述技术问题,本发明提供一种日志追溯的方法、装置、存储介质及计算机设备。
根据本发明的第一个方面,提供一种日志追溯的方法,包括:
调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,所述目标调用流程为调用所述目标服务的过程所处的流程;
根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据;
在测试过程中确定所述目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据所述有效日志数据确定所述目标调用流程的异常原因;所述有效日志数据为与所述目标调用流程的服务标识对应的日志数据,包括所述第一日志数据和所述第二日志数据。
根据本发明的第二个方面,提供一种日志追溯的装置,包括:
服务调用模块,用于调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,所述目标调用流程为调用所述目标服务的过程所处的流程;
生成日志模块,用于根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据;
追溯模块,用于在测试过程中确定所述目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据所述有效日志数据确定所述目标调用流程的异常原因;所述有效日志数据为与所述目标调用流程的服务标识对应的日志数据,包括所述第一日志数据和所述第二日志数据。
根据本申请的第三个方面,提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被处理器执行时实现日志追溯的步骤。
根据本申请的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现日志追溯的步骤。
本发明实施例提供的一种日志追溯的方法、装置、存储介质及计算机设备,以调用流程为一组生成服务标识,在该流程内发生服务调用的过程时,基于该服务标识生成与调用操作相应的日志数据,从而在调用流程异常时通过该服务标识即可快速查询到相关的日志数据,进而方便用户快速确定问题并解决该问题。同时,调用方和被调用方分别基于该服务标识生成调用操作和被调用操作相关的日志数据,也方便后续建立调用操作的日志数据与被调用操作的日志数据之间的关联,更有利于用户查看服务调用的整个过程。通过对同一调用流程的每次调用过程依次设置序号,使得后续需要追溯日志时,方便用户基于该序号来确定服务调用顺序,更有利于快速确定问题。通过同步判断相应的子标识是否相同,可以更快速找到不同的子标识,从而快速剔除海量日志数据中不匹配的数据。通过倒序判断子标识是否相同,可以进一步查找到待定服务标识与标准服务标识之间不同的字符,从而快速剔除与标准服务标识不相关的日志数据,进而快速查询到有效日志数据。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的一种日志追溯的方法流程图;
图2为本发明实施例提供的日志追溯的方法中,生成日志数据的具体方法流程图;
图3为本发明实施例提供的日志追溯的方法中,查询与目标调用流程的服务标识对应的有效日志数据的具体方法流程图;
图4为本发明实施例提供的日志追溯的装置的第一结构示意图;
图5为本发明实施例提供的日志追溯的装置的第二结构示意图;
图6为本发明实施例提供的用于执行日志追溯方法的计算机设备的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供的一种日志追溯的方法,参见图1所示,包括:
步骤101:调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,该目标调用流程为调用目标服务的过程所处的流程。
本发明实施例中,第一对象是与本地对象不同的另一个对象。具体的,本地对象和第一对象可以是两个不同的平台,例如本地对象是终端,第一对象是服务器;或者,本地对象和第一对象处于同一平台中,只是二者为不同的部分,或者二者具有不同的服务。其中,本发明实施例中的“服务”指的是用以支持设备各种功能的服务,通过开启或者关闭服务可以管理相应的功能。该目标服务为一种服务,且目标服务是第一对象中的一个服务。该目标对象具体可以为分布式服务,比如EJB(Enterprise JavaBean)、WCF(WindowsCommunication Foundation,Windows通讯开发平台)等。本地对象与第一对象之间设有接口,供二者之间调用双方的服务,以实现相应的功能。
本发明实施例中,在发生服务调用时,会建立与该调用过程相关的调用流程的服务标识;其中,本发明实施例中的“调用流程”指的是该调用服务这一过程所在的流程,一个完整的调用流程可能包含一个或多个调用服务的过程。即,本实施例中调用目标服务的过程是该目标调用流程中的一个过程。具体的,本地对象在调用第一对象的目标服务的同时,可以确定与调用该目标服务的调用流程对应的服务标识;其中,该服务标识可以是本地对象调用目标服务时由本地对象生成的一个标识,也可以是本地对象基于触发调用该目标服务的之前过程的服务标识。例如,用户通过第三方平台向商家进行支付的流程,该支付流程中,用户的终端首先调用商家后台的订单服务,之后商家后台再调用第三方平台的支付服务;本发明实施例中,该支付流程是一个完整的流程,即其对应一个调用流程,在该调用流程中,包含两次的服务调用过程,即用户终端调用商家后台订单服务的过程和商家平台调用第三方平台的支付服务的过程。若本地对象为用户终端,用户终端为该支付流程的起点,此时可以由用户终端生成该支付流程对应的服务标识;若本地对象为商家平台,则由于商家平台是该支付流程中间的一环,即支付流程的服务标识已经确定了,此时本地对象(商家平台)可以从用户终端出获取服务标识,例如,用户终端在请求调用商家平台的订单服务时,用户终端所发送的调用请求中包含该支付流程的服务标识。
步骤102:根据服务标识生成用于表示调用目标服务的第一日志数据;将服务标识发送至第一对象,指示第一对象根据服务标识生成用于表示目标服务被调用的第二日志数据。
本地对象发生调用服务的操作时,即可生成一条相应的日志数据,该日志数据中可以包含时间戳、日志级别分类、自定义日志输出格式等,同时,本发明实施例中,生成的日志数据还包含与调用流程对应的服务标识。具体的,本地对象调用第一对象的目标服务时,生成与该调用过程相应的第一日志数据,且该第一日志数据是与服务标识相关的;例如,第一日志数据中设有标识字段,该标识字段用于存储相应的服务标识。
同时,服务的调用双方(本地对象和第一对象)均需要记录相应的日志数据。具体的,本地对象将服务标识发送至第一对象。本领域技术人员可以理解,本地对象可以在向第一对象发送调用目标服务的请求时,一并将该服务标识发送给第一对象,也可以在本地对象成功调用目标服务之后再讲服务标识发送给第一对象,本实施例并不用于限定本地对象将服务标识发送至第一对象的发送时机。本地对象调用目标服务时,对于第一对象而言,该目标服务被调用,同样可以基于服务标识生成标识该目标服务被调用的日志数据,即第二日志数据。利用服务标识生成日志数据,方便后续查询。
步骤103:在测试过程中确定目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据有效日志数据确定目标调用流程的异常原因;有效日志数据为与目标调用流程的服务标识对应的日志数据,包括第一日志数据和第二日志数据。
本发明实施例中,调用服务的过程可以发生在多个时间节点、可以调用不同的服务、也可以是不同的对象执行调用过程,发生调用服务的过程就会生成日志数据,即在开发测试等实际应用场景中,会产生大量的日志数据。在测试过程中,当发生异常时,通过故障日志可以确定该故障属于哪个调用流程,即可以确定哪个调用流程异常。此时,在所有的日志数据中即可查询与该异常的调用流程的服务标识相对应的日志数据,并将与该服务标识对应的所有日志数据作为有效日志数据,从而方便用户在发现问题时快速追溯与问题相关的日志数据,进而根据追溯到的有效日志数据确定调用流程的异常原因。
传统查询关键字查询方式,一般以时间、服务名称(接口名称)或对象名称为关键词进行查询,由于同一时间内可能存在大量的日志数据,同一接口的调用量可能很大,或者某个对象会多次调用一个或多个服务,因此,传统的查询方式会需要消耗大量的人力筛选出与该问题相关的日志数据;而本发明实施例中通过以调用流程为一组,为其中的每一个相关的日志数据关联同一个服务标识,从而在调用流程异常时可以快速定位到相关的日志数据(即有效日志数据),进而方便用户快速确定问题并解决该问题。
本发明实施例提供的一种日志追溯的方法,以调用流程为一组生成服务标识,在该流程内发生服务调用的过程时,基于该服务标识生成与调用操作相应的日志数据,从而在调用流程异常时通过该服务标识即可快速查询到相关的日志数据,进而方便用户快速确定问题并解决该问题。同时,调用方和被调用方分别基于该服务标识生成调用操作和被调用操作相关的日志数据,也方便后续建立调用操作的日志数据与被调用操作的日志数据之间的关联,更有利于用户查看服务调用的整个过程。
在上述实施例的基础上,在步骤101“调用第一对象的目标服务”之前,该方法还包括:
步骤A1:获取第二对象发送的用于基于本地对象的本地服务调用目标服务的调用请求,调用请求包括与目标调用流程唯一对应的服务标识。
本发明实施例中,第二对象也是与本地对象不同的一个对象。本地对象可以调用其他对象(例如第一对象)的服务,其他对象(例如第二对象)也可以调用本地对象的服务,即本地服务。当第二对象需要调用本地对象的本地服务时,第二对象向本地对象发送相应的调用请求。其中,当第二对象只是需要调用本地对象的服务时,则第二对象发送的调用请求只是用于调用本地服务,即本地服务被第二对象调用这一调用流程与本地对象调用目标服务这一调用流程是两个流程,二者具有不同的服务标识。当第二对象需要通过本地对象来调用第一对象的目标服务时,则如上述步骤A1所对应的,第二对象发送的调用请求是基于本地对象的本地服务来调用第一对象的目标服务的请求,此时,本地对象在接收到第二对象发送的调用请求后,即可发生本地服务被调用的过程,且该过程与上述实施例中步骤101中的调用目标服务的过程位于同一个调用流程,即步骤A1中调用请求所包含的服务标识与上述步骤101中所确定的服务标识是同一个标识,本地对象在接收到第二对象发送的调用请求后,触发了调用第一对象的目标服务的操作。
步骤A2:根据服务标识生成用于表示本地服务被调用的第三日志数据。
本发明实施例中,与上述实施例中生成第二日志数据类似,在发生本地服务被调用的操作时,生成用于表示本地服务被调用的第三日志数据;同样的,与上述实施例中生成第一日志数据类似,第二对象也可以生成用于表示调用本地服务的日志数据。相应的,当该目标调用流程发生异常时,所确定的有效日志数据至少包括第一日志数据、第二日志数据、第三日志数据和用于表示第二对象调用本地服务的日志数据。
本发明实施例中,当出现报错时,用户可以基于日志中的服务标识追溯有问题的日志数据,并分析问题所在。利用服务标识可以方便快速地进行追溯,实现问题定位。该方法通过设置唯一的服务标识,使得复杂业务的线上问题容易定位和分析;使得系统日志代码容易检索,可以提升检索、阅读的效率;准确的线上场景定位可以减少测试人员在内网复现所尝试的可能场景、提升测试效率。
在上述实施例的基础上,服务封装有一个或多个方法(method),例如,本地服务或第一对象的目标服务中可能存在多个方法,由于同一服务中的方法可以在服务内调用,故在调用本地服务的同时,可能需要调用本地服务内的方法。具体的,当需要调用本地服务中的目标方法时,生成与当前的调用方法流程唯一对应的方法标识;之后根据服务标识和方法标识生成用于表示本地服务中的目标方法被调用的第四日志数据。
本发明实施例中,目标方法为本地服务中的一个可调用的方法,与上述调用服务类似,在调用方法过程中也可以生成与调用方法的流程唯一对应的方法标识,即通过不同的方法标识来区分不同得调用方法流程,且一个调用方法流程中可能包含调用多个方法的操作。之后,即可根据服务标识和方法标识生成用于表示本地服务中的目标方法被调用的第四日志数据,该第四日志数据也是一条与目标调用流程的服务标识对应的日志数据。其中,由于方法调用是在本地服务内的,也可以将该第四日志数据作为第三日志数据的一个子数据,本实施例对此不做限定。
本发明实施例通过对本地服务内方法的调用过程设置相应的方法标识,可以在发生故障时进一步以方法标识作为关键字进行查询,从而可以保证整个流程到方法级别都是可以按标识来准确追溯和检索。
在上述实施例的基础上,参见图2所示,步骤102“根据服务标识生成用于表示调用目标服务的第一日志数据;将服务标识发送至第一对象,指示第一对象根据服务标识生成用于表示目标服务被调用的第二日志数据”具体包括:
步骤1021:根据调用目标服务的过程在目标调用流程中的顺序确定与调用目标服务的过程相对应的第一序号,并根据服务标识和第一序号生成用于表示调用目标服务的第一日志数据。
本发明实施例中,本地对象调用目标服务时,确定与该调用过程相应的序号,即第一序号,该第一序号用于表示调用目标服务这一过程在整个调用流程中的顺序。其中,与确定服务标识的过程类似,若本地对象为在调用流程中的第一个节点,则本地对象首次生成该第一序号;若本地对象是调用流程中的一个中间节点,则本地对象基于在先的节点所确定的序号来生成本地的第一序号。同时,生成的第一日志数据也记录有该第一序号,以方便后续追溯流程。
步骤1022:确定第一序号下一顺位的第二序号,并将服务标识和第二序号发送至第一对象,指示第一对象根据服务标识和第二序号生成用于表示目标服务被调用的第二日志数据。
本发明实施例中,每个日志数据中均设有相应的序号,且序号是按照执行顺序依次确定的,即第二序号是第一序号的下一顺位的序号。具体的,可以通过加一处理来生成下一顺位的序号,例如,第一序号为01,则第二序号为02。本发明实施例中通过对同一调用流程的每次调用过程依次设置序号,使得后续需要追溯日志时,方便用户基于该序号来确定服务调用顺序,更有利于快速确定问题。
可选的,当调用方法时,也可以为相应的方法调用过程依次设置方法序号。过序号来表示当前调用的层级。例如,当生成方法标识时设置初始序号(比如0),之后该目标方法每被调用一次,则在被调方记录的目标方法的序号基础上进行加一处理,即被调方日志中的方法标识的序号比调用方记录的方法标识的序号大1。通过该序号可以确定该目标方法是被第几层级调用的,或者说当前的调用方与生成该方法标识的最初始调用方之间的距离。
在上述实施例的基础上,参见图3所示,上述步骤103“在所有已记录的日志数据中查询有效日志数据”包括:
步骤1031:将异常的目标调用流程的服务标识作为标准服务标识,将待查询的日志数据的服务标识作为待定服务标识,按照相同的分段规则将标准服务标识和待定服务标识分别分为多个子标识,该待查询的日志数据为所述已记录的日志数据中的一个。
步骤1032:同步判断待定服务标识的子标识与相应的标准服务标识的子标识是否相同,当待定服务标识的所有子标识均分别与相应的标准服务标识的子标识相同时,将待定服务标识对应的日志数据作为有效日志数据。
本发明实施例中,服务标识为唯一的标识,例如,服务标识可以采用hash算法确定,故服务标识实质上为一个长字符串,以服务标识作为关键字从海量的日志数据中获取有效日志数据时,效率较低。本发明实施例中将服务标识分为个子标识,通过同步比较子标识的方式来确定待定服务标识与标准服务标识是否完全相同,从而可以提高查询效率;其中,分段规则为预设的规则,例如四个字符为一组,将服务标识划分为多组,每一组即为一个子标识。同时,当待定服务标识的某个子标识与标准服务标识的相应子标识不同时,即可说明待定服务标识与标准服务标识不相同,此时不需要再进行额外的比较了。通过同步判断相应的子标识是否相同,可以更快速找到不同的子标识,从而快速剔除海量日志数据中不匹配的数据。
在上述实施例的基础上,上述步骤1032“同步判断待定服务标识的子标识与相应的标准服务标识的子标识是否相同”具体包括:
步骤B1:判断待定子标识的最后一个字符与标准子标识的最后一个字符是否相同,当二者不同时,确定待定服务标识与标准服务标识不同;待定子标识为待定服务标识的一个子标识,标准子标识为标准服务标识中与待定子标识相对应的子标识。
步骤B2:当二者相同时,倒序确定待定子标识的下一个字符以及标准子标识的下一个字符,并继续判断待定子标识的下一个字符与标准子标识的下一个字符是否相同,直至确定待定子标识的字符与标准子标识的字符不同,或者当确定待定子标识的所有字符与相应的标准子标识的字符均相同时,确定待定服务标识与标准服务标识相同。
本发明实施例中,由于服务标识一般可以基于对象的相关信息、时间戳、所调用的服务的相关信息等生成,故不同的服务标识可以有相同的前缀,以表示服务标识的含义。例如,两个服务标识的子标识可以分别为“abcdefx”和“abcdeyx”,即二者具有相同的前缀“abcdef”。由于服务标识可能具有相同的前缀,故本发明实施例中通过倒序判断的方式来快速确定两个子标识是否相同。
具体的,如上述步骤B1所示,首先判断两个子标识最后一个字符是否相同,如果二者不同,则说明两个子标识不同,进而说明待定服务标识与标准服务标识也一定不同。若二者相同,则可继续判断子标识中倒序的下一个字符是否相同,直至发现不同的字符、或者所有的子标识的字符均完全相同。如上例,若两个服务标识可以分别为“abcdexx”和“abcdeyx”,首先判断最后一个字符“x”和“x”是否相同,二者相同,则倒序确定下一个字符“f”和“y”,并判断两个字符是否相同,不同则说明两个服务标识不同。
本发明实施例中,通过倒序判断子标识是否相同,可以进一步查找到待定服务标识与标准服务标识之间不同的字符,从而快速剔除与标准服务标识不相关的日志数据,进而快速查询到有效日志数据。
在上述实施例的基础上,在步骤103“查询与目标调用流程的服务标识对应的有效日志数据”之后,该方法还包括统计异常的过程,该过程具体包括:
确定有效日志数据中所记录的调用或被调用的待测服务,待测服务包括目标服务;根据与待测服务相关的历史日志数据确定待测服务的异常次数和异常率,并显示待测服务的异常次数和异常率。
本发明实施例中,有效日志数据中记录有相关的服务,此时需要测试该服务是否与发生异常相关;具体的,测试服务可以包含上述的目标服务、本地服务等。本发明实施例中,通过统计待测服务的异常次数和异常率,可以为用户定位问题时提供参考依据,方便用户尽快定位到发生问题的位置。
本发明实施例提供的一种日志追溯的方法,以调用流程为一组生成服务标识,在该流程内发生服务调用的过程时,基于该服务标识生成与调用操作相应的日志数据,从而在调用流程异常时通过该服务标识即可快速查询到相关的日志数据,进而方便用户快速确定问题并解决该问题。同时,调用方和被调用方分别基于该服务标识生成调用操作和被调用操作相关的日志数据,也方便后续建立调用操作的日志数据与被调用操作的日志数据之间的关联,更有利于用户查看服务调用的整个过程。通过对同一调用流程的每次调用过程依次设置序号,使得后续需要追溯日志时,方便用户基于该序号来确定服务调用顺序,更有利于快速确定问题。通过同步判断相应的子标识是否相同,可以更快速找到不同的子标识,从而快速剔除海量日志数据中不匹配的数据。通过倒序判断子标识是否相同,可以进一步查找到待定服务标识与标准服务标识之间不同的字符,从而快速剔除与标准服务标识不相关的日志数据,进而快速查询到有效日志数据。
以上详细介绍了日志追溯的方法流程,该方法也可以通过相应的装置实现,下面详细介绍该装置的结构和功能。
本发明实施例提供的一种日志追溯的装置,参见图4所示,包括:
服务调用模块41,用于调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,所述目标调用流程为调用所述目标服务的过程所处的流程;
生成日志模块42,用于根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据;
追溯模块43,用于在测试过程中确定所述目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据所述有效日志数据确定所述目标调用流程的异常原因;所述有效日志数据为与所述目标调用流程的服务标识对应的日志数据,包括所述第一日志数据和所述第二日志数据。
在上述实施例的基础上,参见图5所示,该装置还包括:服务被调用模块44;
在所述服务调用模块41调用第一对象的目标服务之前,所述服务被调用模块44用于:获取第二对象发送的用于基于本地对象的本地服务调用所述目标服务的调用请求,所述调用请求包括与目标调用流程唯一对应的服务标识;
所述生成日志模块42还用于根据所述服务标识生成用于表示所述本地服务被调用的第三日志数据。
在上述实施例的基础上,参见图5所示,该装置还包括方法调用模块45;
当需要调用本地服务中的目标方法时,所述方法调用模块45用于生成与当前的调用方法流程唯一对应的方法标识;根据所述服务标识和所述方法标识生成用于表示所述本地服务中的所述目标方法被调用的第四日志数据。
在上述实施例的基础上,所述生成日志模块42包括:
日志生成单元,用于根据调用所述目标服务的过程在所述目标调用流程中的顺序确定与调用所述目标服务的过程相对应的第一序号,并根据所述服务标识和所述第一序号生成用于表示调用所述目标服务的第一日志数据;
序号生成单元,用于确定所述第一序号下一顺位的第二序号,并将所述服务标识和所述第二序号发送至所述第一对象,指示所述第一对象根据所述服务标识和所述第二序号生成用于表示所述目标服务被调用的第二日志数据。
在上述实施例的基础上,所述追溯模块43包括:
分段单元,用于将异常的目标调用流程的服务标识作为标准服务标识,将待查询的日志数据的服务标识作为待定服务标识,按照相同的分段规则将所述标准服务标识和所述待定服务标识分别分为多个子标识,所述待查询的日志数据为所述已记录的日志数据中的一个;
判断单元,用于同步判断所述待定服务标识的子标识与相应的所述标准服务标识的子标识是否相同,当所述待定服务标识的所有子标识均分别与相应的所述标准服务标识的子标识相同时,将所述待定服务标识对应的日志数据作为有效日志数据。
在上述实施例的基础上,所述判断单元同步判断所述待定服务标识的子标识与相应的所述标准服务标识的子标识是否相同,包括:
判断待定子标识的最后一个字符与标准子标识的最后一个字符是否相同,当二者不同时,确定所述待定服务标识与所述标准服务标识不同;所述待定子标识为所述待定服务标识的一个子标识,所述标准子标识为所述标准服务标识中与所述待定子标识相对应的子标识;
当二者相同时,倒序确定所述待定子标识的下一个字符以及所述标准子标识的下一个字符,并继续判断所述待定子标识的下一个字符与标准子标识的下一个字符是否相同,直至确定所述待定子标识的字符与标准子标识的字符不同,或者当确定所述待定子标识的所有字符与相应的所述标准子标识的字符均相同时,确定所述待定服务标识与所述标准服务标识相同。
在上述实施例的基础上,参见图5所示,该装置还包括:统计模块46;
在所述追溯模块43查询与所述目标调用流程的服务标识对应的有效日志数据之后,所述统计模块46用于:
确定所述有效日志数据中所记录的调用或被调用的待测服务,所述待测服务包括所述目标服务;根据与所述待测服务相关的历史日志数据确定所述待测服务的异常次数和异常率,并显示所述待测服务的异常次数和异常率。
本发明实施例提供的一种日志追溯的装置,以调用流程为一组生成服务标识,在该流程内发生服务调用的过程时,基于该服务标识生成与调用操作相应的日志数据,从而在调用流程异常时通过该服务标识即可快速查询到相关的日志数据,进而方便用户快速确定问题并解决该问题。同时,调用方和被调用方分别基于该服务标识生成调用操作和被调用操作相关的日志数据,也方便后续建立调用操作的日志数据与被调用操作的日志数据之间的关联,更有利于用户查看服务调用的整个过程。通过对同一调用流程的每次调用过程依次设置序号,使得后续需要追溯日志时,方便用户基于该序号来确定服务调用顺序,更有利于快速确定问题。通过同步判断相应的子标识是否相同,可以更快速找到不同的子标识,从而快速剔除海量日志数据中不匹配的数据。通过倒序判断子标识是否相同,可以进一步查找到待定服务标识与标准服务标识之间不同的字符,从而快速剔除与标准服务标识不相关的日志数据,进而快速查询到有效日志数据。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,其包含用于执行上述日志追溯的方法的程序,该计算机可执行指令可执行上述任意方法实施例中的方法。
其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
图6示出了本发明的另一个实施例的一种计算机设备的结构框图。所述计算机设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算机设备的具体实现做限定。
该计算机设备1100包括至少一个处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory array)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于可执行的指令。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。存储器1130存储的指令可被处理器1110执行,以使处理器1110能够执行上述任意方法实施例中的方法。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (5)

1.一种日志追溯的方法,其特征在于,包括:
调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,所述目标调用流程为调用所述目标服务的过程所处的流程;
根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据;
在测试过程中确定所述目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据所述有效日志数据确定所述目标调用流程的异常原因;所述有效日志数据为与所述目标调用流程的服务标识对应的日志数据,包括所述第一日志数据和所述第二日志数据;
在所述调用第一对象的目标服务之前,还包括:
获取第二对象发送的用于调用本地对象的本地服务的调用请求,所述调用请求与所述目标调用流程唯一对应的服务标识不一致;
获取第二对象发送的用于基于本地对象的本地服务调用所述目标服务的调用请求,所述调用请求包括与所述目标调用流程唯一对应的服务标识;
根据所述服务标识生成用于表示所述本地服务被调用的第三日志数据;
当需要调用本地服务中的目标方法时,生成与当前的调用方法流程唯一对应的方法标识;
根据所述服务标识和所述方法标识生成用于表示所述本地服务中的所述目标方法被调用的第四日志数据;
所述根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据,包括:
根据调用所述目标服务的过程在所述目标调用流程中的顺序确定与调用所述目标服务的过程相对应的第一序号,并根据所述服务标识和所述第一序号生成用于表示调用所述目标服务的第一日志数据;
确定所述第一序号下一顺位的第二序号,并将所述服务标识和所述第二序号发送至所述第一对象,指示所述第一对象根据所述服务标识和所述第二序号生成用于表示所述目标服务被调用的第二日志数据;
所述在所有已记录的日志数据中查询有效日志数据包括:
将异常的目标调用流程的服务标识作为标准服务标识,将待查询的日志数据的服务标识作为待定服务标识,按照相同的分段规则将所述标准服务标识和所述待定服务标识分别分为多个子标识,所述待查询的日志数据为所述已记录的日志数据中的一个;
同步判断所述待定服务标识的子标识与相应的所述标准服务标识的子标识是否相同,当所述待定服务标识的所有子标识均分别与相应的所述标准服务标识的子标识相同时,将所述待定服务标识对应的日志数据作为有效日志数据;
在查询与所述目标调用流程的服务标识对应的有效日志数据之后,还包括:
确定所述有效日志数据中所记录的调用或被调用的待测服务,所述待测服务包括所述目标服务;
根据与所述待测服务相关的历史日志数据确定所述待测服务的异常次数和异常率,并显示所述待测服务的异常次数和异常率。
2.根据权利要求1所述的方法,其特征在于,所述同步判断所述待定服务标识的子标识与相应的所述标准服务标识的子标识是否相同,包括:
判断待定子标识的最后一个字符与标准子标识的最后一个字符是否相同,当二者不同时,确定所述待定服务标识与所述标准服务标识不同;所述待定子标识为所述待定服务标识的一个子标识,所述标准子标识为所述标准服务标识中与所述待定子标识相对应的子标识;
当二者相同时,倒序确定所述待定子标识的下一个字符以及所述标准子标识的下一个字符,并继续判断所述待定子标识的下一个字符与标准子标识的下一个字符是否相同,直至确定所述待定子标识的字符与标准子标识的字符不同,或者当确定所述待定子标识的所有字符与相应的所述标准子标识的字符均相同时,确定所述待定服务标识与所述标准服务标识相同。
3.一种日志追溯的装置,其特征在于,包括:
服务调用模块,用于调用第一对象的目标服务,并确定目标调用流程唯一对应的服务标识,所述目标调用流程为调用所述目标服务的过程所处的流程;
生成日志模块,用于根据所述服务标识生成用于表示调用所述目标服务的第一日志数据;将所述服务标识发送至所述第一对象,指示所述第一对象根据所述服务标识生成用于表示所述目标服务被调用的第二日志数据;
追溯模块,用于在测试过程中确定所述目标调用流程异常时,在所有已记录的日志数据中查询有效日志数据,并根据所述有效日志数据确定所述目标调用流程的异常原因;所述有效日志数据为与所述目标调用流程的服务标识对应的日志数据,包括所述第一日志数据和所述第二日志数据;
服务被调用模块,在所述服务调用模块调用第一对象的目标服务之前,所述服务被调用模块用于:获取第二对象发送的用于调用本地对象的本地服务的调用请求,所述调用请求与所述目标调用流程唯一对应的服务标识不一致;获取第二对象发送的用于基于本地对象的本地服务调用所述目标服务的调用请求,所述调用请求包括与目标调用流程唯一对应的服务标识,所述生成日志模块还用于根据所述服务标识生成用于表示所述本地服务被调用的第三日志数据;
方法调用模块,当需要调用本地服务中的目标方法时,所述方法调用模块用于生成与当前的调用方法流程唯一对应的方法标识;根据所述服务标识和所述方法标识生成用于表示所述本地服务中的所述目标方法被调用的第四日志数据;
所述生成日志模块包括:
日志生成单元,用于根据调用所述目标服务的过程在所述目标调用流程中的顺序确定与调用所述目标服务的过程相对应的第一序号,并根据所述服务标识和所述第一序号生成用于表示调用所述目标服务的第一日志数据;
序号生成单元,用于确定所述第一序号下一顺位的第二序号,并将所述服务标识和所述第二序号发送至所述第一对象,指示所述第一对象根据所述服务标识和所述第二序号生成用于表示所述目标服务被调用的第二日志数据;
所述追溯模块包括:
分段单元,用于将异常的目标调用流程的服务标识作为标准服务标识,将待查询的日志数据的服务标识作为待定服务标识,按照相同的分段规则将所述标准服务标识和所述待定服务标识分别分为多个子标识,所述待查询的日志数据为所述已记录的日志数据中的一个;
判断单元,用于同步判断所述待定服务标识的子标识与相应的所述标准服务标识的子标识是否相同,当所述待定服务标识的所有子标识均分别与相应的所述标准服务标识的子标识相同时,将所述待定服务标识对应的日志数据作为有效日志数据;
所述装置还包括统计模块,在所述追溯模块查询与所述目标调用流程的服务标识对应的有效日志数据之后,所述统计模块用于:
确定所述有效日志数据中所记录的调用或被调用的待测服务,所述待测服务包括所述目标服务;根据与所述待测服务相关的历史日志数据确定所述待测服务的异常次数和异常率,并显示所述待测服务的异常次数和异常率。
4.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现权利要求1至2中任一项所述的方法的步骤。
5.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现权利要求1至2中任一项所述方法的步骤。
CN201910191040.1A 2019-03-12 2019-03-12 一种日志追溯的方法、装置、存储介质及计算机设备 Active CN110083581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910191040.1A CN110083581B (zh) 2019-03-12 2019-03-12 一种日志追溯的方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910191040.1A CN110083581B (zh) 2019-03-12 2019-03-12 一种日志追溯的方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN110083581A CN110083581A (zh) 2019-08-02
CN110083581B true CN110083581B (zh) 2024-04-05

Family

ID=67412505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910191040.1A Active CN110083581B (zh) 2019-03-12 2019-03-12 一种日志追溯的方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN110083581B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078447B (zh) * 2019-11-24 2023-09-19 杭州安恒信息技术股份有限公司 一种微服务架构中的异常定位方法、装置、设备、介质
CN111400127B (zh) * 2020-02-28 2022-09-09 深圳平安医疗健康科技服务有限公司 业务日志的监控方法及装置、存储介质、计算机设备
CN112416557B (zh) * 2020-11-23 2022-12-30 青岛海尔科技有限公司 调用关系的确定方法和装置、存储介质及电子装置
CN114745153B (zh) * 2022-03-10 2024-02-27 北京汇元网科技股份有限公司 WCF和log4net结合的链路跟踪方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810529A (zh) * 2012-11-15 2014-05-21 金蝶软件(中国)有限公司 跨单据流程日志的生成、查询方法及装置
CN108459939A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 一种日志收集方法、装置、终端设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342453A1 (en) * 2015-05-20 2016-11-24 Wanclouds, Inc. System and methods for anomaly detection
US20170097771A1 (en) * 2015-10-01 2017-04-06 Netapp, Inc. Transaction log layout for efficient reclamation and recovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810529A (zh) * 2012-11-15 2014-05-21 金蝶软件(中国)有限公司 跨单据流程日志的生成、查询方法及装置
CN108459939A (zh) * 2018-01-08 2018-08-28 平安科技(深圳)有限公司 一种日志收集方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN110083581A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110083581B (zh) 一种日志追溯的方法、装置、存储介质及计算机设备
WO2020238066A1 (zh) 一种软件的压力测试方法、装置、存储介质和服务器
CN107122296B (zh) 用于测试接口的数据断言的方法及设备
CN108984389B (zh) 一种应用程序测试方法及终端设备
CN106528400A (zh) Mock测试方法和装置
CN111563041B (zh) 一种测试用例按需精准执行方法
CN110162512B (zh) 一种日志检索方法、装置及存储介质
CN109309596B (zh) 一种压力测试方法、装置及服务器
KR20190020105A (ko) 스트리밍 데이터의 분배 처리 방법 및 디바이스
CN110222042B (zh) 用于确定已核对业务数据的方法、装置、设备及系统架构
CN107092535B (zh) 用于测试接口的数据存储的方法及设备
CN108959065A (zh) 软件接口测试参数的验证方法及系统
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN114510356A (zh) 微服务之间调用操作的日志追踪方法、装置、设备和介质
CA3139971A1 (en) Problem positioning method and device
CN107357721B (zh) 测试系统的方法及装置
CN112235128B (zh) 一种交易路径分析方法、装置、服务器及存储介质
CN116719750B (zh) 软件测试方法及装置、服务器设备和存储介质
CN111522881B (zh) 业务数据处理方法、装置、服务器及存储介质
CN112948262A (zh) 一种系统测试方法、装置、计算机设备和存储介质
CN110147313B (zh) 一种日志输出方法及装置
CN110134583B (zh) 软件测试及数据处理方法及装置
CN115022201B (zh) 一种数据处理功能测试方法、装置、设备及存储介质
CN113868141A (zh) 数据测试方法、装置、电子设备及存储介质
CN113868116A (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