本届挑战赛季军方案:基于图网络及LLM AGENT的微服务系统异常检测和根因定位方法

aiboco团队荣获本届挑战赛季军。该团队来自亿阳信通。

方案介绍

本届挑战赛采用开放式赛题,基于建行云龙舟运维平台的稳定性工具和多维监控系统,模拟大型的生活服务APP的生产环境,提供端到端的全链路的日志、指标和调用链数据。参赛队伍在组织者分配的云环境中,运用了大模型技术,对调用链数据、KPI指标和业务指标进行故障检测和根因定位。

首先分析赛题信息,获取到了如下困难:

1、微服务系统复杂

微服务系统架构复杂,当异常出现时,不能快速发现并且给出根因。
各类数据(业务指标、性能指标、调用链、日志等)特征多种多样,如何能实现统一化处理。

2、数据复杂

数据量比较大,每天大约30G以上的数据量。
微服务化后,调用关系不固定。
需要快速给出异常检测结果。
需要快速给出根因定位结果。

3、与已有工具的关系

现在已有skywalking等调用链跟踪工具,还要进行异常检测和根因定位的意义。
节点运行状态,可以通过业务拨测、skywalking设备监测获得。
哪些是上述工具无法实现的?

4、大模型应用

如何借助大模型提升AIOps能力:

Agent
思维链
生成报告
故障分类

5、资源限制

前期竞赛服务器资源紧张(CPU、内存、磁盘)。
GPU等资源紧张,给部署大模型,带来难题。
针对以上问题,亿阳信通OSS数智部团队提出了如下思路:

a、通过正常数据训练模型

通过正常数据进行学习和训练,得到各类数据的特征指标。
对异常数据进行检测和根因定位。
b、异常检测和根因定位依据

以TC为主,Metric、Trace、日志为辅,进行异常检测。
以Metric、Trace和日志为主,进行异常根因定位。
c、大模型辅助应用

在资源有限的情况下部署大模型应用。
大模型辅助根因定位。

然后根据以上思路提出了基于图网络和LLM Agent的微服务异常检测和根因定位方法。这种提出了4大创新:时序异常检测、六元组动态建模、图网络根因定位和大模型Agent辅助应用。创新方法如下图所示:

图片

并基于LLM Agent的应用,将LLM Agent智能体应用到智能运维领域。

图片

本方案大体如下:通过对指标数据的异常检测模块获取异常检测结果,通过trace数据的异常检测模块获取异常检测结果,通过将结果结合并进行根因定位,然后通过大模型系统总agent进行结果处理。该流程遵循着异常检测-根因定位的流程进行展示。

具体流程如下所示:

图片

接下来详细介绍这些流程的具体方法实现。

异常检测

时序异常检测是一种通过分析时间序列数据来识别与正常模式不符的异常行为的方法。在TC(时间序列数据)业务中,对业务指标进行时序异常检测可以帮助及时发现异常情况,并采取相应的措施。以下是对TC业务指标进行时序异常检测的步骤:

TC业务指标获取

竞赛方使用专门的数据采集工具收集与业务指标相关的数据,包含CPU、内存等指标的各时间段具体值信息,并将其整理成json文件发送给选手。该数据包含异常数据和无异常数据两种,异常数据包含一个或多个异常,无异常数据则指的是当天无异常发生。

1.模型训练
模型训练部分使用的是VAE算法。VAE模型由两部分组成:编码器和解码器。

编码器:编码器将输入数据映射到潜在空间中的概率分布,即学习到输入数据的潜在表示。编码器的输出包括潜在空间中的均值(μ)和方差(σ),这些参数用于生成潜在变量。

解码器:解码器将潜在变量重新映射到输入空间,生成与原始数据相似的重构数据。

损失函数:定义VAE的损失函数,它由两部分组成:重构损失和KL散度损失。

重构损失:衡量重构数据与原始数据之间的差异,通常使用均方误差(MSE)或交叉熵损失。

KL散度损失:衡量学到的潜在分布与标准正态分布之间的差异,促使潜在变量在潜在空间中均匀分布。

使用正常数据训练VAE模型。在训练过程中,优化损失函数,使得模型学到正常数据的潜在表示。训练过程中,随机从正常数据中采样,将其输入编码器,然后生成重构数据,最小化损失函数。

VAE计算公式为:

图片

2.时序异常检测

定义阈值:在异常分类方案中,阈值具有关键作用。阈值是根据重建损失或其他相关指标设置的关键数值。仔细的阈值选择至关重要,因为它直接影响到误报(将正常数据错误地标记为异常)和漏报(未能正确标记异常数据)之间的权衡。我们设置了适当的阈值用于并针对异常数据和非异常数据进行适当修改。

评估异常:在完成 VAE的训练和阈值定义后,使用VAE进行了时序异常检测。该过程包括将输入数据编码到潜在空间中,通过解码器进行重建,然后将重建的数据与原始输入进行比较。然后将重建误差超过预先定义的阈值的数据点标记为异常,并进行输出。VAE识别出了那些在潜在空间中无法很好表示的、与正常模式差异较大的异常情况,在异常数据中识别到了异常。

