确定与特定业务相关的关联日志的方法和装置制造方法

文档序号:6506655阅读:181来源:国知局
确定与特定业务相关的关联日志的方法和装置制造方法
【专利摘要】本申请涉及一种确定与特定业务相关的关联日志的方法和装置。该方法可以包括如下步骤:在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性;在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性;以及基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日志。利用本申请的方法和装置,可以基于业务将关联日志从海量日志中确定出来以进行后续处理。
【专利说明】确定与特定业务相关的关联日志的方法和装置

【技术领域】
[0001]本申请涉及数据处理领域,更具体地涉及一种确定与特定业务相关的关联日志的方法和装置。

【背景技术】
[0002]在互联网应用中,每天都产生海量的数据,其中包括产生的海量日志,单个业务的日志分散在各台服务器上,每台服务器上不同业务的日志都混在一起而位于同一个日志文件里。在这种对于日志文件没有办法按照业务而将日志分离出来的情况下,无法快速有效地对业务出错原因进行排查。并且也无法将特定业务相关的日志进行历史记录的比对。例如,系统A的维护者,在集成测试过程中,发现调用系统B抛出未知异常,只能去寻求系统B的维护者的帮助。随后系统B发现异常是由系统C传递而来的,便又需要再去找系统C的维护者;最终发现异常是由系统D引起。于是线程上所有相关人员都被涉及,沟通成本巨大。现有方法由于采用人工的方式查找业务出错原因,效率很低,实施难度很大,往往一般的开发测试人员不具备这种能力。同时,即使熟悉的调查问题人员,要整理出业务执行路径的历史变化,也是非常困难的。
[0003]因此,需要一种数据处理的方法,通过该方法,可以从海量日志数据中确定与特定业务相关的关联日志,也即是说,从海量日志数据中将与特定业务相关的关联日志分离出来,从而能够快递有效地对业务出错原因进行排查,而且可以对比历史记录,查看业务路径的变化情况等等。


【发明内容】

[0004]因此,本申请的目的在于提供一种确定与特定业务相关的关联日志的方法和装置,以克服上述缺陷。根据本申请一个方面的实施例,提供一种确定与特定业务相关的关联日志的方法和装置。
[0005]根据本申请一个方面的实施例,提供一种确定与特定业务相关的关联日志的方法。该方法可以包括如下步骤:在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性;在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性;以及基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日
O
[0006]根据本申请的实施例,在该方法中所述预定算法可以是贪婪算法。
[0007]根据本申请的实施例,在该方法中,在被调用的一个或多个系统中生成一个或多个日志的步骤进一步可以包括:针对每一个链路,在发起首次调用的系统中生成所述与链路相关的所述标识。
[0008]根据本申请的实施例,在该方法中,在被调用的一个或多个系统中生成一个或多个日志的步骤可以进一步包括:针对每一个链路,将在该链路的发起首次调用的系统中所生成的所述标识向下一个被调用的系统传送。
[0009]根据本申请的实施例,在该方法中,产生与该特定业务相关的一个或多个链路可以进一步包括:同步地或异步地产生与该特定业务相关的一个或多个链路。
[0010]根据本申请的实施例,该方法可以进一步包括:对与所述特定业务相关的所有链路的关联日志进行进一步处理。
[0011]根据本申请的另一个方面的实施例,提供一种确定与特定业务相关的关联日志的装置。该装置可以包括:一个或多个链路产生模块,用于在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性;一个或多个日志生成模块,用于在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性;以及关联日志确定模块,用于基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日志。
[0012]根据本申请的实施例,该装置可以进一步包括:标识生成模块,用于在每个链路首次调用的系统中生成日志的时候生成所述与链路相关的所述标识。
[0013]根据本申请的实施例,该装置可以进一步包括:执行模块,用于对与所述特定业务相关的所有链路的关联日志进行进一步处理。
[0014]与现有技术相比,根据本申请的技术方案,通过与特定业务相关的链路上的日志所带的链路标识以及特定业务的业务关键属性,从而确定与特定业务相关的关联日志,进而优化了海量日志的数据处理并从而能够实现与业务相关的关联日志的管理和利用。

【专利附图】

【附图说明】
[0015]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0016]图1示出了根据本申请实施例的确定与特定业务相关的关联日志的方法的流程图;以及
[0017]图2示出了根据本申请实施例的确定与特定业务相关的关联日志的装置的框图。

