一种日志生成方法、日志分析方法及装置制造方法及图纸

技术编号:18788647 阅读:23 留言:0更新日期:2018-08-29 09:19
一种日志生成方法、日志分析方法及装置,生成日志时,在逻辑处理过程的处理节点执行以下处理:为该处理节点生成一个步标识;为该处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识是上一处理节点的步标识;将该处理节点的步标识传递给下一处理节点。本申请生成的日志将逻辑处理过程的每一步串联起来,基于所述日志,能够对复杂的逻辑处理过程进行全链路的分析。

【技术实现步骤摘要】
一种日志生成方法、日志分析方法及装置
本专利技术涉及计算机技术,更具体地,涉及一种日志生成方法、日志分析方法及装置。
技术介绍
一个分布式的复杂系统中的逻辑处理过程常常会涉及到多台机器。以图1所示的和3台服务器相关的分布式请求服务过程为例,其涉及的服务器包括:前端服务器A,中间层服务器B,及后端服务器C。当用户发起一个请求时,请求首先到达前端服务器A,服务器A发送远程过程调用协议(RPC:RemoteProcedureCallProtocol)消息到服务器B;服务器B需要和后端的服务器C交互之后再返回响应给服务器A,最后由服务器A响应最初的用户请求。在分布式系统中,追踪一个逻辑处理过程是一个非常困难的事情,尤其当希望对这个处理过程从不同角度去分析时,比如从各个系统的角度,从触发这个逻辑处理的事件的角度,从发起这个逻辑处理的用户角度,从与这个逻辑处理相关联的对象角度等,在一个复杂的分布式系统里完成这些分析都是极具挑战的事情。相关技术的做法是在各个系统里独立输出日志,然后通过某个唯一的标识(ID)将这些日志贯穿起来。也就是说,现有的日志工具仅提供了单机日志能力,或者通过一个简单的ID来串联多机日志的能力。这样的做法可以达到根据这个ID来查询某个逻辑处理过程的所有日志,但却无法体现出逻辑处理过程是如何一步一步进行,如无法体现出系统之间调用的关系。对于一个系统内跨线程的逻辑处理过程,通过现有日志也很难串联起来。随着日志分析的需求多样化,对系统的逻辑处理过程也希望能通过多个角度来进行。因此需要日志工具能提供更加丰富的,多维度的逻辑处理过程的分析。
技术实现思路
有鉴于此,本专利技术实施例提供了一种日志生成方法,包括:在逻辑处理过程的处理节点执行以下处理:为该处理节点生成一个步标识;为该处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识是上一处理节点的步标识;将该处理节点的步标识传递给下一处理节点。本专利技术实施例还提供了一种日志生成装置,包括在逻辑处理过程的处理节点设置的日志生成模块,所述日志生成模块包括:标识处理单元,设置为:获取上一处理节点的步标识,为本处理节点生成一个步标识并将本处理节点的步标识传递给下一处理节点;记录生成单元,设置为:为本处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识为所述标识处理单元获取的上一处理节点的步标识。本专利技术实施例还提供了一种日志生成装置,包括处理器和存储器,其中:所述存储器设置为:保存程序代码;所述处理器设置为:读取所述程序代码,在所述逻辑处理过程的处理节点执行以下处理:为该处理节点生成一个步标识;为该处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识是上一处理节点的步标识;将该处理节点的步标识传递给下一处理节点。上述方案生成的日志将逻辑处理过程的每一步串联起来,能够用于对复杂的逻辑处理过程(如分布式系统下多机多线程的逻辑处理过程)进行全链路的分析。本专利技术实施例还提供了一种日志分析方法,用于对逻辑处理过程的日志记录进行分析,所述逻辑处理过程包括在N个处理节点上进行的N步处理,N≥2,所述日志记录中记录有步标识和上一步标识,所述方法包括:确定所述N步处理中第n步处理的一组日志记录后,获取该组日志记录中记录的步标识并作为第n步步标识,n=1,2,3,……N;查找记录的上一步标识为所述第n步步标识的日志记录,将查找到的日志记录确定为所述N步处理中第n+1步处理的一组日志记录。本专利技术实施例还提供了一种日志分析装置,包括过程分析模块,所述过程分析模块用于对逻辑处理过程的日志记录进行分析,所述逻辑处理过程包括在N个处理节点上进行的N步处理,N≥2,所述日志记录中记录有步标识和上一步标识,所述过程分析模块包括:步标识获取单元,设置为:确定所述N步处理中第n步处理的一组日志记录后,获取该组日志记录中记录的步标识并作为第n步步标识,n=1,2,3,……N;记录查找单元,设置为:查找记录的上一步标识为所述第n步步标识的日志记录,将查找到的日志记录确定为所述N步处理中第n+1步处理的一组日志记录。本专利技术实施例还提供了一种日志分析装置,包括处理器和存储器,其中:所述存储器设置为:保存程序代码;所述处理器设置为:读取所述程序代码,对逻辑处理过程的日志记录进行分析,所述逻辑处理过程包括在N个处理节点上进行的N步处理,N≥2,所述日志记录中记录有步标识和上一步标识,所述分析包括:确定所述N步处理中第n步处理的一组日志记录后,获取该组日志记录中记录的步标识并作为第n步步标识,n=1,2,3,……N;查找记录的上一步标识为所述第n步步标识的日志记录,将查找到的日志记录确定为所述N步处理中第n+1步处理的一组日志记录。上述方案基于本专利技术实施例生成的日志,可以对复杂逻辑过程处理过程进行全链路的日志分析。附图说明图1是示例性的与3台服务器相关的分布式请求服务过程的示意图;图2是本专利技术实施例一中示例性的逻辑处理过程的示意图;图3是本专利技术实施例一日志生成方法的流程图;图4是本专利技术实施例一日志生成模块的结构图;图5是本专利技术实施例二日志分析方法的流程图;图6是本专利技术实施例二过程分析模块的结构图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。实施例一本实施例提供一种日志生成方法,使用该方法生成的日志可用于对包含逻辑处理过程进行全链路分析。本申请的逻辑处理过程由多个处理节点完成,每一处理节点执行的处理构成其中的一步。为了帮助理解,以图2所示的一次逻辑处理过程作为示例。在该示例中,这些处理节点包括将服务器上的软件系统(简称系统)和系统中的组件(也可以称为控件、部件等),组件可以是实现一定功能的软件代码(源代码,二进制代码,可执行代码)或者一些类似内容(如脚本或者命令文件),但本专利技术处理节点的类型并不局限于此,可以根据逻辑处理过程的实际实现来划分。在图2所示的示例中,该逻辑处理过程涉及的机器包括服务器1和服务器2,服务器1中包含组件1.1和组件1.2,服务2中包含组件2.1,而组件1.1可以对资源R1进行操作。在服务器1接收到用户请求后,触发以下的逻辑处理过程:服务器1上系统1的组件1.1执行内部处理(这里以更新资源R1为例);服务器1上系统1的组件1.1调用服务器1上系统1的组件1.2;服务器1上系统1的组件1.2调用服务器2上系统2的组件2.1;服务器2上系统2的组件2.1返回调用给服务器1上系统1的组件1.2;服务器1上系统1的组件1.2返回调用给服务器1上系统1的组件1.1;服务器1上系统1的组件1.1返回响应给用户,逻辑处理完成。如上所述,该逻辑处理过程涉及到多台机器上的系统,涉及到组件之间的多次调用。其中的处理节点包括系统1、组件1.1、组件1.2、系统2及组件2.1。本实施例在所述逻辑处理过程的处理节点执行以下处理,如图3所示:步骤110,为该处理节点生成一个步标识;为该处理节点生成一个步标识(称为该处理节点的步标识),该步标识用于唯一标识该处理节点上的处理过程。每本文档来自技高网...

