本届挑战赛亚军方案:面向微服务架构系统中无标注、多模态运维数据的异常检测、根因定位与可解释性分析

CheerX团队来自于南瑞研究院系统平台研发中心,中心主要从事NUSP电力自动化通用软件平台的关键技术研究与软件研发。

选题分析

曾多次
图1 研究现状

本次CheerX团队的选题紧密贴合了目前的运维现状。实际运维中存在多种问题导致运维系统的不可用。比如故障发生时,针对指标的异常检测会产生海量告警风暴。如果想基于有监督方案做故障分类,标注和模型训练成本大,可解释性问题突出。与此同时,多模态的运维数据让我们希望能挖掘出更多有用信息。

针对以上问题,CheerX团队提出了如下选题方案:面向微服务架构系统中无标注、多模态运维数据的异常检测、根因定位与可解释性分析。本方案是一种无监督的方案,融合了多模态数据,输出事件级别的告警以及故障的诊断链路。方案的主要运维能力是异常检测和根因定位。

解决方案

在这里插入图片描述
图2 整体流程

方案的整体架构主要包括数据处理、异常检测和根因定位三个环节。同时方案架构中引入了专家知识和运维知识图谱。

◆ 数据处理
在这里插入图片描述
图3 多模态数据处理

数据处理环节亮点为多模态指标构造与融合,主要分为指标融合与图谱构建两个部分。

◆ 指标融合

从调用链数据中构造出四种调用链指标,与筛选出的 22个监控指标、4个交易指标一起进行异常检测。

  • Monitor指标:包含系统负载、cpu、磁盘、内存、tcp、网络等22种指标。
  • tc指标:交易量、交易性能、平均响应时长、业务成功率。
  • 调用链指标:耗时、自身耗时、错误率、调用次数。

◆ 图谱构建

图片

图4 运维知识图谱

针对根因定位则是设计了知识图谱的本体层,总共定义了12种概念和21种关系。并从调用链、部署架构和系统资源中抽取出相应的实例。

异常检测

图片图5 异常检测环节引入专家知识

在异常检测环节,本方案设计了一个通用可解释的指标异常检测流程。从本团队运维经验来看,异常是业务系统存在实际故障时的数据形态离群。因此如果只根据算法的检测结果就发出告警,会造成大量无意义的检测结果,造成告警风暴。

举个例子,对于资源使用率这类指标来说,一般关心使用率上升时候的事件,但是使用率下降往往不是什么问题。而对于业务成功率则是在下降的时候才需要关注。

具体检测什么样的数据形态是专家知识,算法本身是无法区分的。因此这里加入了专家知识对时间序列做筛选和过滤,这样检测出来的结果才是可解释的。

图片

图6 异常检测算法流程

具体针对检测算法而言,使用了卡尔曼滤波和谱残差显著性结合的方式进行指标检测。算法思路是通过卡尔曼滤波获得趋势,然后对原序列与趋势序列之间的距离序列进行谱残差显著性计算,转换为显著性序列。最后对得到的显著性序列只需要一个简单的箱型图检测即可。

图片

图7 谱残差论文

谱残差的好处是不管序列是有周期的还是稳定的或者非稳定的,在异常出现的时候都是显著的,因此有很强的通用性。这里参考了谱残差这篇论文。

根因定位

图片

图8 故障事件化流程

根因定位环节则是基于故障事件化和知识图谱实现根因定位。异常检测结束后会获得很多指标异常事件,这个时候就需要通过故障事件化对指标异常事件进行合并。

图片

图9 故障事件定义

本方案定义了节点故障事件和集群故障事件。通过专家知识,将指标异常事件合并成不同的节点故障事件。再根据拓扑结构将节点故障事件合并成集群的故障事件。此时已经获得了事件级别的故障告警,告警量进一步降低的同时可用性也在进一步增强。

图片

图10 根因定位流程

故障往往会随着调用关系发生故障传播。因此这里的定位思路是根据调用关系和系统拓扑确定实际的调用故障位置。制定根因诊断的规则,将不同的故障事件进一步合并。合并后剩余的故障事件就是所有可能的根因。诊断的过程表现为树的形式,故障诊断树包含了指标、节点和集群的故障事件,输出了完整的诊断过程。

图片

图11 故障诊断案例

这里展示了一个很经典的案例,这是一个外网web集群网络故障,经过统计,该故障影响了200多个指标,涉及17个主机,3个交易,7个调用环节。这里本方案做到了故障的根因定位,避免了告警风暴的同时,还使用树的形式完整的展示了故障诊断链路。这样的输出结果是非常具有可解释性的,对运维人员非常友好。

资源预警

图片

图12 资源预测流程

