一种基于依赖关系图的微服务性能诊断方法及系统技术方案

技术编号:35066889 阅读:37 留言:0更新日期:2022-09-28 11:25
本发明专利技术涉及一种基于依赖关系图的微服务性能诊断方法及系统,涉及数据处理技术领域,首先收集微服务系统中各服务实例间的网络连接信息和实例自身的SLO指标数据,并持续监测SLO指标数据,一旦检测到异常,自动构建表示异常传播路径的依赖关系图,然后遍历整个依赖关系图给出一个可能造成性能问题的候选列表,最终根据皮尔逊相关系数得分推断出最有可能的性能瓶颈点。本发明专利技术仅获取服务实例间的网络连接信息和服务实例的SLO指标数据进行诊断,不需要获取源代码,基于非侵入式的依赖关系图构建对采用微服务架构的系统进行自动性能诊断、定位性能瓶颈,能够适用于多种业务场景,并具有较好的实时性、可扩展性。可扩展性。可扩展性。

【技术实现步骤摘要】
一种基于依赖关系图的微服务性能诊断方法及系统


[0001]本专利技术涉及数据处理
,特别是涉及一种基于依赖关系图的微服务性能诊断方法及系统。

技术介绍

[0002]在新兴商业模式(例如,电商平台)和IT技术(例如,云计算和云原生)驱动下,软件的体系结构正在快速地从庞大的单体架构向微服务架构转变。微服务是一种架构设计思想,正在成为设计现代大型应用的流行选择,通过微服务,可将大型单体应用分解成多个独立的组件,其中每个组件都有各自的责任领域并可以独立地开发和部署,微服务架构在电商网站、物流平台、支付系统等应用领域均有成功案例。其主要优势包括极大地加速了开发、部署和交付的速度,简化了故障调试和恢复的过程,使软件系统具备强大的可扩展性,并产生丰富的软件开发技术栈。
[0003]尽管微服务架构有那么多优势,但是由于外部(例如资源争用、硬件故障、配置环境更改等)和内部(例如软件BUG)的问题,性能问题在微服务系统中并不罕见,而这会对企业收入带来重大影响。为了保证微服务连续可靠地运行,及时地检测出性能问题、诊断出导致性能问题反复发生的根本原因、定位可能的性能瓶颈并向管理员或运维人员给出一些可能的操作建议是至关重要的。
[0004]然而,随着越来越多的具有复杂交互关系的微服务运行在动态云环境中,识别和定位异常服务变得非常困难。现有的技术要么在性能诊断的精确性上存在很大偏差;要么要求侵入应用程序或平台的源代码以获得服务依赖指标;要么就是不能适应动态的微服务环境,一旦微服务的架构发生改变或扩展,性能诊断的精确性就会急速下降。
[0005]因此,本领域亟需一种不需要获取源代码,能够适应多种微服务架构且准确度高的技术方案。

技术实现思路

[0006]本专利技术的目的是提供一种基于依赖关系图的微服务性能诊断方法及系统,通过服务实例间的网络连接信息和服务实例的SLO指标数据进行诊断,不需要获取源代码,其通过构建服务实例间的依赖关系图推断出微服务系统性能问题的根本原因,有效解决了现有技术中准确性和适应性不高的问题。
[0007]为实现上述目的,本专利技术提供了如下方案:
[0008]一种基于依赖关系图的微服务性能诊断方法,所述方法包括:
[0009]采集服务实例间的网络连接信息和服务实例的SLO指标数据;
[0010]利用3σ经验规则检测所述SLO指标数据是否异常;
[0011]当检测到所述SLO指标数据异常时:
[0012]利用所述网络连接信息构建所述服务实例间的通信服务实例依赖;
[0013]利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖;
[0014]将所述通信服务实例依赖与所述非通信服务实例依赖合并,得到依赖关系图;所述依赖关系图中的每个节点表示服务实例,两个节点之间的有向边表示两个服务实例之间的依赖关系;
[0015]从所述依赖关系图中的根异常节点开始,沿着目标方向遍历所述依赖关系图,寻找异常节点;所述异常节点为SLO指标数据异常的节点;所述根异常节点为建立所述依赖关系图时检测到的异常节点;所述目标方向为依赖关系的相反方向;
[0016]找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点;
[0017]若所有相邻节点均为正常的相邻节点,则将所述异常节点添加至异常节点候选集;若相邻节点中存在异常的相邻节点,则将所述异常的相邻节点作为异常节点,并返回“找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点”步骤;
[0018]利用皮尔逊相关系数计算所述异常节点候选集中的异常节点的分数;
[0019]输出分数最高的异常节点。
[0020]在一些实施例中,所述服务实例为M个微服务组件同时部署在不同的N台服务器上得到的若干个服务实例。
[0021]在一些实施例中,所述采集服务实例间的网络连接信息和服务实例的SLO指标数据,具体包括:
[0022]通过一直轮询拦截网络套接字的方式捕获服务实例间的网络连接信息;
[0023]从所述服务器中获取SLO指标数据。
[0024]在一些实施例中,在所述采集服务实例间的网络连接信息和服务实例的SLO指标数据之后,还包括:
[0025]将所述SLO指标数据以时间折线图的形式进行可视化展示。
[0026]在一些实施例中,所述利用所述网络连接信息构建所述服务实例间的通信服务实例依赖,具体包括:
[0027]利用设定时间内收集的网络连接信息构建所述服务实例间的通信服务实例依赖;所述通信服务实例依赖表示通过网络直接通信的服务实例之间的依赖关系;所述设定时间为距离检测到异常之前的设定时间。
[0028]在一些实施例中,利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖,具体包括:
[0029]将SLO指标数据对应的服务实例节点以两两连线的方式生成一个完全无向图;
[0030]删除所述完全无向图中条件独立的服务实例节点间的无向边;
[0031]利用D分隔原理确定所述无向边的依赖方向,得到所述服务实例间的非通信服务实例依赖。
[0032]在一些实施例中,所述利用皮尔逊相关系数计算所述异常节点候选集中的异常节点的分数,具体包括:
[0033]计算所述异常节点候选集中的异常节点与前端节点在发生异常后的SLO指标数据的皮尔森相关系数,计算公式为:其中,x
i
,y
i
分别为前端节点和异常节点在发生异常后的SLO指标数据,μ
x

