基于微服务调用图的网络异常根因定位方法、装置及介质与流程
本发明涉及数据交换网络故障管理,尤其涉及基于微服务调用图的网络异常根因定位方法、装置及介质。
背景技术:
1、随着云原生技术与微服务架构的广泛应用,一次业务请求通常需要经过多个微服务实例完成,服务实例扩缩容、路由调整、负载均衡及熔断重试等运行状态会使实际服务通信关系动态变化。当服务节点或者服务间通信链路发生异常时,异常可能沿服务调用关系产生超时、连接失败、服务不可用等连续网络事件,如何准确分析网络异常事件的传播关系并定位故障根因,成为微服务网络故障管理领域亟待解决的技术问题。
2、为满足微服务网络异常根因定位需求,现有技术中较为常用的是基于服务调用图和网络告警关联的根因定位方法,该方法利用链路追踪数据构建服务调用关系,根据网络异常事件的发生时间及服务调用关系建立故障传播关系,再根据故障传播关系和服务节点异常程度确定可能的根因服务,在通信关系相对稳定的微服务系统中得到了一定应用。
3、但是,该现有技术通常基于当前服务调用关系或者统一的告警相关时间范围建立故障传播关系,未针对实际服务通信路径及通信状态变化对网络异常传播过程进行处理,容易使不存在真实通信传播关系的网络异常事件被错误关联;同时,根因定位结果通常集中于服务节点,难以区分目标服务自身异常与特定服务实例之间的通信异常,导致故障传播关系与实际通信过程不一致,影响网络异常根因定位的准确性和定位粒度。
技术实现思路
1、本发明实施例提供一种基于微服务调用图的网络异常根因定位方法、装置及介质,能够解决动态微服务环境下实际通信路径和网络异常传播时序发生变化时网络异常事件容易错误关联,以及难以区分服务节点内部故障与服务实例之间通信故障的问题。
2、为达到上述目的,本发明的实施例采用如下技术方案:
3、第一方面,提供基于微服务调用图的网络异常根因定位方法,所述方法包括:获取服务通信数据、通信控制事件、网络异常事件和服务运行数据,根据通信控制事件划分通信拓扑时期,根据服务通信数据确定各通信拓扑时期的实际通信边;根据实际通信边的传播特征和当前通信状态,确定边级因果时间窗及传播有效性;根据所述通信拓扑时期、实际通信边、边级因果时间窗及传播有效性建立网络异常事件的故障传播关系,得到网络故障传播子图;根据所述网络故障传播子图和服务运行数据确定节点内部异常证据和通信边传输异常证据,根据所述节点内部异常证据和通信边传输异常证据的竞争关系确定根因服务节点或根因通信边,得到网络异常根因定位结果。
4、本发明提供的方法根据通信控制事件划分通信拓扑时期,并利用服务通信数据确定对应通信拓扑时期内实际承担服务请求的实际通信边,使网络异常事件能够对应至故障发生时有效的服务通信关系,减少因服务扩缩容、路由变化或者负载均衡变化造成的新旧通信关系混杂;进一步根据实际通信边的传播特征和当前通信状态确定边级因果时间窗及传播有效性,使网络异常事件之间的关联同时受到实际通信路径、通信传播时序及通信边有效状态的约束,减少仅因事件发生时间接近而形成的错误传播关系;在此基础上形成网络故障传播子图,并结合服务运行数据分别形成节点内部异常证据和通信边传输异常证据,通过两类异常证据之间的竞争关系确定根因服务节点或者根因通信边,从而区分目标服务自身故障与特定服务实例之间的通信故障,提高网络异常根因定位的真实性和定位粒度。
5、在第一方面的一种可能的实现方式中,所述根据通信控制事件划分通信拓扑时期,包括:从所述通信控制事件中确定改变实际服务通信路径的目标通信控制事件;将所述目标通信控制事件的发生时刻确定为新的通信拓扑时期的起始时刻,根据所述起始时刻划分服务通信过程,得到所述通信拓扑时期。
6、本发明提供的方法利用改变实际服务通信路径的通信控制事件确定通信拓扑时期的变化边界,使通信拓扑时期能够随实际服务通信路径变化而更新,避免按照固定时间区间划分拓扑导致同一分析时期内混入变化前后的通信关系,使后续网络异常事件能够基于故障发生时有效的通信拓扑进行传播分析。
7、在第一方面的一种可能的实现方式中,所述目标通信控制事件为备用服务切换事件;根据所述备用服务切换事件的发生时刻生成下一通信拓扑时期;根据所述服务通信数据确定所述下一通信拓扑时期内指向备用服务的备用实际通信边,将备用服务切换前的原实际通信边对后续新服务请求的传播有效性确定为无效,并根据所述备用实际通信边的传播特征和当前通信状态确定所述备用实际通信边对应的边级因果时间窗及传播有效性。
8、本发明提供的方法在备用服务切换改变实际目标服务时,同步更新通信拓扑时期、实际通信边、传播有效性及边级因果时间窗,使备用服务切换后的网络异常事件按照新的实际通信路径和相应传播时序进行关联,避免将切换后的网络异常事件继续归属于原实际通信边,使网络故障传播关系更接近备用服务切换后的真实请求传播过程。
9、在第一方面的一种可能的实现方式中,所述根据服务通信数据确定各通信拓扑时期的实际通信边,包括:按照所述通信拓扑时期对所述服务通信数据进行划分,得到各通信拓扑时期对应的服务通信子数据;根据所述服务通信子数据中的实际请求记录,确定源服务实例与目标服务实例之间实际承载服务请求的通信关系,得到各通信拓扑时期的实际通信边。
10、本发明提供的方法不是仅根据服务配置或者逻辑服务调用关系推断通信边,而是根据相应通信拓扑时期内的实际请求记录确定真正承担服务请求的源服务实例与目标服务实例之间的通信关系,从而排除虽然在配置上能够承担请求但在故障请求发生过程中并未实际承担请求的通信路径,为后续边级因果时间窗和通信边根因判定提供与真实请求对应的数据对象。
11、在第一方面的一种可能的实现方式中,所述根据实际通信边的传播特征和当前通信状态,确定边级因果时间窗及传播有效性,包括:根据所述实际通信边的通信传播时延确定基础因果时间窗;根据所述当前通信状态调整所述基础因果时间窗的因果计时基准,并确定所述实际通信边的传播有效性,得到所述边级因果时间窗及传播有效性;在所述当前通信状态为重试状态时,根据同一服务请求各通信尝试的实际发送时刻分别确定对应的边级因果时间窗;在所述当前通信状态为熔断开启状态时,将所述实际通信边对熔断开启后新服务请求的传播有效性确定为无效。
12、本发明提供的方法使通信状态直接参与网络异常事件传播规则的确定,而非仅作为根因评分中的异常特征。当发生重试时,根据各通信尝试的实际发送时刻分别确定边级因果时间窗,能够降低不同通信尝试产生的网络异常事件相互混淆的可能性;当发生熔断时,使原实际通信边对熔断后的新服务请求失去传播有效性,能够避免在没有真实服务请求继续传输的情况下仍沿原实际通信边建立网络异常事件传播关系。
13、在第一方面的一种可能的实现方式中,所述根据所述通信拓扑时期、实际通信边、边级因果时间窗及传播有效性建立网络异常事件的故障传播关系,得到网络故障传播子图,包括:根据所述网络异常事件对应的通信拓扑时期,从所述实际通信边中确定连接候选网络异常事件的目标实际通信边;根据所述目标实际通信边的通信方向对所述候选网络异常事件进行方向筛选,根据所述目标实际通信边的传播有效性和边级因果时间窗对经过方向筛选的候选网络异常事件进行传播筛选;对通过所述传播筛选的网络异常事件建立故障传播边,根据所述故障传播边和对应的网络异常事件得到所述网络故障传播子图。
14、本发明提供的方法将通信拓扑时期、实际通信边、通信方向、传播有效性及边级因果时间窗共同作用于网络异常事件之间传播关系的建立,使只有与故障发生时真实通信关系和传播时序相匹配的网络异常事件参与网络故障传播子图构建,从而减少错误拓扑时期、失效通信边或者不符合传播时序的网络异常事件形成虚假故障传播关系。
15、在第一方面的一种可能的实现方式中,所述根据所述网络故障传播子图和服务运行数据确定节点内部异常证据和通信边传输异常证据,包括:从所述网络故障传播子图中确定目标服务节点及进入所述目标服务节点的目标实际通信边;根据所述服务运行数据确定所述目标服务节点的节点内部异常证据,根据所述服务通信数据确定所述目标实际通信边的基础通信边异常证据;将与所述目标实际通信边具有相同目标服务节点的其他实际通信边确定为同目标对照通信边,根据所述同目标对照通信边的通信异常程度确定同目标对照基准;根据所述同目标对照基准对所述基础通信边异常证据进行修正,得到所述通信边传输异常证据。
16、本发明提供的方法利用同一目标服务节点的其他实际通信边形成对照基准,使目标实际通信边的异常程度能够与访问相同目标服务节点的其他通信路径进行比较。当目标实际通信边发生异常而同目标对照通信边保持正常时,可以增强特定通信关系发生异常的判断依据,降低将局部通信异常错误归因于目标服务节点整体故障的可能性。
17、在第一方面的一种可能的实现方式中,所述根据所述节点内部异常证据和通信边传输异常证据的竞争关系确定根因服务节点或根因通信边,得到网络异常根因定位结果,包括:根据所述节点内部异常证据确定服务节点根因量,根据所述通信边传输异常证据确定通信边根因量;根据所述节点内部异常证据确定目标服务节点的节点异常状态,根据所述通信边传输异常证据确定目标实际通信边及同目标对照通信边的通信边异常状态;在所述目标服务节点处于正常状态、所述目标实际通信边处于异常状态且所述同目标对照通信边处于正常状态时,根据所述通信边根因量降低所述服务节点根因量;在所述目标服务节点处于异常状态且进入所述目标服务节点的多条实际通信边处于异常状态时,根据所述服务节点根因量降低各实际通信边的通信边根因量;根据竞争修正后的服务节点根因量和通信边根因量确定所述根因服务节点或根因通信边,得到所述网络异常根因定位结果。
18、本发明提供的方法不是对服务节点与通信边分别进行相互独立的根因排序,而是利用节点内部异常状态、目标实际通信边异常状态以及同目标其他通信边异常状态形成两类根因证据之间的竞争关系。当目标服务节点自身运行正常而仅特定通信边异常时,降低服务节点作为根因的可能性;当目标服务节点自身异常且多个不同入边共同异常时,降低将各单一实际通信边分别确定为根因的可能性,从而实现服务节点与实际通信边两个粒度之间的根因区分。
19、第二方面,提供一种基于微服务调用图的网络异常根因定位装置,所述装置包括:拓扑与通信边确定模块,用于获取服务通信数据、通信控制事件、网络异常事件和服务运行数据,根据通信控制事件划分通信拓扑时期,根据服务通信数据确定各通信拓扑时期的实际通信边;边级因果确定模块,用于根据实际通信边的传播特征和当前通信状态,确定边级因果时间窗及传播有效性;故障传播构建模块,用于根据所述通信拓扑时期、实际通信边、边级因果时间窗及传播有效性建立网络异常事件的故障传播关系,得到网络故障传播子图;根因定位模块,用于根据所述网络故障传播子图和服务运行数据确定节点内部异常证据和通信边传输异常证据,根据所述节点内部异常证据和通信边传输异常证据的竞争关系确定根因服务节点或根因通信边,得到网络异常根因定位结果。
20、第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行,使计算机执行第一方面任一实现方式所述的基于微服务调用图的网络异常根因定位方法。
21、可以理解地,上述第二方面提供的基于微服务调用图的网络异常根因定位装置以及第三方面提供的计算机可读存储介质所能达到的有益效果,可以参考第一方面及其任一种可能的实现方式中的有益效果,此处不再赘述。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com