一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数据全链路监测的归因方法和装置与流程

2022-02-22 22:36:08 来源:中国专利 TAG:


1.本发明涉及软件测试领域,尤其涉及一种基于数据全链路监测的归因方法和装置。


背景技术:

2.线上问题通常是指大规模的影响线上服务可用性的问题或者事件,主要包括发现问题,定位问题和解决问题三部分。发现问题可以通过用户投诉,监控报警等多个手段来发现,而定位问题即归因是需要找到发生问题的根本原因,从而才能给出最合适的解决方案,对于复杂系统来说定位问题是一个很关键确不容易的事情。现有技术中,通过对业务核心指标的监测,可以及时发现指标异常类线上问题,技术人员查看报警日志和系统日志,人工分析和定位问题。对于由多个单点组成的复杂系统,更多关注的是各类指标结果数据的监测报警,很难定位到根本原因。
3.在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
4.现有技术中,人工定位问题困难、不及时和效率低。


技术实现要素:

5.本发明实施例提供一种基于数据全链路监测的归因方法和装置,解决了人工定位问题困难、不及时和效率低的问题。
6.为达上述目的,一方面,本发明实施例提供一种基于数据全链路监测的归因方法,包括:
7.通过各监控模块监控相应的功能模块;
8.当特定功能模块相应的监控模块发生报警时,根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块,作为引起所述特定功能模块的监控模块发生报警的故障功能模块;
9.其中,预先为各功能模块添加相应的监控模块。
10.进一步地,还包括:通过各监控模块监控相应的功能模块内的各服务模块,其中,功能模块由服务模块组成;
11.根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块;
12.预先为各功能模块内的各服务模块添加相应的监控模块。
13.进一步地,还包括:展示所述故障功能模块和/或所述故障服务模块对应的预置的故障原因;
14.其中,所述预置的故障原因预先与每个功能模块和/或服务模块绑定。
15.进一步地,所述根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块,作为引起所述特定功能模块的监控模块发生报警的故障功能模块,具体为:
16.按预置的配置信息中定义的查找路径,检查各条查找路径上的各功能模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的功能模块作为故障功能模块,并根据所述预置的配置信息给出该故障功能模块相应的故障原因;
17.所述根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,具体为:
18.按所述预置的配置信息中定义的查找路径,检查各条查找路径上的各服务模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,并根据所述预置的配置信息给出该故障服务模块相应的故障原因;
19.其中,所述配置信息根据所述功能模块依赖拓扑关系和/或所述服务模块依赖拓扑关系建立,并记录所述查找路径上的各功能模块和/或各服务模块各自对应的故障原因。
20.进一步地,所述监控模块为kafka模块;
21.所述通过各监控模块监控相应的功能模块,包括:
22.通过kafka模块监控相应功能模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应功能模块报警;
23.其中,预先在各功能模块之间通过kafka模块连接,各功能模块中的前置功能模块生成的曝光日志经kafka模块输入给后置功能模块。
24.另一方面,本发明实施例提供一种基于数据全链路监测的归因装置,包括:
25.功能监控单元,用于通过各监控模块监控相应的功能模块;
26.功能故障发现单元,用于当特定功能模块相应的监控模块发生报警时,根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块作为引起所述特定功能模块的监控模块发生报警的故障功能模块;
27.其中,预先为各功能模块添加相应的监控模块。
28.进一步地,还包括:服务监控单元,用于通过各监控模块监控相应的功能模块内的各服务模块,其中,功能模块由服务模块组成;
29.服务故障发现单元,用于根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则
将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块;
30.预先为各功能模块内的各服务模块添加相应的监控模块。
31.进一步地,还包括:故障展示单元,用于展示所述故障功能模块和/或所述故障服务模块对应的预置的故障原因;
32.其中,所述预置的故障原因预先与每个功能模块和/或服务模块绑定。
33.进一步地,所述功能故障发现单元,具体配置为:按预置的配置信息中定义的查找路径,检查各条查找路径上的各功能模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的功能模块作为故障功能模块,并根据所述预置的配置信息给出该故障功能模块相应的故障原因;
34.所述服务故障发现单元,具体配置为:按所述预置的配置信息中定义的查找路径,检查各条查找路径上的各服务模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,并根据所述预置的配置信息给出该故障服务模块相应的故障原因;
35.其中,所述配置信息根据所述功能模块依赖拓扑关系和/或所述服务模块依赖拓扑关系建立,并记录所述查找路径上的各功能模块和/或各服务模块各自对应的故障原因。
36.进一步地,所述监控模块为kafka模块;
37.所述功能监控单元,具体用于:
38.通过kafka模块监控相应功能模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应功能模块报警;
39.其中,预先在各功能模块之间通过kafka模块连接,各功能模块中的前置功能模块生成的曝光日志经kafka模块输入给后置功能模块。
40.上述技术方案具有如下有益效果:通过针对感兴趣的或易出现故障的功能模块或者针对全部功能模块分别设置各自对应的监控模块,并在监控模块发生故障报警时,根据各功能模块之间的依赖关系自动查找最根本的故障功能模块,从而在故障报警发生后,自动在最短时间里定位最根本的故障功能模块,达到及时、高效定位故障模块的效果,在监测到故障报警时,自动开始故障定位,解决了人工定位问题困难的问题;进一步地,对功能模块内的服务模块也通过各服务模块相应的各监控模块进行监控,针对找到的最根本的故障功能模块内的服务模块,继续根据服务模块之间的依赖关系定位最根本的故障服务模块,从而达到及时高效的定位故障服务模块的效果;进一步地,通过将各功能模块和各服务模块与各自的常见故障原因绑定,在确定了故障功能模块和故障服务模块时,展示相应的常见故障原因,进一步降低了定位问题的难度,达到协助维护人员快速解决故障问题的效果。进一步地,根据感兴趣的或全部的各功能模块和各功能模块内的服务模块的依赖关系以及常见故障原因等信息建立查找路径配置,根据查找路径配置自动按照规定的路径查找并定位故障模块,并提供相应的常见故障原因,可以显著减少遍历各功能模块和服务模块的依赖关系路径,只针对易出现故障的依赖关系路径进行遍历,显著提高遍历效率,进一步提高了定位故障的效率。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本发明实施例之一的一种基于数据全链路监测的归因方法的流程图;
43.图2是本发明实施例之一的一种基于数据全链路监测的归因装置的架构图;
44.图3是本发明实施例之一的基于数据全链路监测的归因方法的一种针对功能模块遍历路径示意图;
45.图4是本发明实施例之一的基于数据全链路监测的归因方法的一种针对服务模块遍历路径示意图。
具体实施方式
46.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.一方面,如图1所示,本发明实施例提供一种基于数据全链路监测的归因方法,包括:
48.步骤s100,通过各监控模块监控相应的功能模块;
49.步骤s101,当特定功能模块相应的监控模块发生报警时,根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块,作为引起所述特定功能模块的监控模块发生报警的故障功能模块;
50.其中,预先为各功能模块添加相应的监控模块。
51.在一些实施例中,整体系统功能由多个功能模块按照一定的依赖拓扑关系相互调用实现;预先为各功能模块添加相应的监控模块,具体的,可以为感兴趣的部分功能模块添加相应的监控模块,也可以为全部的功能模块添加相应的监控模块,具体可根据需求决定。监控模块会采集功能模块的一些关键业务指标,例如每秒请求数、内存使用量、曝光量等并针对关键业务指标进行分析,若判断出关键业务指标的变化触发了预置的报警规则,则相应的监控模块发生报警。当某一特定功能模块对应的监控模块发生报警时,根据报警的监控模块可以确定其相应的特定功能模块,并继续从特定功能模块开始,按照该特定功能模块的功能模块依赖拓扑关系,遍历检查该特定功能模块的每个功能模块依赖分支中的功能模块对应的监控模块,找到每个功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块作为故障功能模块,具体的,可能只有一个功能模块依赖分支中找到故障功能模块,也可能在多个功能模块依赖分支中都存在故障功能模块,即故障功能模块可能有一个或多个。在遍历检查时,可以对各功能模块依赖分支中的每个功能模块对应的监控模块都检查,但这样遍历效率会低;优选的,当某功能模块没有发生报警,则该功能模块依赖的
功能模块依赖分支中的不存在报警,从而不需要继续检查该功能模块的功能模块依赖分支,从而提高检查的效率。如图3所示,图3是一种简单的功能模块的功能模块依赖拓扑关系,模块3依赖模块2的输出,模块2依赖模块1的输出,各模块之间通过kafka传输数据,通过对各kafka作为相应的监控模块监控各kafka中的pv量,当kafka3中的pv量存在异常时,触发报警,系统会根据模块3的功能模块依赖拓扑关系依次查看模块2的kafka2和模块1的kafka1,并确定最终的故障功能模块,例如若kafka1没有报警,则kafka2对应的模块2就是此依赖分支中最后一个存在监控模块报警的功能模块,即模块2就是此依赖分支中的故障功能模块。需要说明的是,在具体的情况中,可能存在有些功能模块依赖分支中没有任何功能模块对应的监控模块存在报警,则说明这些功能模块依赖分支中的功能模块是正常的;还可能有一个或多个功能模块依赖分支中定位到了故障功能模块;还可能每个功能模块依赖分支都是正常的,此时故障功能模块就是特定功能模块;由于定位到的故障功能模块是特定功能模块本身或者是特定功能模块所依赖的模块,所以特定功能模块触发监控模块报警的根源在于所确定出的一个或多个故障功能模块,技术人员可以继续针对故障功能模块进行详细分析,以便最终解决故障问题。
52.本发明实施例具有如下技术效果:通过各监控模块监控各功能模块,当特定功能模块异常时会触发监控模块报警,根据特定功能模块的功能模块依赖拓扑关系自动定位故障功能模块,避免通过人工搜集信息、人工分析信息、人工推测定位故障功能模块,实现了故障自动定位,提高了定位故障和解决故障的效率,显著降低系统因解决故障的导致停机的时间,从而提高系统稳定运行的时间。
53.进一步地,还包括:通过各监控模块监控相应的功能模块内的各服务模块,其中,功能模块由服务模块组成;
54.根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块;
55.预先为各功能模块内的各服务模块添加相应的监控模块。
56.在一些实施例中,首先通过各监控模块监控各功能模块,当特定功能模块异常时会触发监控模块报警,根据特定功能模块的功能模块依赖拓扑关系自动定位故障功能模块,实现了在功能模块层面上对故障进行定位,但到此为止,仍不清楚更详细的故障位置,在本实施例中,针对每个功能模块内部的各服务模块也设置有相应的监控模块,并且根据该故障功能模块对内部的各服务模块的服务模块依赖拓扑关系,对服务模块依赖拓扑关系中的每个服务模块依赖分支进行遍历检查,找到所述故障功能模块的每个服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块;在遍历检查时,可以对各功能模块依赖分支中的每个功能模块对应的监控模块都检查,但这样遍历效率会低;优选的,当某功能模块没有发生报警,则该功能模块依赖的功能模块依赖分支中的不存在报警,从而不需要继续检查该功能模块的功能模块依赖分支,从而提高检查的效率。同样需要说明的是,在具体的情况中,可能存在有些依赖分支中没有任何服务模块对应的监控模块存在报警,则说明这些服务模块依赖分支中的服务模块是正常的;还可能有一个或多个服务模块依赖分支定位到了故障服务模块;还可能每个服务模块依赖分支都是正常的,
此时故障可能来自故障功能模块中的某些实现细节或未被纳入监控的服务模块中,需要技术人员根据自动定位到的故障功能模块的其他如日志信息进一步分析。在定位到了故障服务模块后,技术人员可以继续针对故障服务模块进行详细分析,以便最终解决故障问题。
57.本发明实施例具有如下技术效果:通过按照功能模块依赖关系和服务模块依赖关系对各功能模块和服务模块各自的监控模块的报警情况的遍历,最终确定了故障功能模块以及每个故障功能模块内部的故障服务模块,实现了故障的自动定位,并且可以定位到更小范围的服务模块中,进一步降低了人工分析、分工定位的工作量,提高了定位故障的效率和准确性,进一步降低因解决故障导致的停机时间,提高了系统的稳定运行时间。
58.进一步地,还包括:展示所述故障功能模块和/或所述故障服务模块对应的预置的故障原因;
59.其中,所述预置的故障原因预先与每个功能模块和/或服务模块绑定。
60.在一些实施例中,通过通过按照功能模块依赖关系、和/或服务模块依赖关系对各功能模块、和/或服务模块各自的监控模块的报警情况的遍历,最终确定了故障功能模块、和/或每个故障功能模块内部的故障服务模块,此时已经达到了自动定位故障位置的效果,考虑到任何系统发生的故障通常都是存在重复性、种类有限、故障原因有限;为了更高效的解决故障,通过对历史故障的分析和统计,可以得到每个功能模块、和/或服务模块常见的故障原因,将得到的故障原因与相应的功能模块、和/或服务模块绑定,并将绑定关系存储,当确定了故障功能模块、和/或故障服务模块时,通过该绑定关系获得各故障功能模块、和/或各故障服务模块各自对应的故障原因,并将得到的故障原因展示给技术人员,起到指导技术人员解决故障的作用,达到充分利用技术人员的历史经验解决故障问题的效果。
61.进一步地,所述根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块,作为引起所述特定功能模块的监控模块发生报警的故障功能模块,具体为:
62.按预置的配置信息中定义的查找路径,检查各条查找路径上的各功能模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的功能模块作为故障功能模块,并根据所述预置的配置信息给出该故障功能模块相应的故障原因;
63.所述根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,具体为:
64.按所述预置的配置信息中定义的查找路径,检查各条查找路径上的各服务模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,并根据所述预置的配置信息给出该故障服务模块相应的故障原因;
65.其中,所述配置信息根据所述功能模块依赖拓扑关系和/或所述服务模块依赖拓扑关系建立,并记录所述查找路径上的各功能模块和/或各服务模块各自对应的故障原因。
66.在一些是实时例中,预先将感兴趣的或者容易出现故障的或者全部的功能模块和/或服务模块根据依赖拓扑关系建立配置信息,在配置信息中定义查找路径,并记录查找路径上的各功能模块和/或各服务模块各自对应的故障原因;在配置信息中存在的某个功能模块或服务模块对应的监控模块发生报警时,根据查找路径定义的顺序依次检查每个功能模块和/或服务模块,确定故障功能模块和/或故障服务模块,并给出相应的故障原因。配置信息的实现形式可以包括但不限于表格;例如,如表1所示,upstream_name列是水平查找的上下游关系即功能模块之间或者服务模块之间的依赖关系,father_name列是垂直查找多叉树的父子关系即从功能模块对服务模块的依赖关系,reason是经验值,包括历史问题原因以及一些追查思路。例如kafka3对应的功能模块依赖kafka2对应的功能模块,kafka2对应的功能模块依赖kafka1对应的功能模块;kafka2对应的功能模块依赖的子模块即服务模块包括kafka4和kafka6。可以针对容易发生故障的功能模块和/或服务模块建立配置信息,跳过依赖关系中不容易出现故障的中间部分的功能模块和/或服务模块,从而进一步提高定位故障的效率,并在定位故障后,给出故障原因。如果增加了一个新的节点,只需要修改数据库即可,代码复用性高,可维护性强。
67.进一步地,所述监控模块为kafka模块;
68.在一些实施例中,所述通过各监控模块监控相应的功能模块,包括:
69.通过kafka模块监控相应功能模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应功能模块报警;
70.其中,预先在各功能模块之间通过kafka模块连接,各功能模块中的前置功能模块生成的曝光日志经kafka模块输入给后置功能模块;
71.在另一些实施例中,所述通过各监控模块监控相应的功能模块内的各服务模块,包括:通过kafka模块监控各功能模块内部的各服务模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应服务模块报警;
72.其中,预先在功能模块内部的各服务模块之间通过kafka模块连接,各服务模块中的前置服务模块生成的曝光日志经kafka模块输入给后置服务模块。
73.在一些实施例中,本发明实施例应用于基于kafka监控的故障定位领域的一个实施例,将kafka模块串联于感兴趣的功能模块和/或服务模块之间,使功能模块和/或服务模块的曝光日志经kafka模块传输给下一个功能模块和/或服务模块;指定曝光阈值可根据具体需求或根据历史数据进行统计分析确定。
74.上述技术方案具有如下有益效果:通过针对感兴趣的或易出现故障的功能模块或者针对全部功能模块分别设置各自对应的监控模块,并在监控模块发生故障报警时,根据各功能模块之间的依赖关系自动查找最根本的故障功能模块,从而在故障报警发生后,自动在最短时间里定位最根本的故障功能模块,达到及时、高效定位故障模块的效果,在监测到故障报警时,自动开始故障定位,解决了人工定位问题困难的问题;进一步地,对功能模块内的服务模块也通过各服务模块相应的各监控模块进行监控,针对找到的最根本的故障功能模块内的服务模块,继续根据服务模块之间的依赖关系定位最根本的故障服务模块,从而达到及时高效的定位故障服务模块的效果;进一步地,通过将各功能模块和各服务模块与各自的常见故障原因绑定,在确定了故障功能模块和故障服务模块时,展示相应的常见故障原因,进一步降低了定位问题的难度,达到协助维护人员快速解决故障问题的效果。
进一步地,根据感兴趣的或全部的各功能模块和各功能模块内的服务模块的依赖关系以及常见故障原因等信息建立查找路径配置,根据查找路径配置自动按照规定的路径查找并定位故障模块,并提供相应的常见故障原因,可以显著减少遍历各功能模块和服务模块的依赖关系路径,只针对易出现故障的依赖关系路径进行遍历,显著提高遍历效率,进一步提高了定位故障的效率。
75.另一方面,如图2所示,本发明实施例提供一种基于数据全链路监测的归因装置,包括:
76.功能监控单元200,用于通过各监控模块监控相应的功能模块;
77.功能故障发现单元201,用于当特定功能模块相应的监控模块发生报警时,根据功能模块依赖拓扑关系遍历检查所述特定功能模块的各功能模块依赖分支中的各功能模块相应的监控模块的报警信息,并且分别针对每一个功能模块依赖分支判断如果在该功能模块依赖分支中发现报警,则将该功能模块依赖分支中的最后一个发生报警的监控模块对应的功能模块作为引起所述特定功能模块的监控模块发生报警的故障功能模块;
78.其中,预先为各功能模块添加相应的监控模块。
79.进一步地,还包括:
80.服务监控单元,用于通过各监控模块监控相应的功能模块内的各服务模块,其中,功能模块由服务模块组成;
81.服务故障发现单元,用于根据所述故障功能模块内的服务模块依赖拓扑关系遍历检查所述故障功能模块的各服务模块依赖分支中的各服务模块相应的监控模块的报警信息,并且分别针对每一个服务模块依赖分支判断如果该服务模块依赖分支中发现报警,则将该服务模块依赖分支中的最后一个发生报警的监控模块对应的服务模块作为故障服务模块;
82.预先为各功能模块内的各服务模块添加相应的监控模块。
83.进一步地,还包括:
84.故障展示单元,用于展示所述故障功能模块和/或所述故障服务模块对应的预置的故障原因;
85.其中,所述预置的故障原因预先与每个功能模块和/或服务模块绑定。
86.进一步地,所述功能故障发现单元,具体配置为:按预置的配置信息中定义的查找路径,检查各条查找路径上的各功能模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的功能模块作为故障功能模块,并根据所述预置的配置信息给出该故障功能模块相应的故障原因;
87.所述服务故障发现单元,具体配置为:按所述预置的配置信息中定义的查找路径,检查各条查找路径上的各服务模块对应的监控模块的报警信息,分别针对每条查找路径判断如果在该查找路径中发现报警,则将该查找路径上的最后一个发生报警的监控模块对应的服务模块作为故障服务模块,并根据所述预置的配置信息给出该故障服务模块相应的故障原因;
88.其中,所述配置信息根据所述功能模块依赖拓扑关系和/或所述服务模块依赖拓扑关系建立,并记录所述查找路径上的各功能模块和/或各服务模块各自对应的故障原因。
89.进一步地,所述监控模块为kafka模块;
90.所述功能监控单元200,具体用于:
91.通过kafka模块监控相应功能模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应功能模块报警;
92.其中,预先在各功能模块之间通过kafka模块连接,各功能模块中的前置功能模块生成的曝光日志经kafka模块输入给后置功能模块;
93.所述服务监控单元,具体用于:通过kafka模块监控各功能模块内部的各服务模块的曝光日志的曝光量,当曝光量大于或等于指定曝光阈值时针对相应服务模块报警;
94.其中,预先在功能模块内部的各服务模块之间通过kafka模块连接,各服务模块中的前置服务模块生成的曝光日志经kafka模块输入给后置服务模块。
95.上述技术方案具有如下有益效果:通过针对感兴趣的或易出现故障的功能模块或者针对全部功能模块分别设置各自对应的监控模块,并在监控模块发生故障报警时,根据各功能模块之间的依赖关系自动查找最根本的故障功能模块,从而在故障报警发生后,自动在最短时间里定位最根本的故障功能模块,达到及时、高效定位故障模块的效果,在监测到故障报警时,自动开始故障定位,解决了人工定位问题困难的问题;进一步地,对功能模块内的服务模块也通过各服务模块相应的各监控模块进行监控,针对找到的最根本的故障功能模块内的服务模块,继续根据服务模块之间的依赖关系定位最根本的故障服务模块,从而达到及时高效的定位故障服务模块的效果;进一步地,通过将各功能模块和各服务模块与各自的常见故障原因绑定,在确定了故障功能模块和故障服务模块时,展示相应的常见故障原因,进一步降低了定位问题的难度,达到协助维护人员快速解决故障问题的效果。进一步地,根据感兴趣的或全部的各功能模块和各功能模块内的服务模块的依赖关系以及常见故障原因等信息建立查找路径配置,根据查找路径配置自动按照规定的路径查找并定位故障模块,并提供相应的常见故障原因,可以显著减少遍历各功能模块和服务模块的依赖关系路径,只针对易出现故障的依赖关系路径进行遍历,显著提高遍历效率,进一步提高了定位故障的效率。
96.下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
97.本发明技术方案是在数据全链路监测的基础上,通过功能模块和服务模块的上下游的关联关系,找到发生问题的根本故障模块和根本原因,提升了归因效率,从而缩短线上问题的处理时间,减少系统更多的损失。
98.以下对涉及到的词语解释:
99.kafka是一种高吞吐量的分布式发布订阅消息系统,用于处理流数据;
100.pv是曝光量,用户看到一次广告、活动记一次曝光。
101.下面以曝光系统为例对本发明的技术方案进行说明,如图3所示,图3是系统的主链路,包括3个功能模块,功能模块之间是通过kafka进行连接,功能模块1生成原始曝光日志写入kafka1,功能模块2从kafka1读出曝光日志,经过一些策略处理将又将处理后的曝光日志写kafka2,同理,模块3从kafak2读出曝光日志并对曝光日志做了一些处理再写到kafka3,最后,指标计算是使用了kafka3中的数据,这里以pv量为例。
102.第一步:监控报警,3个kafka(即kafka1、kafka2和kafka3)分别统计各自的pv量,
设置变化率阈值,超阈值报警;
103.第二步:圈定故障区域,具体方法如下,根据上下游关系进行水平查找,如图3,从水平方向上看即沿箭头指向观察,kafka1到kafka2到kafka3,kafka3的上游是kafka2,kafka2的上游是kafka1。比如kafka3报警,我们要看它的上游kafka2,如果kafka2也有报警,那我们可以推断kafka3的异常报警是因为kafka2异常引起的,可以排除功能模块3的问题,继续找上游kafka1,如果kafka1没有异常,那基本可以断定是功能模块2有问题,使得kafka2数据异常,连锁反应影响到下游kafka3异常,进而导致相应的pv指标数据异常。所以,故障区域就是功能模块2。
104.第三步:找出故障的根本模块,具体方法如下,通过第二步,可以确定故障区域是功能模块2,把功能模块2再进行垂直查分,如图4所示,图4中的模块2即功能模块2,图4中的服务a即服务模块a、服务b即服务模块b、服务a1即服务模块a1,服务b1即服务模块b1,服务b2即服务模块b2;根据图4中的服务模块依赖拓扑关系,对功能模块2逐个分支进行遍历,比如服务a和服务a1,是否有异常报警,追查思路同第二步,如果服务a有异常,继续看服务a1,如果服务a1有问题,那就可以推断服务a1的异常,导致服务a异常、模块2异常,最终导致指标计算异常,那么服务a1是发生故障的根本模块。
105.第四步:定位到发生故障的根本模块,结合历史经验,还可以给出可能原因和一些追查思路。在实际排查问题中可发现,有排查经验的同学定位问题快,特别是对复杂系统,经验价值会更高,所以非常有必要落地,参考高频原因或近期原因(时效性),有方向的追查,提高定位问题的效率。
106.最后,实现上述过程,采用了数据库配置化管理方式,包括上下游关系,多叉树关系以及历史经验,如表1所示,upstream_name是水平查找的上下游关系,father_name是垂直查找多叉树的父子关系,reason是经验值,包括历史问题原因以及一些追查思路。如果增加了一个新的节点,只需要修改数据库即可,代码复用性高,可维护性强。
[0107][0108]
表1查找路径配置表
[0109]
本发明实施例具有如下技术效果:建立数据全链路监测系统,通过水平方向的上下游关系以及垂直方向的多叉树关系,找到发生问题的根本故障模块并给出历史追查经验,从而提升了线上问题定位效率,进而缩短线上问题的处理时间。
[0110]
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
[0111]
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的
那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
[0112]
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本技术公开的原理和新颖性特征的最广范围相一致。
[0113]
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括:”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
[0114]
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
[0115]
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
[0116]
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
[0117]
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以
是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
[0118]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献