CN114064586A - 操作日志生成方法、故障查询方法及装置 - Google Patents
操作日志生成方法、故障查询方法及装置 Download PDFInfo
- Publication number
- CN114064586A CN114064586A CN202111355558.8A CN202111355558A CN114064586A CN 114064586 A CN114064586 A CN 114064586A CN 202111355558 A CN202111355558 A CN 202111355558A CN 114064586 A CN114064586 A CN 114064586A
- Authority
- CN
- China
- Prior art keywords
- job
- information
- executed
- task
- fault
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种操作日志生成方法、故障查询方法及装置,操作日志生成方法包括:接收待执行操作,并生成作业全局标识;根据待执行操作确定至少一个待执行作业,为各待执行作业创建线程,并生成作业信息;根据作业全局标识为各线程分配作业标识,通过各线程执行相应待执行作业,并生成任务信息;根据作业全局标识、作业信息、作业标识和任务信息生成操作日志。对作业过程中所产生的信息进行标识,在执行操作过程中产生的所有信息进行统一记录,操作记录格式统一,方便处理、分析,有利于后期进行信息查询和故障定位。通过作业全局标识生成作业标识,建立各作业标识之间关系,以及各作业之间的关系。调用简单,节省冗余代码,适用性强。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及操作日志生成方法、故障查询方法及装置。
背景技术
随着信息技术的发展,互联网业务面越来越广,涉及服务越来越多。面临着很多人力和时间成本的挑战,安全审计的要求,以及开发、运维和运营的压力。开发各服务项目所使用的公共库有安全审计的需求,其涉及敏感、安全等问题的函数需要被审计,以符合安全规范。各产品线的操作日志做统一维护的需求。开发新功能时,有统一的功能性测试需求,期望了解函数的传参和返回是否符合预期。业务故障时,需要追踪故障点,排查和修复问题,一定程度上业务侧可以自动化处理故障。
现有技术中,对操作日志的记录一般有几种方式:1)在函数里面加入相关代码进行处理。这些代码会冗余地存在很多地方,不仅人力、时间成本高,而且代码可读性会降低,影响代码质量。同时,这样的操作很容易遗漏,使得记录不全,导致日志审计存在安全漏洞。并且,各个产品线会单独开发,使得操作记录格式不一,面临定制化的二次开发问题。2)使用函数装饰器简单地记录到本地日志文件。这些日志分散在所有服务节点的本地硬盘里面。一则日志分散需要针对性地提取和分析,带来一定的复杂度和工作量;二来操作流程是分布式的,一个作业可能在多个服务间依次执行工作,如果没有形成流水线化的记录模式,就会给故障点排查、修复带来一定的运维难度,业务侧也很难做到类似事务回滚相关的自动化处理。
发明内容
本发明提供一种操作日志生成方法、故障查询方法及装置,以实现对操作日志进行统一记录。
第一方面,本发明实施例提供了一种操作日志生成方法,所述操作日志生成方法包括:
接收待执行操作,并生成作业全局标识;
根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;
根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;
根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。
第二方面,本发明实施例提供了一种故障查询方法,所述故障查询方法包括:
获取待查询作业标识和操作日志,所述操作日志由本发明任一实施例所述的操作日志生成方法生成;
根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。
第三方面,本发明实施例还提供了一种操作日志生成装置,该操作日志生成装置包括:
操作接收模块,用于接收待执行操作,并生成作业全局标识;
作业信息生成模块,用于根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;
任务信息生成模块,用于根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;
操作日志生成模块,用于根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。
第四方面,本发明实施例还提供了一种故障查询装置,该故障查询装置包括:
日志获取模块,获取待查询作业标识和操作日志,所述操作日志由本发明任一实施例所述的操作日志生成装置生成;
故障信息确定模块,用于根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。
本发明实施例提供了一种操作日志生成方法、故障查询方法及装置,通过接收待执行操作,并生成作业全局标识;根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。通过作业全局标识和作业标识对作业过程中所产生的信息进行标识,在执行操作过程中产生的所有信息进行统一记录,操作记录格式统一,方便处理、分析,有利于后期进行信息查询和故障定位。通过作业全局标识生成作业标识,建立各作业标识之间关系,进一步建立各作业之间的关系,调用过程简单,节省大量冗余代码,适用性强。
附图说明
图1是本发明实施例一中的一种操作日志生成方法的流程图;
图2是本发明实施例二中的一种操作日志生成方法的流程图;
图3是本发明实施例二中的一种作业和任务的关系展示示例图;
图4是本发明实施例二中的一种生成操作日志的实现示意图;
图5是本发明实施例三中的一种故障查询方法的流程图;
图6是本发明实施例四中的一种操作日志生成装置的结构示意图;
图7是本发明实施例五中的一种故障查询装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
实施例一
图1给出了本申请实施例一提供的一种操作日志生成方法的流程示意图,该方法适用于在开发过程中执行任意操作时对操作进行记录的情况。该方法可以由配置了python运行环境的计算机设备执行,该计算机设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,计算机设备可以是笔记本、台式计算机以及智能平板等。
如图1所示,本实施例一提供的一种操作日志生成方法,具体包括如下步骤:
S101、接收待执行操作,并生成作业全局标识。
在本实施例中,待执行操作具体可以理解为需要计算机执行的操作,例如,创建虚拟机、为虚拟机创建备份等等。作业全局标识具体可以理解为在执行待执行操作过程中的全局标识ID。
具体的,用户发起待执行操作,用户可以是项目开发人员、产品使用人员等任意具有操作权限的用户。计算机设备接收用户发起的待执行操作,待执行操作可能并行地产生多个作业,各作业可以穿插在多个服务节点间依次执行工作任务。作业全局标识可以是随机生成的字符串,也可以按照一定规则生成的字符串。作业全局标识用来标识执行待执行操作过程的主操作流程。
需要知道的是,本申请所提供的操作日志生成方法由python函数装饰器执行,将python函数装饰器应用到函数上,实现对操作日志的记录和生成。本申请中的装饰器从逻辑上来说具有两种类型,分别用于作业分发的第一个入口函数和执行待执行作业的具体函数。装饰器的数量可以根据需求设置。
S102、根据待执行操作确定至少一个待执行作业,为各待执行作业创建线程,并生成作业信息。
在本实施例中,待执行作业具体可以理解为对待执行操作进行分解确定的需要执行的作业,例如,待执行操作为创建3个虚拟机,相应的,待执行作业的数量为3个,均为创建虚拟机。作业信息具体可以理解为对待执行操作进行执行时所产生的信息,例如,提交者、请求参数、返回结果等信息。
具体的,对待执行操作进行解析,确定待执行操作对应的待执行作业。分别为每个待执行作业创建线程,执行此待执行作业。根据待执行操作携带的参数信息,以及操作完成后更新的返回结果等信息生成作业信息,记录操作过程。
S103、根据作业全局标识为各线程分配作业标识,通过各线程执行相应待执行作业,并生成任务信息。
在本实施例中,作业标识具体可以理解为标识各待执行作业的标识信息。任务信息具体可以理解执行待执行作业过程中所产生信息,例如,任务序号、任务标识ID、调用者、执行者、请求参数、返回信息等数据。
具体的,在通过各线程执行待执行作业的过程中,为每个线程分配作业标识。其中,作业标识为根据作业全局标识确定并生成,因此可以建立作业全局标识和作业标识之间的关联。例如,作业全局标识为ppl-123abc,作业标识为ppl-123abc#1、ppl-123abc#2、ppl-123abc#3等。作业标识将被记录在线程本地变量(Thread Local)里,透传到此待执行作业需要经历的所有服务的线程本地变量中。判断线程变量是否有作业标识,在存在作业标识时,线程执行相应待执行作业的过程中将会记录操作日志,否则不记录。一个待执行作业的执行会调用相应的函数来完成任务。本申请通过将装饰器应用到函数上,通过为作业分配标识的方式记录作业执行过程,解决易遗漏、记录不全等问题,节约人力和时间成本。同时代码保持精简,不影响代码质量。操作记录格式统一,便于数据分析和处理。
S104、根据作业全局标识、作业信息、作业标识和任务信息生成操作日志。
在本实施例中,操作日志具体可以理解为记录操作流程的日志信息。通过作业全局标识对作业信息进行标识。通过作业标识对任务信息进行标识,任务在不同的服务节点执行时,均由统一的作业标识进行标识,因此,可以实现对操作的统一管理。
本发明实施例提供了一种操作日志生成方法,通过接收待执行操作,并生成作业全局标识;根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。通过作业全局标识和作业标识对作业过程中所产生的信息进行标识,在执行操作过程中产生的所有信息进行统一记录,操作记录格式统一,方便处理、分析,有利于后期进行信息查询和故障定位。通过作业全局标识生成作业标识,建立各作业标识之间关系,进一步建立各作业之间的关系,调用过程简单,节省大量冗余代码,适用性强。
实施例二
图2为本发明实施例二提供的一种操作日志生成方法的流程图。本实施例的技术方案在上述技术方案的基础上进一步细化,具体主要包括如下步骤:
S201、接收待执行操作,并生成作业全局标识。
S202、调用解析函数对待执行操作进行解析。
在本实施例中,解析函数具体可以理解为用于对代码、字符串等进行解析的函数。通过调用解析函数对待执行操作进行数据解析。
S203、根据解析结果确定至少一个待执行作业。
以待执行操作为创建3个虚拟机为例,通过调用解析函数对待执行操作进行数据解析,得到的解析结果可以是:任务-创建虚拟机,数量-3个;相应的,确定的待执行作业为创建1个虚拟机,待执行作业的数量为3个。
S204、为各待执行作业创建线程。
S205、根据待执行操作确定提交者、调用者和请求参数。
在本实施例中,提交者可以理解为提交待执行操作的用户;调用者可以理解为执行待执行操作的网关;请求参数具体可以理解为执行待执行操作时的参数信息,例如参数名称、参数值等。用户通过触发或者输入等操作方式生成待执行操作时,同时生成提交者、调用者、请求参数,并在待执行操作中携带上述信息。
S206、根据线程创建的执行结果确定返回信息。
在本实施例中,返回信息可以是执行的结果,也可以是对执行结果进行处理后的信息,例如,返回信息如果仅可以为ture或false,通过对执行结果进行验证处理,得到ture或false作为返回信息。创建线程执行待执行作业,创建线程的执行结果可以为创建成功,创建失败,以及创建成功时的线程信息,创建失败时的失败原因等信息,根据执行结果确定返回信息。
S207、根据提交者、调用者、请求参数和返回信息生成作业信息。
将提交者、调用者、请求参数和返回信息作为作业信息,记录创建线程操作执行过程中产生的数据。
S208、根据作业全局标识为各线程分配作业标识。
S209、针对每个线程,根据待执行作业确定目标处理流程,目标处理流程包括任务处理顺序、任务处理节点和处理指令。
在本实施例中,目标处理流程具体可以理解为在执行待执行作业时的数据处理流程,即待执行作业的处理过程分解为一个或者多个任务执行。目标处理流程定义了待执行作业执行时的流水线任务,以及每个任务在哪一服务节点执行。处理指令即任务执行时的指令,指示任务进行何种处理。任务处理顺序具体可以理解为各任务处理的顺序,一个作业的施行会调用相应的函数来完成任务,函数的调用具有次序性,因此需要生成任务处理顺序对任务进行排序。任务处理节点具体可以理解为处理任务的服务节点。
示例性的,图3为本发明实施例提供的一种作业和任务的关系展示示例图。如图3所示,待执行操作31分解为3个待执行作业32,3个待执行作业32均执行相同的目标处理流程。目标处理流程包括了任务1-任务5,其中任务1-2在服务节点a执行,任务3在服务节点b执行,任务4-5在服务节点c执行。
以待执行作业为创建虚拟机备份为例,目标处理流程可以是:(1)挂起虚拟机;(2)刷新缓存;(3)创建快照;(4)恢复虚拟机;(5)提取数据;(6)备份数据。其中,步骤(1)-(4)在服务节点a执行,步骤(5)在服务节点b执行,步骤(6)在服务节点c执行。其中,编号(1)-(6)为任务处理顺序。处理指令为创建快照、挂起虚拟机等。任务处理节点为服务节点a、服务节点b和服务节点c。
具体的,预先定义不同作业执行过程的处理流程,在根据待执行操作确定待执行作业后,根据待执行作业查找其对应的目标处理流程。本申请中执行待执行作业的线程虽然不同,但是由于待执行作业的类型(例如,均为创建虚拟机)相同,因此,确定目标处理流程时,可以针对每个线程均确定一次目标处理流程,也可以仅确定一次。
S210、通过线程执行目标处理流程,在执行过程中按照执行顺序生成任务标识,并将线程对应的作业标识与处理指令关联。
在本实施例中,任务标识具体可以理解为执行目标处理流程中各任务时,对任务进行标识的信息,例如,0001。
具体的,线程在执行目标处理流程时,按照目标处理流程中的任务处理顺序依次在各任务处理节点上执行各处理指令。并按照执行顺序生成任务标识,例如,在服务节点a上执行(1)挂起虚拟机时,生成任务标识0001;服务节点a上执行(2)刷新缓存时,生成任务标识0002。通过任务标识对各处理执行进行标识。由于各线程在执行过程中已经被分配了作业标识,因此,可以确定每个线程对应的作业标识。将线程对应的作业标识与处理指令关联,建立作业和任务之间的关系。
S211、确定线程的执行结果,并根据执行结果确定执行状态。
在本实施例中,执行结果为线程执行目标处理流程后得到的结果,例如存储空间不足、虚拟机宕机等。执行状态具体可以理解为任务执行后的状态,例如,成功、失败等。确定线程执行目标处理流程的执行结果,例如,待执行作业是为虚拟机创建备份,执行结果包括在函数返回代码中,通过函数返回代码确定执行结果是存储空间不足,未完成备份。对执行结果进行分析,或者通过预先定义的方法对执行结果进行验证,确定执行状态。执行状态包括:执行成功和执行失败。
S212、根据任务标识、任务处理顺序、处理指令、作业标识、执行结果和执行状态生成任务信息。
对于每个任务标识,其对应了一个作业标识、处理指令、任务处理顺序、任务处理节点、执行结果和执行状态,将上述数据作为一条数据生成任务信息。
作为本实施例的一个可选实施例,本可选实施例进一步将根据执行结果确定执行状态优化为:根据预定义的验证方法对执行结果进行验证,确定执行状态。
在本实施例中,验证方法具体可以理解为对执行结果进行验证的方法,例如预定义的规则、函数等。在待执行作业的类型不同时,其执行完成后返回的执行结果的数据格式或类型可能是相同的,也可能是不同的。因此,可以设置相同的验证方法对执行结果进行验证,也可以设置不同验证方法对执行结果进行验证。如果设置不同的验证方法对执行结果进行验证,可以在预先将待执行作业或待执行操作与对应的验证方法进行关联,在验证时,获取对应的验证方法对执行结果进行验证,确定执行状态。
S213、获取数据操作模式。
在本实施例中,数据操作模式具体可以理解为进行数据存储时使用的操作方法,示例性的,当数据存储空间为数据库时,数据操作模式可以是单例模式,通过单例模式声明数据库或数据库集群的操作方法,装饰器直接调用此方法进行数据存储操作,以关系型的方式将数据存储到数据库中,本申请实施例中的数据库可以是mysql、postgresql、Oracle等。数据操作模式预先定义,在进行数据存储时直接获取数据操作模型。
S214、根据数据操作模式向数据库输出作业全局标识和作业信息,生成作业表。
按照数据操作模式声明的操作方式将作业全局标识和作业信息输出到数据库,形成作业表。构建操作与作业之间的关系,以及作业和作业之间的关系。通过作业表可以确定操作或作业由哪一网关执行,以及执行过程中涉及到的请求参数。
示例性的,表1提供了一种作业表:
标识 | 提交者 | 执行者 | … |
ppl-123abc | Name1 | Implement1 | |
ppl-123abc#1 | Name1 | Implement2 | |
ppl-123abc#2 | Name1 | Implement3 | |
… | … | … | … |
S215、根据数据操作模式向数据库输出作业标识和任务信息,生成任务表。
按照数据操作模式声明的操作方式将作业标识和任务信息输出到数据库,形成任务表。构建作业和任务之间的关系、以及任务与任务之间的关系。
示例性的,表2提供了一种任务表:
S216、根据作业表和任务表形成操作日志。
作业表和任务表记录了执行待执行操作过程的产生的数据,并对各操作步骤通过标识进行标记,形成的操作日志记录操作流程的同时,建立各任务、作业和操作之间的关系,方便查看。
本申请在生成操作日志的时候,通过采用流水线式的记录方法,为每个作业分配作业标识,为作业执行过的函数分配任务处理顺序和任务标识,建立起作业之间的关系和任务之间的关系,从而协助开发运维者快速地分析和定位问题点。业务逻辑可以基于这些记录自动处理故障。本申请的方法在实现时无需区分普通函数或类成员函数,适应性强。开发者可以轻松调用,节省大量冗余代码;操作记录格式统一,方便处理、分析;使用的便利性能让函数的操作日志记录得更加全面,减少审查漏洞。
作为本实施例的一个可选实施例,本可选实施例进一步优化包括:在所述接收待执行操作之前,接收目标类型、目标名称和目标描述信息;
相应的,在所述接收待执行操作之后还包括:将所述目标类型、目标名称和目标描述信息与待执行操作或处理指令关联。
在本实施例中,目标类型具体可以理解为执行的操作或任务的类型,分为作业类型(如,虚拟机)和任务类型。目标名称具体可以理解为执行的操作或任务的名称,分为作业名称和任务名称。目标描述信息分为作业的描述信息或任务的描述信息。
本申请在接收待执行操作之前,用户可以根据本申请应用的场景设置作业类型、作业名称和描述信息。根据目标类型、目标名称和目标描述信息设置装饰器的参数,装饰器在接收到待执行操作后,就可以将待执行操作或处理指令与目标类型、目标名称和目标描述信息进行关联。其中,作业类型、作业名称、作业的描述信息与待执行操作关联;任务类型、任务名称、任务的描述信息与处理指令关联。在通过装饰器执行操作日志的生成方法时,目标类型、目标名称和目标描述信息可以作为参数信息描述待执行操作或处理指令。例如,在已知作业类型为虚拟机时,可以确定待执行操作为针对虚拟机进行了相关操作。
本申请中的装饰器从逻辑上包括两种装饰器,装饰器可以自定义参数或设定默认参数以适配各种场景。示例性的,用于作业分发的第一个入口函数的装饰器,设置作业类型、作业名称和描述信息时的实现代码可以是:
@pipelining_x(pipelining_type,pipelining_name,description,lambda_is_response_ok)
def create_snapshot(resource_id):
其中,pipelining为作业,定义了作业类型、作业名称、描述信息等参数,当未指定时,可以指定默认值,如作业名字直接用函数名字。或者通过用户输入的目标类型、目标名称和目标描述信进行设置。lambda_is_response_ok表达函数的执行结果会经过此方法来验证,即预定义的验证方法,求得函数执行状态即成功或失败。上述参数可以由开发者自行定义,实现记录的格式统一而内容可变,达到使用灵活的目的。
用于作业分发的实施作业的具体函数的装饰器,设置任务类型、任务名称、任务的描述信息时的实现代码可以是:
@instruction_x(instruction_type,instruction_name,description,lambda_is_response_ok)
def do_snapshot(resource_id):
其中,instruction为任务,定义了任务类型、任务名称、描述信息等参数。其原理同上述pipelining的原理相同,在此不再赘述。
示例性的,图4为本发明实施例提供的一种生成操作日志的实现示意图,操作日志的生成方法分为3个模块实现:作业模块41、操作模块42和输出模块43,其中作业模块41和操作模块42均为装饰器;作为作业模块41的装饰器使用于作业分发的第一个入口函数,作为操作模块42的装饰器作用于实时作业的具体函数上。用户发起待执行操作后,发送至作业模块41,作业模块生成作业全局标识、作业标识和作业信息。其中作业标识记录在线程本地变量中,操作模块在执行待执行作业时,根据作业标识生成任务信息,作业结束。作业信息和任务信息均发送至输出模块43,由输出模块43按照数据操作模式存储到数据库中,生成操作日志。
本发明实施例提供了一种操作日志生成方法,通过作业全局标识和作业标识对作业过程中所产生的信息进行标识,在执行操作过程中产生的所有信息进行统一记录,操作记录格式统一,方便处理、分析,有利于后期进行信息查询和故障定位。通过作业全局标识生成作业标识,建立各作业标识之间关系,进一步建立各作业之间的关系,调用过程简单,节省大量冗余代码,适用性强。通过采用流水线式的记录方法,为每个作业分配作业标识,为作业执行过的函数分配任务处理顺序和任务标识,建立起作业之间的关系和任务之间的关系,从而协助开发运维者快速地分析和定位问题点。业务逻辑可以基于这些记录自动处理故障。本申请的方法在实现时无需区分普通函数或类成员函数,适应性强。使用便利,使得函数的操作日志记录得更加全面,减少审查漏洞。
实施例三
图5为本发明实施例三提供的一种故障查询方法的流程图,该方法包括:
S501、获取待查询作业标识和操作日志,操作日志由本发明任一实施例所述的操作日志生成方法生成。
在本实施例中,待查询作业标识具体可以理解为具有查询需求的作业标识。在进行故障排查或安全审计时,用户根据需求输入待查询作业标识。本申请的执行设备获取待查询作业标识,并从数据库中获取操作日志。
S502、根据待查询作业标识查询操作日志中的任务表,确定故障信息。
在本实施例中,故障信息可以包括是否发生故障、以及发生故障时的故障发生位置、故障发生原因等。
操作日志中的任务表存储了任务(或处理指令)的执行结果、执行状态、任务对应服务节点等信息,其中包括了发生故障的位置、故障的原因等信息,根据待查询作业标识对任务表进行查询匹配,得到发生故障的故障发生位置、例如,故障问题点为创建快照,其所在位置为服务节点a执行。
作为本发明的可选实施例,本可选实施例进一步将根据待查询作业标识查询所述操作日志中的任务表,确定故障信息优化为:
A、根据待查询作业标识对操作日志中的任务表进行筛选,确定待查询作业标识对应的备选信息。
在本实施例中,备选信息具体可以理解为待查询作业标识对应的任务执行过程中的信息,例如,任务处理顺序、处理指令、作业标识、执行结果和执行状态。
具体的,通过待查询作业标识对操作日志中的作业标识进行匹配筛选,确定匹配上的作业标识对应的任务处理顺序、处理指令、作业标识、执行结果和执行状态。根据任务处理顺序、处理指令、作业标识、执行结果和/或执行状态形成备选信息。操作日志中数据表的同一作业标识,对应多条不同数据,每条数据(即,每组任务处理顺序、处理指令、作业标识、执行结果和执行状态)均可以形成一条备选信息。
B、从各备选信息中筛选出执行状态为失败的目标执行状态。
在本实施例中,目标执行状态具体可以理解为状态为失败的执行状态。每条备选信息中均包含执行状态,执行状态分为执行成功和执行失败两种,确定执行失败的执行状态,将其作为目标执行状态。目标执行状态的数量可以不止一个。
若不存在状态为失败的目标执行状态,则可以确定待查询作业标识对应的任务均执行成功,无故障信息,或者故障信息为无故障。
C、将各目标执行状态对应的处理指令确定为故障指令。
确定各目标执行状态对应的处理指令,将各处理指令确定为故障指令。例如,备份数据、恢复虚拟机。
D、根据故障指令及其对应的任务处理节点和执行结果确定故障信息。
将故障指令及其对应的任务处理节点和执行结果作为故障信息,在进行故障查询时,就可以根据任务处理节点定位故障所在机器,根据故障指令确定问题点,根据执行结果确定故障原因。
作为本发明的可选实施例,本可选实施例进一步优化包括:根据故障信息确定故障解决方式;基于故障解决方式执行故障自愈操作。
在本实施例中,故障解决方式具体可以理解为解决故障的方式,保证未来的作业可以顺利进行。由于故障信息中包括了故障指令和执行结果,通过对故障指令和执行结果分析,确定故障解决方式,基于故障解决方式进行故障自愈。
示例性的,本申请实施例给出几种不同的故障信息对应的故障解决方式:
故障信息1,从操作日志查询得知故障指令(问题点)是“创建快照”,得知任务位置在机器A上的服务节点a执行,运维者可以轻松定位故障点,覆盖故障面。
故障信息2,从操作日志查询得知故障指令是“备份数据”,从函数返回代码的记录得知是存储空间不足。云平台自动维护程序可以识别此种故障类型,确定故障解决方式为释放空间,发起回收站清理释放空间,以使未来的作业能够正常进行。
故障信息3,从操作日志查询得知故障指令是“恢复虚拟机”。云平台自动维护程序可以识别此种故障类型,确定虚拟机已经宕机,确定故障解决方式为重启虚拟机,发起虚拟机强制重启指令,从而恢复了虚拟机的运行,达到故障自愈的效果。
本发明实施例提供了一种故障查询方法,通过获取待查询作业标识和操作日志,所述操作日志由本发明任一实施例所述的操作日志生成方法生成;根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。实现对故障的快速排查、定位。同时,基于故障信息,可以自动对故障进行处理,节省工作人员时间,提高工作效率。
实施例四
图6为本发明实施例四提供的一种操作日志生成装置的结构示意图,该装置包括:操作接收模块61、作业信息生成模块62、任务信息生成模块63和操作日志生成模块64。
其中,操作接收模块61,用于接收待执行操作,并生成作业全局标识;
作业信息生成模块62,用于根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;
任务信息生成模块63,用于根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;
操作日志生成模块64,用于根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。
本发明实施例提供了一种操作日志生成装置,通过接收待执行操作,并生成作业全局标识;根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。通过作业全局标识和作业标识对作业过程中所产生的信息进行标识,在执行操作过程中产生的所有信息进行统一记录,操作记录格式统一,方便处理、分析,有利于后期进行信息查询和故障定位。通过作业全局标识生成作业标识,建立各作业标识之间关系,进一步建立各作业之间的关系,调用过程简单,节省大量冗余代码,适用性强。
进一步地,作业信息生成模块62包括:
解析单元,用于调用解析函数对所述待执行操作进行解析;
作业确定单元,用于根据解析结果确定至少一个待执行作业。
进一步地,作业信息生成模块62包括:
参数确定单元,用于根据所述待执行操作确定提交者、调用者和请求参数;
返回信息确定单元,用于根据线程创建的执行结果确定返回信息;
作业信息确定单元,用于根据所述提交者、调用者、请求参数和返回信息生成作业信息。
进一步地,任务信息生成模块63包括:
流程确定单元,用于针对每个线程,根据所述待执行作业确定目标处理流程,所述目标处理流程包括任务处理顺序、任务处理节点和处理指令;
流程执行单元,用于通过所述线程执行所述目标处理流程,在执行过程中按照执行顺序生成任务标识,并将所述线程对应的作业标识与处理指令关联;
状态确定单元,用于确定所述线程的执行结果,并根据所述执行结果确定执行状态;
任务信息生成单元,用于根据所述任务标识、任务处理顺序、处理指令、作业标识、任务处理节点、执行结果和执行状态生成任务信息。
进一步地,状态确定单元,具体用于:根据预定义的验证方法对执行结果进行验证,确定执行状态。
进一步地,该装置还包括:
信息接收模块,用于在接收待执行操作之前,接收目标类型、目标名称和目标描述信息;
相应的,该装置还包括:
关联模块,用于在所述接收待执行操作之后,将所述目标类型、目标名称和目标描述信息与待执行操作或处理指令关联。
进一步地,操作日志生成模块64,包括:
模式获取单元,用于获取数据操作模式;
作业表生成单元,用于根据所述数据操作模式向数据库输出所述作业全局标识和作业信息,生成作业表;
任务表生成单元,用于根据所述数据操作模式向数据库输出所述作业标识和任务信息,生成任务表;
日志生成单元,用于根据所述作业表和任务表形成操作日志。
本发明实施例所提供的操作日志生成装置可执行本发明任意实施例所提供的操作日志生成方法,具备执行方法相应的功能模块和有益效果。
实施例五
图7为本发明实施例五提供的一种故障查询装置的结构示意图,该装置包括:日志获取模块71和故障信息确定模块72。
其中,日志获取模块71,获取待查询作业标识和操作日志,所述操作日志由本发明任一实施例所述的操作日志生成装置生成;
故障信息确定模块72,用于根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。
本发明实施例提供了一种故障查询装置,通过获取待查询作业标识和操作日志,所述操作日志由本发明任一实施例所述的操作日志生成方法生成;根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。实现对故障的快速排查、定位。同时,基于故障信息,可以自动对故障进行处理,节省工作人员时间,提高工作效率。
进一步地,故障信息确定模块72,包括:
标识筛选单元,用于根据所述待查询作业标识对所述操作日志中的任务表进行筛选,确定所述待查询作业标识对应的备选信息;
执行状态筛选单元,用于从各所述备选信息中筛选出执行状态为失败的目标执行状态;
故障指令确定单元,用于将各所述目标执行状态对应的处理指令确定为故障指令;
故障信息确定单元,用于根据所述故障指令及其对应的任务处理节点和执行结果确定故障信息。
进一步地,该装置还包括:
解决方式确定模块,用于根据所述故障信息确定故障解决方式;
故障自愈模块,用于基于所述故障解决方式执行故障自愈操作。
本发明实施例所提供的故障查询装置可执行本发明任意实施例所提供的故障查询方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种操作日志生成方法,其特征在于,包括:
接收待执行操作,并生成作业全局标识;
根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;
根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;
根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待执行操作确定至少一个待执行作业,包括:
调用解析函数对所述待执行操作进行解析;
根据解析结果确定至少一个待执行作业。
3.根据权利要求1所述的方法,其特征在于,所述生成作业信息包括:
根据所述待执行操作确定提交者、调用者和请求参数;
根据线程创建的执行结果确定返回信息;
根据所述提交者、调用者、请求参数和返回信息生成作业信息。
4.根据权利要求1所述的方法,其特征在于,所述通过各所述线程执行相应待执行作业,并生成任务信息,包括:
针对每个线程,根据所述待执行作业确定目标处理流程,所述目标处理流程包括任务处理顺序、任务处理节点和处理指令;
通过所述线程执行所述目标处理流程,在执行过程中按照执行顺序生成任务标识,并将所述线程对应的作业标识与处理指令关联;
确定所述线程的执行结果,并根据所述执行结果确定执行状态;
根据所述任务标识、任务处理顺序、处理指令、作业标识、任务处理节点、执行结果和执行状态生成任务信息。
5.根据权利要求4所述的方法,其特征在于,根据所述执行结果确定执行状态,包括:
根据预定义的验证方法对执行结果进行验证,确定执行状态。
6.根据权利要求4所述的方法,其特征在于,在所述接收待执行操作之前还包括:
接收目标类型、目标名称和目标描述信息;
相应的,在所述接收待执行操作之后还包括:
将所述目标类型、目标名称和目标描述信息与待执行操作或处理指令关联。
7.根据权利要求1所述的方法,其特征在于,所述根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志,包括:
获取数据操作模式;
根据所述数据操作模式向数据库输出所述作业全局标识和作业信息,生成作业表;
根据所述数据操作模式向数据库输出所述作业标识和任务信息,生成任务表;
根据所述作业表和任务表形成操作日志。
8.一种故障查询方法,其特征在于,包括:
获取待查询作业标识和操作日志,所述操作日志由权利要求1-7任一项所述的操作日志生成方法生成;
根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。
9.根据权利要求8所述的方法,其特征在于,所述根据待查询作业标识查询所述操作日志中的任务表,确定故障信息,包括:
根据所述待查询作业标识对所述操作日志中的任务表进行筛选,确定所述待查询作业标识对应的备选信息;
从各所述备选信息中筛选出执行状态为失败的目标执行状态;
将各所述目标执行状态对应的处理指令确定为故障指令;
根据所述故障指令及其对应的任务处理节点和执行结果确定故障信息。
10.根据权利要求8或9所述的方法,其特征在于,还包括:
根据所述故障信息确定故障解决方式;
基于所述故障解决方式执行故障自愈操作。
11.一种操作日志生成装置,其特征在于,包括:
操作接收模块,用于接收待执行操作,并生成作业全局标识;
作业信息生成模块,用于根据所述待执行操作确定至少一个待执行作业,为各所述待执行作业创建线程,并生成作业信息;
任务信息生成模块,用于根据所述作业全局标识为各所述线程分配作业标识,通过各所述线程执行相应待执行作业,并生成任务信息;
操作日志生成模块,用于根据所述作业全局标识、作业信息、作业标识和任务信息生成操作日志。
12.一种故障查询装置,其特征在于,包括:
日志获取模块,获取待查询作业标识和操作日志,所述操作日志由权利要求11所述的操作日志生成装置生成;
故障信息确定模块,用于根据待查询作业标识查询所述操作日志中的任务表,确定故障信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355558.8A CN114064586A (zh) | 2021-11-16 | 2021-11-16 | 操作日志生成方法、故障查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355558.8A CN114064586A (zh) | 2021-11-16 | 2021-11-16 | 操作日志生成方法、故障查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064586A true CN114064586A (zh) | 2022-02-18 |
Family
ID=80272875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111355558.8A Pending CN114064586A (zh) | 2021-11-16 | 2021-11-16 | 操作日志生成方法、故障查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064586A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981986A (zh) * | 2023-03-21 | 2023-04-18 | 北京淘友天下技术有限公司 | 一种app内用户行为场景复现方法 |
-
2021
- 2021-11-16 CN CN202111355558.8A patent/CN114064586A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981986A (zh) * | 2023-03-21 | 2023-04-18 | 北京淘友天下技术有限公司 | 一种app内用户行为场景复现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818431B (zh) | 一种提供订单轨迹数据的方法和系统 | |
US8671084B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
Xu et al. | POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications | |
CN110928772A (zh) | 一种测试方法及装置 | |
US20060190770A1 (en) | Forward projection of correlated software failure information | |
US7870169B2 (en) | Method for enabling traceability and recovery from errors during migration of software applications | |
US20130041900A1 (en) | Script Reuse and Duplicate Detection | |
US7328134B1 (en) | Enterprise integration test tool | |
WO2014120192A1 (en) | Error developer association | |
CN115989483A (zh) | 用于大型动态过程执行系统的自动根本原因分析与预测 | |
US10528456B2 (en) | Determining idle testing periods | |
US20210109904A1 (en) | System and method for process and automation framework to enable acceptance test driven development | |
CN113986669A (zh) | 一种基于aop注解的调用链追踪与业务分析方法 | |
CN114064586A (zh) | 操作日志生成方法、故障查询方法及装置 | |
JP2009176201A (ja) | ソフトウェア開発支援の装置、そのプログラム、及び方法 | |
CN115114064A (zh) | 一种微服务故障分析方法、系统、设备及存储介质 | |
CN110865806A (zh) | 代码处理方法、装置、服务器及存储介质 | |
Weber et al. | Mining processes with multi-instantiation | |
CN113742227A (zh) | 一种软件测试过程的控制方法、装置、设备和介质 | |
US9881046B2 (en) | Recording medium having stored therein process managing program, process managing apparatus and process managing method | |
CN111459737B (zh) | 问题定位方法、装置、计算机设备及存储介质 | |
CN114116664A (zh) | 数据库建表语句处理方法、装置、计算机设备和存储介质 | |
CN114327588A (zh) | 一种代码提交日志的处理方法及装置 | |
US20160070698A1 (en) | Database Management System Tools for An Automated Work to Stage Process | |
CN112053137A (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 | ||
CB02 | Change of applicant information |
Address after: 100000 Unit 501A, Floor 5, 101, Building 1, Yard 5, Laiguangying West Road, Chaoyang District, Beijing Applicant after: Beijing Qingyun Science and Technology Co.,Ltd. Address before: 100020 601, 6 floor, 16 building, No. 36 Chuang Yuan Road, Chaoyang District, Beijing. Applicant before: Beijing Qingyun Science and Technology Co.,Ltd. |
|
CB02 | Change of applicant information |