惠州住房和城乡建设部网站,网站推广的重要性,对网页美工的认识,设计在线看aiboco团队荣获本届挑战赛季军。该团队来自亿阳信通。
方案介绍
本届挑战赛采用开放式赛题#xff0c;基于建行云龙舟运维平台的稳定性工具和多维监控系统#xff0c;模拟大型的生活服务APP的生产环境#xff0c;提供端到端的全链路的日志、指标和调用链数据。参赛队伍在组…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调用大模型进行最终的根因定位并将根因定位结果输出。
大模型应用
本次部署采用使用CPPGPU方案降低部署成本部署推理效率提升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和思维链使能分析复杂的问题。使用大模型本地知识库实现故障处理案例推荐等。