同时我们使用数据可视化来对比展示出异常情况是否符合预期分布。

通过可视化可以直观看出异常点的具体情况。

除了VAE之外我们也使用了趋势和历史特征来进行辅助查找异常,并最终使用人工进行确认来获得异常的实际输出。具体流程如下:

图片

根因分析

根因分析需要各类数据的结合进行混合计算。

图片

具体流程如下:

图片

这里我们将资源数据和Trace数据进行拓扑还原,作为资源拓扑辅助进行异常信息诊断。异常信息检索关联网元并联合资源拓扑进行故障定界。故障定界结果又反过来辅助异常信息进行的性能根因定位和调用链根因定位,然后将性能根因定位结果和调用链根因定位结果返回到总agent里,总agent调用大模型进行最终的根因定位并将根因定位结果输出。

大模型应用

本次部署采用使用CPP+GPU方案,降低部署成本,部署推理效率提升10倍以上。并且使用ReAct加CoT加Agent的方式,成功完成比赛的完整输出任务。

具体使用例子如下:

问:案例库中的指标分析发现的异常数据为{data1},调用链分析发现的数据为{data2},观察指标异常值数据的v_err、v_pre、v_pst和trend列,可以根据指标异常值数据的指标突变值情况看出异常指标为outlier={result},该数据包含kpi_names和cmdb_ids两列。再将outlier在调用链数据中进行查询,并结合调用链数据的指标v_err、v_pre、v_pst和trend进行判断,确定出调用链数据的异常值组合为outlier2= {result2},该组合包含cmdb_ids和ext_net_peer_name两列。

现在指标分析发现的异常数据为{data_now1},调用链分析发现的数据为{data_now2} ,请根据以上案例进行分析并输出outlier1和outlier2。

上述问题中红色的数据由案例库给出,黄色的数据由指标分析结果和调用链分析结果给出。同时我们使用Agent加ReAct加CoT进行网元状态工具和故障根因分析工具进行调用。调用方法为ReAct加CoT进行模式输出,得到工具的输出结果。

总结展望

总结

  • 通过时序异常检测算法,完成异常检测
  • 使用图网络完成故障根因定位
  • 使用大模型辅助故障根因定位

后续工作

  • 探索大模型Agent的深度应用,完成更多运维工作。
  • 深入研究ReAct和思维链,使能分析复杂的问题。
  • 使用大模型+本地知识库,实现故障处理案例推荐等。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

#LLM入门|Prompt#2.2_ AI 应用开发的范式_Language_Models,the_Chat_Format_and_Tokens

在本章中,我们将和您分享大型语言模型(LLM)的工作原理、训练方式以及分词器(tokenizer)等细节对 LLM 输出的影响。 我们还将介绍 LLM 的提问范式(chat format),这是一种指定系统消息…

YOLOv8改进 | 独家创新篇 | 结合SOTA思想利用双主干网络改进YOLOv8(全网独家创新,最重磅的更新)