本次挑战赛我们还做了一些系统资源预测的工作,基于 STL分解与线性回归针对cpu、磁盘、内存等资源使用率进行预测。具体思路是使用STL分解算法分解资源指标序列得到趋势序列和周期序列,对趋势序列使用线性回归算法进行预测,而对周期序列则使用历史同时段平均进行预测。最后对两种结果求和,得到预测值。

图片

图13 资源预警报告

如果预测值超过设定的阈值时,将生成如图所示的资源预警报告,该报告中包含了资源越限时刻,资源指标类型,所在主机等信息。

总结展望

最后总结一下本次挑战赛,CheerX团队面向微服务架构中系统复杂度高、数据多源异构的挑战,提出了一种基于无标注、多模态数据的异常检测、根因定位与可解释性分析智能运维方案。

本方案对运维人员友好,实用性强,准确高效,是一种数据与知识双驱的解决方案。团队在多模态数据融合、运维知识图谱构建、异常检测和根因定位方面都做出了自己的创新性工作。

最后今年的主题是大模型,针对本方案,CheerX团队接下来将会结合大模型在扩充完善运维知识库以及日志数据分析方向上继续研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言:字符函数 字符串函数 内存函数

C语言:字符函数 & 字符串函数 & 内存函数 字符函数字符分类函数字符转换函数tolowertoupper 字符串函数strlenstrcpystrcatstrcmpstrstrstrtok 内存函数memcpymemmovememsetmemcmp 字符函数 顾名思义,字符函数就是作用于字符的函数,…

1.1 编程环境的安装

汇编语言 汇编语言环境部署 第二个运行程序直接双击安装一直下一步即可MASM文件复制到D盘路径下找到dosbox安装路径:C:\Program Files (x86)\DOSBox-0.74找到该文件双击打开它,修改一下窗口大小 把这两行改成如下所示 运行dos,黑框中输入mou…

打造去中心化透明储蓄罐:Solidity智能合约的又一实践

一、案例背景 传统的储蓄罐通常是由个人或家庭使用,用于存放硬币或小额纸币。然而,这样的储蓄罐缺乏透明性,用户无法实时了解储蓄情况,也无法确保资金的安全性。 通过Solidity智能合约,我们可以构建一个去中心化…

园区能耗监测管控平台

园区能耗监测管控平台是一种基于先进科技的能源管理系统,旨在帮助园区实现能源消耗的精准监测和高效管控。这一平台集成了能耗监测、数据分析、远程控制等功能,为园区管理者提供了全方位的能源管理解决方案,助力园区实现节能减排、降低成本的…

vue3使用echarts绘制地图

vue3使用echarts绘制地图 安装echarts npm install echarts下载地图的json数据【我这里是把json数据单独粘出来然后新建了一个文件china.json】 下载中国及各个省份的地图数据引入 import chinaJson from ./china.json绘制地图 <template><div ref"myChart&q…

Windows WMI详解

WMI简介 WMI ( Windows Management Instrumentation, Windows管理规范)是Windows 2000/XP管理系统的核心&#xff0c;属于管理数据和操作的基础模块。设计WMI的初衷是达到一种通用性&#xff0c;通过WM操作系统、应用程序等来管理本地或者远程资源。它支持分布式组件对象模型(…

sora技术报告阅读

sora是一个在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。 需要将所有类型的视觉数据转化为统一表示的方法&#xff0c;使得能够对生成模型进行大规模训练。 Sora是一个通用的视觉数据模型&#xff0c;它可以生成不同持续时间、宽高比和分辨率的视…

打造透明银行存储:Solidity智能合约的实践与探索

引言&#xff1a; 随着区块链技术的快速发展&#xff0c;智能合约作为其中的核心组件&#xff0c;正被越来越多地应用于各种场景。作为智能合约的编程语言&#xff0c;Solidity因其对以太坊平台的深度支持而备受关注。在这篇文章中&#xff0c;我们将通过构建一个透明的银行存储…

webrtc

stun服务 阿里云服务器安全组添加端口开放 webrtc-streamer视屏流服务器搭建 - 简书

docker安装单机版canal和使用

说明&#xff1a;我安装的组件架构如下&#xff1a; 1、准备一台虚拟机&#xff0c;192.168.2.223&#xff0c;我安装的时候&#xff0c;docker只支持canal1.1.6版本&#xff0c;1.1.7无法使用docker安装.还有一点要补充&#xff0c;就是1.1.6好像不支持es8.0以上版本&#x…

Java+SpringBoot,打造社区疫情信息新生态

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

FreeRTOS 信号量

目录 一、信号量的概念 二、二值信号量 1、二值信号量的定义 2、二值信号量的作用 3、二值信号量的操作 4、二值信号量操作实验 5、二值信号量会导致优先级翻转问题 三、互斥信号量 1、互斥信号量的引入 2、注意&#xff1a;互斥信号量不能用于中断服务函数中&#xf…