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

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团队接下来将会结合大模型在扩充完善运维知识库以及日志数据分析方向上继续研究。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【常用】【测速】ptflops库---速度FPS、参数Params、计算复杂度Flops

一、常用名字 中文名字 英文名字 简称 单位 模型参数量 number of parameters. param. (单位B M) 计算复杂度 computational…

【Spring Cloud 进阶】OpenFeign 底层原理解析

参考文章 万字33张图探秘OpenFeign核心架构原理 | 三友SpringCloud OpenFeign源码详细解析Java 代理机制 OpenFeign 是一个精彩的使用动态代理技术的典型案例,通过分析其底层实现原理,我们可以对动态代理技术有进一步的理解。 目录 1. Feign 与 OpenFeig…

VUE3:统计分析页面布局+自适应页面参考

一、布局 <template><div class"container1"><div class"form white"><el-form :inline"true" :rules"rules" :model"queryParams" label-width"80px" ref"querParmRef"><e…

力扣递归:路径总和

思路&#xff1a;此题思路为递归实现&#xff0c;递归思路为&#xff1a;在每层递归的过程中将各个节点的数据记录下来&#xff0c;不断将减少目标数据的值准备进行判断&#xff0c;当进行到叶子节点时要进行判断 /*** Definition for a binary tree node.* struct TreeNode {…

OJ_二叉树最短路径长度

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vector> using namespace std;struct TreeNode {int num;TreeNode* left;TreeNode* right;TreeNode* parent; };void createTree(vector<TreeNode*>& nodeArr, int n) {for (i…

2000-2022年上市公司绿色专利申请占比/数据

2000-2022年上市公司绿色专利申请占比数据 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;国家知识产权局、WIPO绿色专利清单 3、指标&#xff1a;年份、股票代码、股票简称、行业代码、省份、城市、区县、行政区划代码、城市代码、区县代码、首次上市年份、上市状态、…

又降价啦!2024年阿里云核心产品价格全线下调,最高幅度达55%

2024年3月1日开始&#xff0c;阿里云将开启新一轮的降价政策&#xff0c;核心产品价格全线下调&#xff0c;平均降幅20%&#xff0c;最高幅度达55%&#xff0c;阿里云希望通过此次大规模降价&#xff0c;让更多企业和开发者用上先进的公共云服务&#xff0c;加速云计算在中国各…

深度学习 精选笔记(8)梯度消失和梯度爆炸

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

备战蓝桥杯Day19 - 堆排序基础知识

一、每日一题 - 填充 详细题解 s input() # 输入字符串 n len(s) # 定义字符的长度 judge ["00", "11", "0?", "1?", "?0", "?1", "??"] # 把所有的情况一一列举出来 count 0 # 设置计数…

【Python】PyGameUI控件

哈里前段时间写了一个windows平板上自娱自乐&#xff08;春节和家人一起玩&#xff09;基于pygame的大富翁游戏。 pygame没有按钮之类的UI控件&#xff0c;写起来不怎么顺手。就自己写一个简单的框架。 仓库地址 哈里PygameUi: pygame ui封装自用 (gitee.com) 使用示例 示…

Tomcat 软件和配置文件 基本介绍

一 &#xff0c;web知识 简介 &#xff08;一&#xff09;web技术 1&#xff0c;http协议和 B/S &#xff08;Browser/Server&#xff09;结构 最早出现了CGl (Common Gateway Interface)通用网关接口&#xff0c;通过浏览器中输入URL直接映射到一个服务器端的脚本程序执行&…

从单体服务到微服务:多模式 Web 应用开发记录<三>预初始化属性

相关文章&#xff1a; 多模式 Web 应用开发记录<一>背景&全局变量优化多模式 Web 应用开发记录<二>自己动手写一个 Struts 开头先看一个简单的例子&#xff0c;这是 ftl 文件的一个表单&#xff1a; <form id"validateForm" action"#&quo…

【程序员是如何看待“祖传代码”的?】《代码的遗产:探索程序员眼中的“祖传代码”》

程序员是如何看待“祖传代码”的&#xff1f; 在程序员的世界里&#xff0c;代码不仅仅是构建软件的基石&#xff0c;它们也承载着历史、智慧和技术的演变。在我的编程生涯中&#xff0c;我遇到过许多神奇而独特的“祖传代码”&#xff0c;这些代码如同古老的魔法书&#xff0…

【C语言】三子棋

前言&#xff1a; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小&#xff0c;三子棋在很多时候会出现和…

C++面试常见八股分享

1.unordered_set和set&#xff0c;unordered_map和map的区别 set 和 map 是 C STL 中的两种关联容器&#xff0c;而 unordered_set 和 unordered_map 是 C11 新增的基于哈希表的关联容器。它们之间的主要区别在于底层的数据结构和操作复杂度。 set 和 unordered_set&#xff1…

黑马程序员——接口测试——day05——Request库、Cookie、Session、UnitTest框架

目录&#xff1a; Requests库 Requests库安装和简介设置http请求语法应用案例 案例1案例2案例3案例4Cookie Cookie简介CookieSession认证方式案例5-看演示&#xff0c;此代码不需实现Session Session简介Session自动管理Cookie案例6面试题Cookie和Session区别获取指定响应数据…

云原生架构技术揭秘:探索容器技术的奥秘

云原生的概念和演进都是围绕云计算的核心价值展开的&#xff0c;比如弹性、自动化、韧性&#xff0c;所以云原生所涵盖的技术领域非常丰富。 随着云计算技术的不断发展&#xff0c;云原生架构已经成为了新一代软件开发的重要趋势。本文将为您介绍云原生架构的相关技术&#xf…

单片机精进之路-9ds18b20温度传感器

ds18b20复位时序图&#xff0c;先将b20的数据引脚拉低至少480us&#xff0c;然后再将数据引脚拉高15-60us&#xff0c;再去将测传感器的数据引脚是不是变低电平并保持60-240us&#xff0c;如果是&#xff0c;则说明检测到温度传感器&#xff0c;并正常工作。需要在240us后才能检…

鸿蒙真有前景吗?是真是假?

直到“纯血鸿蒙”发布&#xff0c;才看清华为真正的布局&#xff0c;这一招实在是高明&#xff01; “纯血鸿蒙”发布之前&#xff0c;国内大批人唱衰华为&#xff0c;唱衰鸿蒙系统的生态&#xff0c;认为大概率会走诺基亚和微软的老路&#xff0c;没想到“纯血鸿蒙”一经推出…

高质 智能 绿色低碳棒线材轧制 智能测径仪等亦起关键作用

第十一届棒线材会议围绕推动轧钢装备数字化、智能化、绿色化转型升级&#xff0c;实现高质量发展&#xff0c;高质量、智能化、绿色低碳主题&#xff0c;将于4月22-24日在贵州省六盘水市召开。这也是轧钢生产近几年的发展趋势。 在线棒材生产中&#xff0c;蓝鹏测控可提供三种类…