一、本文介绍 本文给大家带来的改进机制是结合目前SOTAYOLOv9的思想利用双主干网络来改进YOLOv8(本专栏目前发布以来改进最大的内容,同时本文内容为我个人一手整理全网独家首发 | 就连V9官方不支持的模型宽度和深度修改我都均已提供,本文内容支持YOLOv8全系列模型从n到x均可…

【STM32】STM32学习笔记-WDG看门狗(46)

00. 目录 文章目录 00. 目录01. WDG简介02. IWDG概述03. IWDG框图04. IWDG键寄存器05. WWDG简介06. WWDG框图07. WWDG工作特性08. IWDG和WWDG对比09. 预留10. 附录 01. WDG简介 WDG(Watchdog)看门狗 看门狗可以监控程序的运行状态,当程序因为…

eltable 合计行添加tooltip

eltable 合计行添加tooltip 问题描述: eltable 合计行单元格内容过长会换行,需求要求合计行数据超长显示 … ,鼠标 hover 时显示提示信息。 解决方案:eltable合计行没有对外的修改接口,想法是 自己实现一个tooltip&a…

【GB28181】wvp-GB28181-pro快速修改登录页面名称(前端)

引言 作为一个非前端开发人员,自己摸索起来比较费劲,也浪费了很多时间 本文快速帮助开发者修改为自己名称的一个国标平台 文章目录 一、 预期效果展示二、 源码修改-前端三、 验证修改效果一、 预期效果展示 二、 源码修改-前端 需要修改的文件位置: 项目工程下web_src目录…

高并发数据采集:Ebay商家信息多进程爬虫的进阶实践

背景 Ebay作为全球最大的电子商务平台之一,其商家信息包含丰富的市场洞察。然而,要高效获取这些信息,就需要利用先进的技术手段。本文将深入探讨如何通过并发加速技术,实现Ebay商家信息多进程爬虫的最佳实践方法,并附…

Find My运动相机|苹果Find My技术与相机结合,智能防丢,全球定位

运动相机设计用于在各种运动和极限环境中使用,如徒步、登山、攀岩、骑行、滑翔、滑雪、游泳和潜水等,它们通常具有防抖防震、深度防水和高清画质的特点,能够适应颠簸剧烈的环境,甚至可以承受一定程度的摔落,一些运动相…

skywalking展示http请求和响应

1.效果图 可以在请求中看到自定义请求信息input和返回值output&#xff0c;方便快速定位问题 2.添加依赖 <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.1.0</version&…

MySQL的Redo Log、Undo Log、Binlog与Replay Log日志

前言 MySQL数据库作为业界最流行的开源关系型数据库之一&#xff0c;其底层实现涉及多种重要的日志机制&#xff0c;其中包括Redo Log、Undo Log、Binlog和Replay Log。这些日志组件共同确保MySQL数据库系统在面对事务处理、数据恢复和主从复制等方面表现出色。本文主要介绍一下…

pytorch 图像的卷积操作

目录 1.卷积核基本参数说明 2.卷积相关操作说明 3.卷积操作示例 1.卷积核基本参数说明 pytorch进行图像卷积操作之前&#xff0c;需要把图像素格式进行分离&#xff0c;比如一个图像为rgb格式&#xff0c;把R&#xff0c;G,B取出来作为一个ndarray&#xff0c;前文讲过&#…

ARM系列 -- 虚拟化(三)

为了实现虚拟化&#xff0c;虚拟机需要控制系统资源。但是实际的系统资源是在hypervisor直接控制之下&#xff0c;为了实现隔离和安全等方面的考虑&#xff0c;不可能让虚拟机直接控制这些系统资源。 比如&#xff0c;虚拟机想根据具体情况去做电源管理。一个解决办法就是利用…

.net 在ubuntu下动态写入 中文字乱码 解决:ubuntu下添加中文字库

.net 在ubuntu下动态写入图片水印 中文字乱码 解决&#xff1a;ubuntu下添加中文字库 1.安装字体命令 sudo apt install -y fontconfig2.查看已安装的字体 &#xff08;1&#xff09;查看linux已安装字体 fc-list&#xff08;2&#xff09;查看linux已安装中文字体 fc-li…

字节面试问题

实现三列布局的方法 第一种&#xff1a;可以使用浮动margin 第二种&#xff1a;浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

力扣 第 386 场周赛 解题报告 | 反悔贪心

力扣 第 386 场周赛 解题报告 | 反悔贪心 前言 整体评价 前两天发烧&#xff0c;今天才补完题&#xff08;非常惭愧&#xff09;第三题的二分不容易想到&#xff0c;第四题的 “反悔堆” 这种思想值得学习。 T1 分割数组 思路&#xff1a;通过哈希表保证不存在出现两次以上…

常见的主流媒体有哪些?主流媒体报道的优势

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体胡老师。 主流媒体通常指的是具有广泛影响力和权威性的媒体机构&#xff0c;它们在新闻报道、舆论引导等方面扮演着重要角色。 常见的主流媒体包括但不限于&#xff1a; 电视媒体&#xff1a;如总台…

PHP+vue+mysql高校学生健康管理系统fe93x

。高校学生健康管理平台采用系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。高校学生健康 管理平台主要实现角色有管理员和学生,医护人员,辅导员,管理员在后台管理诊断结果模块、医护咨询模块、医护人员模块、医护回复模块、…

国际黄金价格是什么?和黄金价格有何区别?

黄金是世界上最珍贵的贵金属之一&#xff0c;其价值被无数人所垂涎。而国际黄金价格作为市场上的参考指标&#xff0c;直接影响着黄金交易的买卖。那么国际黄金价格到底是什么&#xff0c;与黄金价格又有何区别呢&#xff1f;本文将为您详细解答。 国际黄金价格是指以美元计量的…

多源视频融合平台VMS/smarteye,免费的GB28181 server, 免费的RTMP推流server,RTSP server

海康、大华、宇视等网络摄像机IPcamera及DVR/NVR等多路设备走国标28181接入视频混合融合平台smarteye 第三方国标摄像头走GB28181接入视频融合平台VMS/smarteye&#xff0c; 平台已为设备预分配了SIP帐号&#xff0c;这样免去了找平台人员索要接入SIP帐号的麻烦&#xff0c;可…

深入理解c指针(五)

目录 八、指针与数组 1、数组名的理解 2、使用指针访问数组 3、一维数组传参的本质 4、冒泡排序 5、二级指针 6、指针数组 7、指针数组模拟二维数组 八、指针与数组 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0]; 1、数组名的理解 某一数组名就是该数组…

深度学习PyTorch 之 RNN-中文多分类

关于RNN的理论部分我们已经在前面介绍过&#xff0c;所以这里直接上代码 1、 数据部分 1.1 读取数据 # 加载数据 data_path ./data/news.csv data pd.read_csv(data_path)# 预览数据的前几行 data.head()数据是csv格式&#xff0c;只有两列&#xff0c;第一列是标签&#…