【具体实施方式】
[0018]本申请的主要思想在于,通过在调用时发送方系统和接收方系统共同维护一个唯一通讯标识,来关联单次调用不同服务之间的链路;通过将一个链路上的本地线程日志的分离,来关联单次调用的本机日志。通过业务关键属性,将该业务的多次调用日志关联起来。从而从业务角度对日志进行了格式化分类,使调查业务人员可以在一个地方,看到本次业务在不同服务上的日志,并看到不同服务之间的调用时序图,从而有助于快速定位错误发生原因。
[0019]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020]参考图1,图1示出了根据本申请实施例的确定与特定业务相关的关联日志的方法的流程图。
[0021]在步骤101处,在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性。
[0022]举例来说,在特定业务被执行期间产生与该特定业务相关的一个或多个链路例如可以是用户在一个支付网页上通过执行一个操作而引发的该支付网页后台的一系列线程的调用。而该业务可以包含多个业务属性,其中的一些业务属性无法将该业务与其他业务区分开来,这样的属性叫做业务非关键属性;而其中另一些业务属性可以将该业务与其他业务区分开来,这样的属性叫做业务关键属性。本申请所关注的是该业务关键属性。沿用上面的例子,该支付业务的业务关键属性例如可以是交易号,浏览器会话,订单号等等。再例如,一个更通用的业务示例为登录操作。用户输入用户名和密码并点击登录按钮后所引发的后台的一系列线程的调用。而该特定业务的业务关键属性例如是用户名、密码、登录操作时的浏览器会话等。在登录这一特定业务被执行期间产生了与该特定业务相关的一个或多个链路。而每个链路包含该链路所经过的服务器上的相关线程。例如,登录系统A可能需要知道密码和用户名是否一致,并且还需要知道执行登录操作的IP地址与以前的IP地址是否一致。这时候例如可能涉及两个链路:一个链路可能调用密码核查系统B,在该密码核查系统B上的线程检查密码和用户名是否一致;另一个链路可能调用IP地址管理系统C,在该IP地址管理系统C上的线程将检查该用户的登录IP地点是否与以前一致。
[0023]应当理解,实际情形可能比上述示例复杂,例如实际链路更多,涉及的系统以及线程也更多,并且更多的系统涉及多个链路等等,但为了不模糊本申请,以上述两个链路的示例为例来描述本申请。
[0024]在产生一个或多个链路之后,在步骤102处,在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性。更具体地,被调用的系统可以是分布式系统,从而,当调用一个分布式系统时,将可能涉及该分布式系统相关的一个或多个服务器,从而相应地在该相关的一个或多个服务器上生成一个或多个日志。
[0025]根据本申请的实施例,在被调用的一个或多个系统中生成一个或多个日志的步骤可以进一步包括:针对每一个链路,在发起首次调用的系统中生成所述与链路相关的所述标识。
[0026]而且,在被调用的一个或多个系统中生成一个或多个日志的步骤可以进一步包括:针对每一个链路,将在该链路的发起首次调用的系统中所生成的所述标识向下一个被调用的系统传送。
[0027]从而,与同一个链路相关的一个或多个日志都带有相同的标识。
[0028]具体而言,例如,在与特定业务相关的第一链路上的第一系统在调用第二系统时产生第一链路的第一标识并向第二系统传送;如果该第二系统还要调用第三系统,则不会再产生标识,取而代之的是仅仅将该第一标识向第三系统传送。并且,在该第一链路中,在被调用的一个或多个系统(第一、第二以及第三系统)中相应地生成一个或多个日志,并且,第一链路上所涉及到的系统所产生的日志均带着该第一标识。应该理解,在每一个链路上所涉及的系统可以是一个或多个系统。
[0029]同理,在与特定业务相关的第二链路上的第四系统在调用第五系统时产生第二链路的第二标识并向第五系统传送;如果该第五系统还要调用第六系统,则不会再产生标识,取而代之的是仅仅将该第二标识向第六系统传送。并且,在该第二链路中,在被调用的一个或多个系统(第四、第五以及第六系统)中相应地生成一个或多个日志,并且,第二链路上所涉及到的系统所产生的日志均带着该第二标识。
[0030]也即是说,在相同链路上的日志具有相同的标识,并且,在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性。
[0031]应该理解,特定业务可以涉及一个或多个链路,并且在每一个链路上所涉及的系统可以是一个或多个系统。
[0032]应当指出,在某个特定业务执行时与该业务相关的链路上,不同链路可能涉及相同的系统(例如上述登录业务示例中的第一链路和第二现场都涉及登录系统),也可能涉及不同的系统。
[0033]举例来说,仍然以登录业务为例,登录系统A在调用密码核查系统B时产生第一链路的第一标识,从而第一链路上所涉及到的系统所产生的日志均带着该第一标识。登录系统A在调用IP地址核查系统C时产生第二链路的第二标识,从而第二链路上所涉及到的系统所产生的日志均带着该第二标识。并且在每一个链路上的日志中的至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性。例如,第一链路上的至少一个日志可能包含“密码”属性;第二链路上的至少一个日志可能包含“用户名”属性。诸如此类。
[0034]在产生带有标识的日志之后,在步骤103处,基于链路标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述业务相关的所有链路的关联日志。优选地,所述预定算法是贪婪算法。
[0035]具体而言,基于链路标识,可以确定哪些日志属于同一链路。例如,具有第一标识的日志为第一链路的日志、具有第二表不的日志为第二链路的日志、具有第三标识的日志为第三链路的日志。其中第一链路、第二链路与特定业务相关,第三链路与特定业务无关。链路之间的相关性是这样判断的:需要确定与特定业务(即靠业务关键属性区分的一个业务)相关的链路,那么就获取到了该特定业务的业务关键属性I和它的值,基于该“第一个”业务关键属性1,去比对其他链路,确定第一链路有该业务关键属性I而且值与该特定业务的业务关键属性I的值相等,因此确定第一链路与这个特定业务相关。然后第一链路的其他业务关键属性及其值也被获取出来(例如业务关键属性2)(为了避免模糊或复杂化本申请的技术方案,将该示例进行了简化)。假设第二链路具有业务关键属性2并且值也和第一链路的关键属性2的值相等,那么确定第二链路也是和这个特定业务相关的,然后把第二属性的其他业务关键属性(例如业务关键属性3)获取出来,与属性2,属性I放在一起。假设第三个链路,具有业务关键属性I但是值和上文的业务关键属性I的不同,那么它就被认为不是与该特定业务关联的链路。然后,基于同一链路日志中所包含的业务关键属性,通过预定算法确定与特定业务相关的第一和第二链路的关联日志。例如,可以从系统全量日志中确定与特定业务相关的第一和第二链路的关联日志。
[0036]例如,与第一业务相关的第一链路涉及第一标识ID1,所涉及的第一系统包含两个日志;第二系统包含两个日志;第三系统包含三个日志;并且其中第二系统中的第二个日志包含业务关键属性“密码”,其中第三系统中的第一个日志包含业务关键属性“用户名”。例如,与第一业务相关的第二链路涉及第二标识ID2,所涉及的第四系统包含三个日志;第五系统包含两个日志;第六系统包含一个日志;并且其中第四系统中的第一个日志包含业务关键属性“用户名”和“IP地址”。例如,与第二业务相关的第三链路涉及第三标识ID3,所涉及的第七系统包含一个日志;第八系统包含两个日志;并且其中第八系统中的第一个日志包含业务关键属性“订单号”。
[0037]通过贪婪算法,可以将业务关键属性“密码”扩展为“密码” “用户名”,“IP地址”。从而将具有扩展后业务关键属性的日志确定为与该特定业务相关的关联日志。也即是说,将第一系统、第二系统以及第三系统上的带有第一标识IDl的日志和第四系统、第五系统以及第六系统上的带有第二标识ID2的日志确定为与该特定业务相关的关联日志。而同时第七和第八系统上带有标识ID3的日志不被确定为与该特定业务相关的关联日志。通过本申请的方法,可以确定与特定业务相关的关联日志,从而将与特定业务相关的关联日志从分集系统中各个系统中的海量日志中分离出来,以用于进一步的处理。
[0038]将业务关键属性进行扩展的算法或方式不限于贪婪算法。本申请也可以通过其他算法来将业务关键属性进行扩展从而使得扩展后的业务关键属性集合与该特定业务相关。
[0039]根据本申请的实施例,生成与该特定业务相关的一个或多个链路进一步可以包括:同步地或异步地生成与该特定业务相关的一个或多个链路。
[0040]例如,与第一业务相关的第一链路涉及第一标识ID1,所涉及的第一系统包含两个日志;第二系统包含两个日志;第三系统包含三个日志;并且其中第二系统中的第二个日志包含业务关键属性“密码”,其中第三系统中的第一个日志包含业务关键属性“用户名”。此时第一链路所涉及的线程结束。第一链路的业务关键属性为“密码”和“用户名”。过若干时间后,由第二系统发起第二链路涉及第二标识ID2,所涉及的第二系统包含三个日志;第四系统包含一个日志;第五系统包含两个日志;并且其中第三系统中的第一个日志包含业务关键属性“交易号”,其中第五系统中的第一个日志包含业务关键属性“用户名”。此时第二链路的业务关键属性为“用户名”和“交易号”。此时如果第一链路的“用户名”和第二链路的“用户名”一致,则可以将这两个链路的日志确定为与该特定业务相关的关联日志。
[0041]至此,已经描述了本申请实施例的确定与特定业务相关的关联日志的方法。
[0042]根据本申请的实施例,还提供一种确定与特定业务相关的关联日志的装置200,如图2所示,图2为根据本申请实施例的确定与特定业务相关的关联日志的装置的框图。该设备可以包括:链路产生模块210、日志生成模块220、以及关联日志确定模块230。
[0043]根据本申请实施例的装置,一个或多个链路产生模块210可以用于在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性。
[0044]并且,根据本申请实施例的装置,一个或多个日志生成模块220可以用于在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性。
[0045]关联日志确定模块230可以用于基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日志。其中,所述预定算法是贪婪算法。
[0046]根据本申请实施例的装置,可以进一步包括:标识生成模块,该模块可以用于在每个链路首次调用的系统中生成日志的时候生成所述与链路相关的所述标识。
[0047]根据本申请实施例的装置,可以进一步包括:执行模块,用于对与所述特定业务相关的所有链路的关联日志进行进一步处理
[0048]由于本实施例的装置所实现的功能基本相应于前述图1所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
[0049]在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0050]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
[0051]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0052]还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0053]本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0054]以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
【权利要求】
1.一种确定与特定业务相关的关联日志的方法,其特征在于,包括: 在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性; 在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性;以及 基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日志。
2.根据权利要求1所述的方法,其特征在于,所述预定算法是贪婪算法。
3.根据权利要求1所述的方法,其特征在于,在被调用的一个或多个系统中生成一个或多个日志的步骤进一步包括:针对每一个链路,在发起首次调用的系统中生成所述与链路相关的所述标识。
4.根据权利要求3所述的方法,其特征在于,在被调用的一个或多个系统中生成一个或多个日志的步骤进一步包括:针对每一个链路,将在该链路的发起首次调用的系统中所生成的所述标识向下一个被调用的系统传送。
5.根据权利要求1所述的方法,其特征在于,产生与该特定业务相关的一个或多个链路进一步包括:同步地或异步地产生与该特定业务相关的一个或多个链路。
6.根据权利要求1-4任一项所述的方法,进一步包括:对与所述特定业务相关的所有链路的关联日志进行进一步处理。
7.一种确定与特定业务相关的关联日志的装置,其特征在于,包括: 一个或多个链路产生模块,用于在特定业务被执行期间产生与该特定业务相关的一个或多个链路,其中,所述特定业务具有一个或多个业务关键属性; 一个或多个日志生成模块,用于在针对与特定业务相关的每一个链路中,在被调用的一个或多个系统中相应地生成一个或多个日志,其中,与相同链路相关的日志具有相同的标识,并且在每个链路中,至少一个日志包含所述一个或多个业务关键属性中的至少一个业务关键属性;以及 关联日志确定模块,用于基于所述标识并且基于每个链路中的至少一个日志所包含的业务关键属性,通过预定算法确定与所述特定业务相关的所有链路的关联日志。
8.根据权利要求7所述的装置,其特征在于,所述预定算法是贪婪算法。
9.根据权利要求7所述的装置,其特征在于,进一步包括:标识生成模块,用于在每个链路首次调用的系统中生成日志的时候生成所述与链路相关的所述标识。
10.根据权利要求7-9任一项所述的装置,进一步包括:执行模块,用于对与所述特定业务相关的所有链路的关联日志进行进一步处理。
【文档编号】G06F17/30GK104346365SQ201310325577
【公开日】2015年2月11日 申请日期:2013年7月30日 优先权日:2013年7月30日
【发明者】刘晖, 孙亦山, 李嘉鹏, 谢慧峰, 张永为 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1