y
分别为前端节点和异常节点的
在发生异常后的SLO指标数据平均值,n为设定的SLO指标数据数量。
[0034]在一些实施例中,在所述输出分数最高的异常节点之后,还包括:
[0035]将所述分数最高的异常节点进行展示。
[0036]在一些实施例中,所述3σ经验规则的判断公式为:P(μ

3σ<x<μ+3σ)≈0.9973;
[0037]其中,σ为标准差,x为实时的SLO指标数据,μ为SLO指标数据的平均值。
[0038]本专利技术还提供了一种基于依赖关系图的微服务性能诊断系统,所述系统包括:
[0039]数据获取单元,用于采集服务实例间的网络连接信息和服务实例的SLO指标数据;
[0040]监测单元,用于利用3σ经验规则检测所述SLO指标数据是否异常;
[0041]通信服务实例依赖构建单元,用于利用所述网络连接信息构建所述服务实例间的通信服务实例依赖;
[0042]非通信服务实例依赖构建单元,用于利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖;
[0043]依赖关系图构建单元,用于将所述通信服务实例依赖与所述非通信服务实例依赖合并,得到依赖关系图;所述依赖关系图中的每个节点表示服务实例,两个节点之间的有向边表示两个服务实例之间的依赖关系;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于依赖关系图的微服务性能诊断方法,其特征在于,所述方法包括:采集服务实例间的网络连接信息和服务实例的SLO指标数据;利用3σ经验规则检测所述SLO指标数据是否异常;当检测到所述SLO指标数据异常时:利用所述网络连接信息构建所述服务实例间的通信服务实例依赖;利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖;将所述通信服务实例依赖与所述非通信服务实例依赖合并,得到依赖关系图;所述依赖关系图中的每个节点表示服务实例,两个节点之间的有向边表示两个服务实例之间的依赖关系;从所述依赖关系图中的根异常节点开始,沿着目标方向遍历所述依赖关系图,寻找异常节点;所述异常节点为SLO指标数据异常的节点;所述根异常节点为建立所述依赖关系图时检测到的异常节点;所述目标方向为依赖关系的相反方向;找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点;若所有相邻节点均为正常的相邻节点,则将所述异常节点添加至异常节点候选集;若相邻节点中存在异常的相邻节点,则将所述异常的相邻节点作为异常节点,并返回“找到异常节点后,检测所述异常节点沿着所述目标方向上的所有相邻节点”步骤;利用皮尔逊相关系数计算所述异常节点候选集中的异常节点的分数;输出分数最高的异常节点。2.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述服务实例为M个微服务组件同时部署在不同的N台服务器上得到的若干个服务实例。3.根据权利要求2所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述采集服务实例间的网络连接信息和服务实例的SLO指标数据,具体包括:通过一直轮询拦截网络套接字的方式捕获服务实例间的网络连接信息;从所述服务器中获取SLO指标数据。4.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,在所述采集服务实例间的网络连接信息和服务实例的SLO指标数据之后,还包括:将所述SLO指标数据以时间折线图的形式进行可视化展示。5.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,所述利用所述网络连接信息构建所述服务实例间的通信服务实例依赖,具体包括:利用设定时间内收集的网络连接信息构建所述服务实例间的通信服务实例依赖;所述通信服务实例依赖表示通过网络直接通信的服务实例之间的依赖关系;所述设定时间为距离检测到异常之前的设定时间。6.根据权利要求1所述的基于依赖关系图的微服务性能诊断方法,其特征在于,利用所述SLO指标数据构建所述服务实例间的非通信服务实例依赖,具体包括:将SLO指标数据对应的服务实例节点以两两连线的方式生成一个完全无向图;删除所述完全无向图中条件独立的服务实例节点间的无向边;利用D分隔原理确...

【专利技术属性】
技术研发人员:程学林宋孝成蒋烁淼杨小虎
申请(专利权)人:上海驻云信息科技有限公司
类型:发明
国别省市:

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

1