一种定位业务运行异常的方法、装置及存储介质与流程
未命名
10-21
阅读:52
评论:0
1.本公开涉及计算机技术领域,提供了一种定位业务运行异常的方法、装置及存储介质。
背景技术:
2.随着市场和科技的发展,应用系统的复杂度也快速提升,随着微服务架构的演进,系统间调用频繁,系统流量出入口日志信息更加能够体现应用系统的运行情况,通过日志查询来定位问题是开发人员定位和修复问题的重要解决方法。
3.然而,业务在运行过程中涉及的微服务的个数较多,各个微服务之间相互调用,并且,业务运行时实时产生日志,当日志显示异常时无法快速的定位出问题所在。
技术实现要素:
4.本公开实施例提供一种定位业务运行异常的方法、装置及存储介质,用以根据异常日志便捷准确的确定出业务运行异常的位置。
5.本公开提供的具体技术方案如下:
6.第一方面,本公开实施例提供了一种定位业务运行异常的方法,包括:
7.基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口;
8.基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点;
9.在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置。
10.可选地,基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,包括:
11.对业务运行过程中出现的异常日志进行解析,基于解析结果得到出现异常日志的业务所属的微服务,并将所属的微服务确定为目标微服务;
12.基于预先建立的微服务与决策树的映射关系,将与目标微服务相关联的决策树确定为目标决策树。
13.可选地,每个微服务包含一个服务入口和一个服务出口;每个微服务关联的决策树包括一个树根节点、至少一个根节点和至少一个叶子节点;通过以下方式建立微服务与决策树的映射关系:
14.基于业务的运行逻辑、各微服务的服务入口和服务出口,确定业务在运行过程中需要调用的各个微服务,其中,任意相邻的两个微服务通过服务入口和服务出口相关联;
15.确定业务在运行每个微服务时生成的各个日志;
16.针对任意一个微服务对应的各个日志执行以下操作:根据微服务运行过程的中间
时刻确定树根节点,根据微服务运行过程中预设的各第一时段确定各根节点,根据运行过程中预设的各第二时段确定各叶子节点,并根据各个日志的生成时刻所属的第二时段,将各个日志存储到对应的叶子节点中,并基于树根节点、各根节点和各叶子节点,确定任意一个微服务关联的决策树。
17.可选地,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,包括:
18.在目标决策树中,查找异常日志的生成时刻所属的第二时段;
19.将查找到的第二时段在目标决策树中对应的叶子节点,确定为目标叶子节点。
20.可选地,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,包括:
21.读取目标叶子节点中存储的各个日志的报错信息;
22.在读取到的各个报错信息中,查找与异常日志的报错信息一致的目标日志。
23.可选地,基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,包括:
24.对目标日志的路径信息进行解析,获取与目标日志相关联的参考日志;
25.若参考日志的生成时刻早于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务入口;
26.若参考日志的生成时刻晚于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务出口。
27.可选地,方法还包括:
28.通过动态脚本语言dsl对目标决策树包括的树根节点、至少一个根节点和至少一个叶子节点进行可视化展示。
29.第二方面,本公开实施例还提供了一种定位业务运行异常的装置,包括:
30.决策树确定单元,用于基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口;
31.节点确定单元,用于基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点;
32.查找单元,用于在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置。
33.可选地,基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,决策树确定单元用于:
34.对业务运行过程中出现的异常日志进行解析,基于解析结果得到出现异常日志的业务所属的微服务,并将所属的微服务确定为目标微服务;
35.基于预先建立的微服务与决策树的映射关系,将与目标微服务相关联的决策树确定为目标决策树。
36.可选地,每个微服务包含一个服务入口和一个服务出口;每个微服务关联的决策树包括一个树根节点、至少一个根节点和至少一个叶子节点;通过以下方式建立微服务与
决策树的映射关系:
37.基于业务的运行逻辑、各微服务的服务入口和服务出口,确定业务在运行过程中需要调用的各个微服务,其中,任意相邻的两个微服务通过服务入口和服务出口相关联;
38.确定业务在运行每个微服务时生成的各个日志;
39.针对任意一个微服务对应的各个日志执行以下操作:根据微服务运行过程的中间时刻确定树根节点,根据微服务运行过程中预设的各第一时段确定各根节点,根据运行过程中预设的各第二时段确定各叶子节点,并根据各个日志的生成时刻所属的第二时段,将各个日志存储到对应的叶子节点中,并基于树根节点、各根节点和各叶子节点,确定任意一个微服务关联的决策树。
40.可选地,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,节点确定单元用于:
41.在目标决策树中,查找异常日志的生成时刻所属的第二时段;
42.将查找到的第二时段在目标决策树中对应的叶子节点,确定为目标叶子节点。
43.可选地,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,查找单元用于:
44.读取目标叶子节点中存储的各个日志的报错信息;
45.在读取到的各个报错信息中,查找与异常日志的报错信息一致的目标日志。
46.可选地,基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,查找单元还用于:
47.对目标日志的路径信息进行解析,获取与目标日志相关联的参考日志;
48.若参考日志的生成时刻早于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务入口;
49.若参考日志的生成时刻晚于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务出口。
50.可选地,还包括:
51.通过动态脚本语言dsl对目标决策树包括的树根节点、至少一个根节点和至少一个叶子节点进行可视化展示。
52.第三方面,一种服务器,包括:
53.存储器,用于存储可执行指令;
54.处理器,用于读取并执行存储器中存储的可执行指令,以实现如第一方面任一项的方法。
55.第四方面,一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
56.本公开有益效果如下:
57.综上所述,本公开实施例中,提供的一种定位业务运行异常的方法、装置及存储介质,该方法包括:基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口,基于异常日志的生成时刻所属的时段,在
目标决策树中确定目标叶子节点,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,从而能够根据异常日志便捷准确的确定出业务运行异常的位置。
58.本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
59.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
60.图1为本公开实施例中的对业务运行异常进行定位的系统架构示意图;
61.图2为本公开实施例中一种定位业务运行异常的方法的流程示意图;
62.图3为本公开实施例中根据异常日志确定目标决策树的流程示意图;
63.图4为本公开实施例根据异常日志的生成时刻确定目标叶子节点的流程示意图;
64.图5为本公开实施例中查找与异常日志的报错信息一致的目标日志的流程示意图;
65.图6为本公开实施例中基于目标日志的路径信息确定异常日志在目标微服务中所处的位置的流程示意图;
66.图7为本公开实施例中一种定位业务运行异常的装置的逻辑架构示意图;
67.图8为本公开实施例中服务器的实体架构示意图。
具体实施方式
68.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开技术方案的一部分实施例,而不是全部的实施例。基于本公开文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开技术方案保护的范围。
69.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够使用除了在这里图示或描述的那些以外的顺序实施。
70.下面结合附图对本公开优选的实施方式进行详细说明。
71.参阅图1所示,本公开实施例中,系统中包含了至少一个服务器,在图1中,当业务在服务器中运行时调用到的多个微服务(微服务1、微服务2和微服务n等)分时在服务器中运行,随着业务的运行,服务器上会产生大量的日志,通常,日志产生的时间间隔与业务运行的频率相关。
72.本公开实施例中,一种定位业务运行异常的方法的实现,主要在服务器侧执行,下面进行具体介绍。
73.参阅图2所示,本公开实施例中,一种定位业务运行异常的具体流程如下:
74.步骤201:基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口。
75.由于,业务运行过程中调用的微服务的数量不确定,为了便于后续查找异常日志是属于哪一个微服务的,本技术实施例中会预先为每一个微服务建立一个决策树,从而建立起各个微服务与决策树的映射关系。
76.并且,每个微服务包含一个服务入口和一个服务出口;每个微服务关联的决策树包括一个树根节点、至少一个根节点和至少一个叶子节点。
77.具体通过以下方式建立微服务与决策树的映射关系:
78.(1)基于业务的运行逻辑、各微服务的服务入口和服务出口,确定业务在运行过程中需要调用的各个微服务,其中,任意相邻的两个微服务通过服务入口和服务出口相关联。
79.实施过程中,先对业务进行分析,获取到业务的运行逻辑,上述运行逻辑即包括业务所调用的各个微服务的先后关系。为了明确出业务在运行过程中需要调用的各个微服务的个数,逐一确定出业务包括的各个微服务的服务入口和服务出口,在获取到多个服务入口和服务出口后,以表征同一个微服务的服务入口和服务出口为基准,从而确定出业务对应的微服务,例如,业务中包括微服务a的服务入口a和服务出口a,那么,根据服务入口a和服务出口a即确定业务在运行过程中调用了微服务a。以此类推,确定出业务在运行过程中需要调用的各个微服务。
80.另外需要补充说明的是,业务在运行过程中调用的任意相邻的两个微服务通过服务入口和服务出口相关联。例如,业务在运行过程中先后调用了微服务a和微服务b,那么,微服务a的服务出口a和微服务b的服务入口b是相关联的。
81.(2)确定业务在运行每个微服务时生成的各个日志。
82.实施过程中,在明确了业务运行过程中调用的各个微服务后,进一步将业务运行过程中产生的日志以微服务为单位进行划分,即确定业务在运行每个微服务时生成的各个日志。例如,业务在运行微服务a时产生的日志都携带有微服务a的标识,这样可以根据微服务a的标识确定出业务在运行微服务a时生成的多个日志。
83.(3)针对任意一个微服务对应的各个日志执行以下操作:根据微服务运行过程的中间时刻确定树根节点,根据微服务运行过程中预设的各第一时段确定各根节点,根据运行过程中预设的各第二时段确定各叶子节点,并根据各个日志的生成时刻所属的第二时段,将各个日志存储到对应的叶子节点中,并基于树根节点、各根节点和各叶子节点,确定任意一个微服务关联的决策树。
84.在明确了业务运行过程中调用的各个微服务以及获取到了每个微服务对应的日志后,根据每个微服务对应的日志来建立与该微服务相关联的决策树。实施过程中,先以时间为特征来确定决策树的树根节点、各根节点和各叶子节点,优选地,将该微服务运行过程的中间时刻确定为树根节点,例如,微服务a的运行时刻为0点到24点,将运行过程的中间时刻12点作为树根节点。
85.根据微服务运行过程中预设的各第一时段确定各根节点,例如,预设的各第一时段之间的间隔为4小时,仍以上例微服务a的运行时刻为0点到24点来说明,那么,各第一时
段分别为0-4点、4-8点、8-12点、12-16点、16-20点、20-24点,进而根据运行过程中预设的各第二时段确定各叶子节点,仍以上例微服务a的运行时刻为0点到24点来说明,例如,预设的各第一时段之间的间隔为2小时,那么,各第二时段分别为0-2点、2-4点、4-6点、6-8点、8-10点、10-12点、12-14点、14点-16点、16-18点、18-20点、20-22点、22-24点。在确定了树根节点、各根节点和各叶子节点后,根据各个日志的生成时刻来确定所属的第二时段,从而确定出各个日志对应的叶子节点,进而将各个日志存储到对应的叶子节点中,这样,树根节点、各根节点和各叶子节点即确定出了与上述微服务关联的决策树。
86.当为每个微服务都建立了关联的决策树后,各个微服务与各对应的决策树即组成了微服务与决策树的映射关系,这样,在后续出现异常日志时,可通过该映射关系找到与异常日志对应的决策树,从而有效缩减了查找异常的范围,进而根据决策树快速确定出业务运行异常的位置。
87.此外,为了便于定位业务运行异常的位置,上述方法还包括:
88.通过动态脚本语言(domain specific language,dsl)对目标决策树包括的树根节点、至少一个根节点和至少一个叶子节点进行可视化展示。
89.即在目标决策树的建立过程中,通过dsl对树根节点、根节点和叶子节点进行相应的转换,并进行可视化展示。
90.在确定了微服务与决策树的映射关系后,上述基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,参阅图3所示,包括:
91.步骤2011:对业务运行过程中出现的异常日志进行解析,基于解析结果得到出现异常日志的业务所属的微服务,并将所属的微服务确定为目标微服务。
92.实施过程中,为了找到异常日志对应的决策树,先对业务运行过程中出现的异常日志进行解析,在得到解析结果后,根据上述解析结果得到出现异常日志的业务所属的微服务,例如,根据解析结果中包括的微服务的标识等来确定异常日志对应的微服务,并将该微服务确定为目标微服务。
93.步骤2012:基于预先建立的微服务与决策树的映射关系,将与目标微服务相关联的决策树确定为目标决策树。
94.实施过程中,在得到目标微服务后,在上述预先建立的微服务与决策树的映射关系中,根据目标微服务查找相关联的决策树,并将查找到的与目标微服务相关联的决策树确定为目标决策树,该目标决策树即为异常日志出现问题的范围所在。
95.步骤202:基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点。
96.在确定了目标决策树后,进一步确定异常日志出现问题的目标叶子节点,即将异常的排查范围进一步缩小。
97.实施过程中,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,参阅图4所示,包括:
98.步骤2021:在目标决策树中,查找异常日志的生成时刻所属的第二时段。
99.考虑到目标决策树是以时间为基准建立的,在找到该异常日志对应的目标决策树后,根据该异常日志的生成时刻与预先确定的第二时段来确定该生成时刻所属的第二时段。例如,异常日志的生成时刻为1点10分20秒,假设,第二时段为0-2点、2-4点、4-6点、6-8
点、8-10点、10-12点、12-14点、14点-16点、16-18点、18-20点、20-22点、22-24点,那么,该异常日志的生成时刻所属的第二时段为0-2点这一个第二时段。
100.步骤2022:将查找到的第二时段在目标决策树中对应的叶子节点,确定为目标叶子节点。
101.实施过程中,在查找到第二时段后,继续根据该查找到的第二时段在目标决策树中查找对应的叶子节点,并将第二时段对应的叶子节点确定为目标叶子节点,该目标叶子节点中即存储了业务在查找到的第二时段运行的各个日志。
102.步骤203:在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置。
103.在确定了目标叶子节点后,进一步在目标叶子节点包括的各个日志中查找与异常日志相一致的日志,即目标日志。
104.在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,参阅图5所示,包括:
105.步骤2031:读取目标叶子节点中存储的各个日志的报错信息。
106.考虑到异常日志的类型多种多样,本技术实施例中,在对业务运行产生的日志进行存储时即会根据各个日志的报错信息来将各个日志进行分类,例如,上述报错信息可以是错误信息、警告信息等。为了查找目标日志,实施过程中,先读取目标叶子节点中存储的各个日志的报错信息,即将该目标叶子节点中的各个异常日志都筛选出来,并且,各个异常日志都相应的标识了报错信息。
107.步骤2032:在读取到的各个报错信息中,查找与异常日志的报错信息一致的目标日志。
108.实施过程中,将上述筛选出来的各个报错信息都读取出来之后,将异常日志的报错信息与上述读取出来的各个报错信息进行比对,与异常信息报错信息一致的日志即为目标日志。
109.在确定出目标日志后,基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,参阅图6所示,包括:
110.步骤2033:对目标日志的路径信息进行解析,获取与目标日志相关联的参考日志。
111.业务调用的各个微服务都是相互关联的,为了定位出业务运行异常的位置,实施过程中,对上述目标日志的路径信息进行解析,这里的路径信息表征了该日志对应的业务与哪些其他的微服务相关联,在此基础上,获取与目标日志相关联的参考日志,例如,与目标日志相关联的参考日志表征该目标日志是从另一个微服务出来的流量日志。
112.步骤2034:若参考日志的生成时刻早于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务入口。
113.实施过程中,在确定了参考日志后,进一步比较参考日志的生成时刻与异常日志的生成时刻之间的早晚关系,如果,参考日志的生成时刻早于异常日志的生成时刻,就确定异常日志在目标微服务的目标服务入口,即业务的运行先产生参考日志,后产生异常日志。
114.步骤2035:若参考日志的生成时刻晚于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务出口。
115.如果,参考日志的生成时刻晚于异常日志的生成时刻,就确定异常日志在目标微
服务的目标服务出口,即业务的运行先产生异常日志,后产生参考日志。
116.基于同一发明构思,参阅图7所示,本公开实施例中提供一种定位业务运行异常的装置,包括:
117.决策树确定单元701,用于基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口;
118.节点确定单元702,用于基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点;
119.查找单元703,用于在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置。
120.可选地,基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,决策树确定单元701用于:
121.对业务运行过程中出现的异常日志进行解析,基于解析结果得到出现异常日志的业务所属的微服务,并将所属的微服务确定为目标微服务;
122.基于预先建立的微服务与决策树的映射关系,将与目标微服务相关联的决策树确定为目标决策树。
123.可选地,每个微服务包含一个服务入口和一个服务出口;每个微服务关联的决策树包括一个树根节点、至少一个根节点和至少一个叶子节点;通过以下方式建立微服务与决策树的映射关系:
124.基于业务的运行逻辑、各微服务的服务入口和服务出口,确定业务在运行过程中需要调用的各个微服务,其中,任意相邻的两个微服务通过服务入口和服务出口相关联;
125.确定业务在运行每个微服务时生成的各个日志;
126.针对任意一个微服务对应的各个日志执行以下操作:根据微服务运行过程的中间时刻确定树根节点,根据微服务运行过程中预设的各第一时段确定各根节点,根据运行过程中预设的各第二时段确定各叶子节点,并根据各个日志的生成时刻所属的第二时段,将各个日志存储到对应的叶子节点中,并基于树根节点、各根节点和各叶子节点,确定任意一个微服务关联的决策树。
127.可选地,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,节点确定单元702用于:
128.在目标决策树中,查找异常日志的生成时刻所属的第二时段;
129.将查找到的第二时段在目标决策树中对应的叶子节点,确定为目标叶子节点。
130.可选地,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,查找单元703用于:
131.读取目标叶子节点中存储的各个日志的报错信息;
132.在读取到的各个报错信息中,查找与异常日志的报错信息一致的目标日志。
133.可选地,基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,查找单元703还用于:
134.对目标日志的路径信息进行解析,获取与目标日志相关联的参考日志;
135.若参考日志的生成时刻早于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务入口;
136.若参考日志的生成时刻晚于异常日志的生成时刻,则确定异常日志在目标微服务的目标服务出口。
137.可选地,还包括:
138.通过动态脚本语言dsl对目标决策树包括的树根节点、至少一个根节点和至少一个叶子节点进行可视化展示。
139.基于同一发明构思,参阅图8所示,本公开实施例提供一种服务器,包括:存储器801,用于存储可执行指令;处理器802,用于读取并执行存储器中存储的可执行指令,并执行上述第一方面的任意一种方法。
140.基于同一发明构思,本公开实施例提供一种计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一项所述的方法。
141.综上所述,本公开实施例中,提供的一种定位业务运行异常的方法、装置及存储介质,该方法包括:基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,从而能够根据异常日志便捷准确的确定出业务运行异常的位置。
142.本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品系统。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品系统的形式。
143.本公开是参照根据本公开的方法、设备(系统)、和计算机程序产品系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以生成一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令生成用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
144.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令生成包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
145.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以生成计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
146.显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
技术特征:
1.一种定位业务运行异常的方法,其特征在于,所述方法包括:基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,所述目标决策树是预先根据业务运行所述目标微服务生成的各个日志建立的,所述目标决策树包括至少一个叶子节点,各个所述叶子节点用于分别存储业务在不同时段运行所述目标微服务生成的各个日志,所述目标微服务包括目标服务入口和目标服务出口;基于所述异常日志的生成时刻所属的时段,在所述目标决策树中确定目标叶子节点;在所述目标叶子节点包括的各个日志中,查找与所述异常日志的报错信息一致的目标日志,并基于所述目标日志的路径信息确定所述异常日志在所述目标微服务中所处的位置。2.如权利要求1所述的方法,其特征在于,所述基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,包括:对业务运行过程中出现的所述异常日志进行解析,基于解析结果得到出现所述异常日志的业务所属的微服务,并将所述所属的微服务确定为所述目标微服务;基于预先建立的微服务与决策树的映射关系,将与所述目标微服务相关联的决策树确定为所述目标决策树。3.如权利要求2所述的方法,其特征在于,每个微服务包含一个服务入口和一个服务出口;每个微服务关联的决策树包括一个树根节点、至少一个根节点和至少一个叶子节点;通过以下方式建立所述微服务与决策树的映射关系:基于业务的运行逻辑、各微服务的服务入口和服务出口,确定业务在运行过程中需要调用的各个微服务,其中,任意相邻的两个所述微服务通过服务入口和服务出口相关联;确定业务在运行每个所述微服务时生成的各个日志;针对任意一个所述微服务对应的各个所述日志执行以下操作:根据所述微服务运行过程的中间时刻确定所述树根节点,根据所述微服务运行过程中预设的各第一时段确定各所述根节点,根据运行过程中预设的各第二时段确定各所述叶子节点,并根据各个所述日志的生成时刻所属的第二时段,将各个日志存储到对应的叶子节点中,并基于所述树根节点、各所述根节点和各所述叶子节点,确定任意一个所述微服务关联的决策树。4.如权利要求3所述的方法,其特征在于,所述基于所述异常日志的生成时刻所属的时段,在所述目标决策树中确定目标叶子节点,包括:在所述目标决策树中,查找所述异常日志的生成时刻所属的第二时段;将查找到的所述第二时段在所述目标决策树中对应的叶子节点,确定为所述目标叶子节点。5.如权利要求1所述的方法,其特征在于,所述在所述目标叶子节点包括的各个日志中,查找与所述异常日志的报错信息一致的目标日志,包括:读取所述目标叶子节点中存储的各个日志的报错信息;在读取到的各个所述报错信息中,查找与所述异常日志的报错信息一致的目标日志。6.如权利要求1所述的方法,其特征在于,所述基于所述目标日志的路径信息确定所述异常日志在所述目标微服务中所处的位置,包括:对所述目标日志的路径信息进行解析,获取与所述目标日志相关联的参考日志;若所述参考日志的生成时刻早于所述异常日志的生成时刻,则确定所述异常日志在所
述目标微服务的所述目标服务入口;若所述参考日志的生成时刻晚于所述异常日志的生成时刻,则确定所述异常日志在所述目标微服务的所述目标服务出口。7.如权利要求1~6任一项所述的方法,其特征在于,所述方法还包括:通过动态脚本语言dsl对所述目标决策树包括的树根节点、至少一个根节点和至少一个所述叶子节点进行可视化展示。8.一种定位业务运行异常的装置,其特征在于,包括:决策树确定单元,用于基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,其中,所述目标决策树是预先根据业务运行所述目标微服务生成的各个日志建立的,所述目标决策树包括至少一个叶子节点,各个所述叶子节点用于分别存储业务在不同时段运行所述目标微服务生成的各个日志,所述目标微服务包括目标服务入口和目标服务出口;节点确定单元,用于基于所述异常日志的生成时刻所属的时段,在所述目标决策树中确定目标叶子节点;查找单元,用于在所述目标叶子节点包括的各个日志中,查找与所述异常日志的报错信息一致的目标日志,并基于所述目标日志的路径信息确定所述异常日志在所述目标微服务中所处的位置。9.一种服务器,其特征在于,包括:存储器,用于存储可执行指令;处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如权利要求1-7任一项所述的方法。10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行如权利要求1-7任一项所述的方法。
技术总结
本公开涉及计算机领域,公开了一种定位业务运行异常的方法、装置及存储介质,该方法为:基于业务运行过程中异常日志对应的目标微服务,确定目标决策树,目标决策树是预先根据业务运行目标微服务生成的各个日志建立的,目标决策树包括至少一个叶子节点,各个叶子节点用于分别存储业务在不同时段运行目标微服务生成的各个日志,目标微服务包括目标服务入口和目标服务出口,基于异常日志的生成时刻所属的时段,在目标决策树中确定目标叶子节点,在目标叶子节点包括的各个日志中,查找与异常日志的报错信息一致的目标日志,并基于目标日志的路径信息确定异常日志在目标微服务中所处的位置,从而能够根据异常日志便捷准确的确定出业务运行异常的位置。业务运行异常的位置。业务运行异常的位置。
技术研发人员:周慧英 肖彦昌 陈靖翔
受保护的技术使用者:中国电信股份有限公司
技术研发日:2023.07.06
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/