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

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.mzph.cn/news/708018.shtml

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

相关文章

[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

基于JAVAEE+Eclipse+Tomcat+Mysql开发的的停车场管理系统

基于JAVAEEEclipseTomcatMysql开发的的停车场管理系统 项目介绍💁🏻 如今,我国现代化发展迅速,人口比例急剧上升,在一些大型的商场,显得就格外拥挤,私家车的数量越来越多,商场停车难…

【深度学习】Pytorch 教程(十四):PyTorch数据结构:6、数据集(Dataset)与数据加载器(DataLoader):自定义鸢尾花数据类

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor(张量)1. 维度(Dimensions)2. 数据类型(Data Types)3. GPU加速(GPU Acceleration) 2、张量的数学运算1. 向量运算2. 矩阵…

高性能图表组件LightningChart .NET v11.0发布——增强DPI感知能力

LightningChart完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学&am…

华为---RSTP(四)---RSTP的保护功能简介和示例配置

目录 1. 技术背景 2. RSTP的保护功能 3. BPDU保护机制原理和配置命令 3.1 BPDU保护机制原理 3.2 BPDU保护机制配置命令 3.3 BPDU保护机制配置步骤 4. 根保护机制原理和配置命令 4.1 根保护机制原理 4.2 根保护机制配置命令 4.3 根保护机制配置步骤 5. 环路保护机…

php基础学习之错误处理(其二)

在实际应用中,开发者当然不希望把自己开发的程序的错误暴露给用户,一方面会动摇客户对己方的信心,另一方面容易被攻击者抓住漏洞实施攻击,同时开发者本身需要及时收集错误,因此需要合理的设置错误显示与记录错误日志 一…

Linux笔记--用户与用户组

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系…

3D数字孪生

数字孪生(Digital Twin)是物理对象、流程或系统的虚拟复制品,用于监控、分析和优化现实世界的对应物。 这些数字孪生在制造、工程和城市规划等领域变得越来越重要,因为它们使我们能够在现实世界中实施改变之前模拟和测试不同的场景…

从业务角度出发,实现UniApp二次开发的最佳实践

UniApp作为一款跨平台的移动应用开发框架,为开发者提供了在多个平台上构建应用的便利性。在这篇文章中,我们将深入探讨UniApp的二次开发,以及如何通过定制化来满足你的独特需求。 1.了解UniApp基础 1.1项目结构和文件 熟悉UniApp的项目结构…

动态规划(题目提升)

[NOIP2012 普及组] 摆花 方法一:记忆化搜索 何为记忆化搜素:就是使用递归函数对每次得到的结果进行保存,下次遇到就直接输出即可 那么这个题目使用递归(DFS)是怎样的? 首先我们需要搞清楚几个坑点&#x…

C/C++语言文字小游戏(荒岛求生)

游戏背景 玩家在荒岛上,需要寻找食物、水源、避难所等资源来生存。 玩家需要避免危险,如野兽、植物、天气等,否则会失去血量或生命。 玩家可以在荒岛上遇到其他生存者,可以选择合作或对抗。 游戏目标是生存一定时间或找到生存的出…

Javaweb之SpringBootWeb案例之 Bean管理的第三方Bean的详细解析

2.3 第三方Bean 学习完bean的获取、bean的作用域之后,接下来我们再来学习第三方bean的配置。 之前我们所配置的bean,像controller、service,dao三层体系下编写的类,这些类都是我们在项目当中自己定义的类(自定义类)。当我们要声…

将任何网页变成桌面应用,全平台支持 | 开源日报 No.184

tw93/Pake Stars: 20.9k License: MIT Pake 是利用 Rust 轻松构建轻量级多端桌面应用的工具。 与 Electron 包大小相比几乎小了 20 倍(约 5M!)使用 Rust Tauri,Pake 比基于 JS 的框架更轻量和更快内置功能包括快捷方式传递、沉浸…

小程序中使用echarts地图

一、下载并安装echarts 1、下载echarts-for-weixin组件 echarts-for-weixin项目提供了一个小程序组件,用这种方式可以在小程序中方便地使用 ECharts。 下载ec-canvas项目(下载地址) ​​ 注意:下载的 ec-canvas 中的echarts的版本…

【Linux】协程简介

【Linux】协程简介 一、什么是协程?简介优点 二、为什么使用协程?三、协程的种类1、对称协程2、非对称协程 四、协程栈1、静态栈2、分段栈3、共享栈4、虚拟内存栈 五、协程调度1、栈式调度2、星切调度3、环切调度 六、常见协程库参考文献 一、什么是协程…

机器学习 | 模型评估和选择 各种评估指标总结——错误率精度-查准率查全率-真正例率假正例率 PR曲线ROC曲线

文章目录 1. 如何产生训练集和测试集呢?1.1 留出法1.2 K折交叉验证法1.3 自助法 2. 模型评估指标2.1 错误率和精度2.2 查准率和查全率与F12.2.1 PR曲线及其绘制 2.3 正例率和假例率2.3.1 ROC曲线图绘制及AUC 3 假设检验 1. 如何产生训练集和测试集呢? 1…

【ACW 服务端】k8s部署

k8s部署 --- apiVersion: apps/v1 kind: Deployment metadata:annotations:k8s.kuboard.cn/displayName: 【wu-smart-acw-server】后台服务端labels:k8s.kuboard.cn/layer: svck8s.kuboard.cn/name: wu-smart-acw-servername: wu-smart-acw-servernamespace: defaultresourceV…

记autodl跑模型GPU CPU利用率骤变为0问题

目录 问题 解决 问题 实验室服务器资源紧张,博主就自己在autodl上租卡跑了,autodl有一个网络共享存储,可挂载至同一地区的不同实例中,当我们在该地区创建实例开机后,将会挂载文件存储至实例的/root/autodl-fs目录…

韩国量子之梦:将量子计算纳入新增长 4.0战略

内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:1500字丨9分钟阅读 据《朝鲜邮报》报道,韩国将推出由量子计算加速的云服务,并在首尔地区启动城市空中交通的试飞&…

微信小程序订阅消息前后端示例

微信小程序的订阅消息&#xff0c; 必须是由弹框&#xff0c;弹框&#xff0c;弹框来调起了&#xff0c;单纯的在页面上调用 wx.requestSubscribeMessage是没有效果的 小程序端的代码 <view class"sub" bindtap"dinyuxiaoxi">订阅消息</view>…