【技术保护点】
1.一种日志生成方法,包括:在逻辑处理过程的处理节点执行以下处理:为该处理节点生成一个步标识;为该处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识是上一处理节点的步标识;将该处理节点的步标识传递给下一处理节点。

【技术特征摘要】
1.一种日志生成方法,包括:在逻辑处理过程的处理节点执行以下处理:为该处理节点生成一个步标识;为该处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识是上一处理节点的步标识;将该处理节点的步标识传递给下一处理节点。2.如权利要求1所述的方法,其特征在于:所述为该处理节点生成日志记录,还包括:如未获取到上一处理节点的步标识,在为该处理节点生成的日志记录中将一个默认在首个处理节点使用的上一步标识记录为上一步标识。3.如权利要求1所述的方法,其特征在于:所述为该处理节点生成日志记录,包括:在以下一种或多种事件发生时为该处理节点生成日志记录,且还在生成的日志记录中记录该处理节点的节点标识、相应事件的事件标识和事件发生时间:进入该处理节点;离开该处理节点;该处理节点执行内部处理;该处理节点发起调用;该处理节点收到调用返回。4.如权利要求3所述的方法,其特征在于:所述逻辑处理过程的处理节点包括系统和系统中的组件;所述为该处理节点生成日志记录,包括:如该处理节点为系统,在进入该系统和离开该系统的事件发生时为该处理节点生成日志记录;如该处理节点为组件,在进入该组件、离开该组件、该组件执行内部处理、该组件调用其他组件和该组件调用返回的事件发生时为该组件生成日志记录,且在生成的日志记录中记录该组件所在系统的系统标识。5.如权利要求3所述的方法,其特征在于:所述为该处理节点生成日志记录,包括:在该处理节点收到调用返回的事件发生时,在为该处理节点生成的日志记录中将被调用处理节点返回的该被调用处理节点的步标识记录为下一步标识。6.如权利要求3-5中任一所述的方法,其特征在于:所述为该处理节点生成日志记录,包括:在该处理节点增加拦截器,所述拦截器检测到所述一种或多种事件发生时,为该处理节点生成日志记录并输出,且在检测到进入该处理节点的事件时,还截取所述传递来的上一处理节点的步标识,并为该处理节点生成所述步标识。7.如权利要求1所述的方法,其特征在于:所述逻辑处理过程是对用户请求的服务过程;所述方法还包括:在所述服务过程的首个处理节点获取所述用户的用户标识,并为所述服务过程生成一个跟踪标识;所述服务过程的每个处理节点均将所述用户标识和跟踪标识传递到下一处理节点;所述为该处理节点生成日志记录,还包括:在生成的日志记录中记录所述用户标识和跟踪标识。8.如权利要求1-5、7中任一所述的方法,其特征在于:所述将该处理节点的步标识传递给下一处理节点,包括:采用以下方式将该处理节点的步标识传递给下一处理节点:该处理节点与下一处理节点属于不同系统时,将要传递的标识保存在HTTP头中传递给下一处理节点;或者该处理节点与下一处理节点属于同一系统时,将要传递的标识保存在日志变量中传递给下一处理节点。9.一种日志生成装置,其特征在于,包括在逻辑处理过程的处理节点设置的日志生成模块,所述日志生成模块包括:标识处理单元,设置为:获取上一处理节点的步标识,为本处理节点生成一个步标识并将本处理节点的步标识传递给下一处理节点;记录生成单元,设置为:为本处理节点生成日志记录,在所述日志记录中记录上一步标识和该处理节点的步标识,所述上一步标识为所述标识处理单元获取的上一处理节点的步标识。10.如权利要求9所述的装置,其特征在于:所述标识处理单元还设置为:在所述标识处理单元未获取到上一处理节点的步标识时,在为本处理节点生成的日志记录中将一个默认在首个处理节点使用的上一步标识作为要记录的上一步标识。11.如权利要求9所述的装置,其特征在于:所述记录生成单元为本处理节点生成日志记录,包括:在以下一种或多种事件发生时为本处理节点生成日志记录,且在生成的日志记录中记录本处理节点的节点标识、相应事件的事件标识和事件发生时间:进入该处理节点;离开该处理节点;该处理节点执行内部处理;该处理节点发起调用;该处理节点收到调用返回。12.如权利要求11所述的装置,其特征在于:所述逻辑处理过程的处理节点包括服务器中的系统和系统中的组件;所述记录生成单元为本处理节点生成日志记录,包括:如该处理节点为系统,在进入该系统和离开该系统的事件发生时为该处理节点生成日志记录;如该处理节点为组件,在进入该组件、离开该组件、该组件执行内部处理、该组件调用其他组件和该组件调用返回的事件发生时为该组件生成日志记录,且在生成的日志记录中记录该组件所在系统的系统标识。13.如权利要求11所述的装置,其特征在于:所述记录生成单元为本处理节点生成日志记录,包括:在该处理节点收到调用返回的事件发生时,在为该处理节点生成的日志记录...

【专利技术属性】
技术研发人员:祝顺民尤宏伟吕彪踏星飒立
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1