通過大語言模型理解運維故障:評估和總結

在這里插入圖片描述
張圣林
南開大學軟件學院副教授、博士生導師
第六屆CCF國際AIOps挑戰賽程序委員會主席

在ATC、WWW、VLDB、KDD、SIGMETRICS等國際會議和JSAC、TC、TSC等國際期刊發表高水平論文50余篇。主持國家自然科學基金項目2項,橫向項目13項(與華為、字節跳動、騰訊等合作)。獲ISSRE 2023/2018最佳學術論文獎、清華大學優秀博士學位論文、華為“最佳技術合作教授”、南開大學“良師益友”、麒麟軟件“校企合作突出貢獻”獎、天津市科技進步一等獎等榮譽。擔任CCF A/B類國際會議程序委員會委員十余次。中國計算機學會高級會員,YOCSEF天津AC副主席,互聯網專委、軟件工程專委、服務計算專委執行委員。

論文:
Assess and Summarize: Improve Outage Understanding with Large Language Models(ESEC/FSE 2023)


本文為南開大學軟件學院副教授張圣林在論文閃電分享環節的演講內容整理。

感謝各位嘉賓對AIOps挑戰賽和研討會的大力支持,今天我將分享近期我們團隊和微軟合作基于大語言模型提高對故障理解的工作。

什么是云服務故障?

圖片
當今社會,我們正處在數字化時代,云服務對我們的生產生活至關重要。國內和國外涌現出一批優秀的云服務供應商:亞馬遜的AWS、微軟的Azure、谷歌云、阿里云、騰訊云等。它們為我們提供了各種各樣的服務,讓我們的生活更加便利。

但是,近期接連不斷的爆出多家云服務公司出現故障的事件,當故障發生之后,一個云數據中心或整個地區的基本服務(如存儲、計算能力或中間件)中斷,帶來了巨大的經濟損失;用戶體驗下降,造成客戶丟失。企業和個人都受到了波及,大家應該是感同身受。

圖片

當云故障發生之后,我們首先需要確認故障影響了哪些組件。只有確定了被影響組件才能夠做故障規避,把這部分組件進行隔離。

在這里插入圖片描述

以上圖為例,當一個存儲服務的故障發生之后,會導致數據庫指標出現增長,Web App性能出現下降,進而導致用戶體驗降低。從“T1”時刻開始,我們可以確認這是一個故障了,因為它影響用戶體驗,并且造成了很多事件發生。

故障發生之后我們需要花一段時間總結故障產生的原因,也就是圖片中“T2”時刻,我們需要寫故障摘要,把整個故障的摘要信息告訴其他的團隊。

圖片

在此之前,故障摘要的生成是通過人工的方式去完成的,費時費力且容易出錯。微軟在這方面做了一些事件聚合的嘗試工作,但是把事件聚合完了之后,還是需要運維工程師去人工查看。這里有兩個挑戰:首先,需要運維工程師判斷哪些信息是有用的。其次,需要總結領域特定的、與云相關的故障信息。

什么是故障的摘要?

我們分析了微軟過去三年故障的數據,回答了下面幾個問題。

1、故障的影響范圍

圖片

我們分析了微軟18個云系統3年多的數據,研究了超過6000個已經解決的云故障。發現超過86%的故障是影響了很多用戶的,其中持續時間長的故障比例遠大于持續時間短的故障;同時,我們還發現25%的故障關聯超過10個事件,影響范圍比較大。

2、故障摘要包含了哪些信息?

圖片

我們把已有的工單信息、告警信息進行分析研究,主要是分析那些級別比較高的告警信息,進行整合生成故障摘要。在這個摘要里主要回答了五方面的問題:故障出現的時間、故障發生的位置、故障影響的范圍、故障如何產生、為什么會發生故障。把這些問題總結之后就能夠生成如上圖右邊實例的故障摘要。

3、人工分析故障所需的時間成本

圖片

我們做了一個統計,如上圖所示“T1”代表了故障開始時間, “T2”代表運維工程師寫完故障摘要的時間,用“T2”減“T1”表示整個故障摘要生成的時間。我們會發現超過23%的故障花費的時間是超過兩個時間單位的,耗時比較長。

4、研究結果

圖片

為了解決上述問題,我們利用基于大語言模型設計了一個技術框架,它能夠生成一個有用的、可讀的故障摘要,大幅降低故障摘要生成時間。什么是有用?指的是能夠收集和故障相關且價值比較高的信息,能夠很容易的被人看懂,同時還能夠大幅的降低生成故障的時間,這也是我們設計這個框架的目標。

技術框架方案介紹

圖片

整個框架包括幾個部分,首先是采集故障相關的告警信息。怎么樣去采集?通過三種途徑去實現的。首先是基于規則,因為有很多規則可以去利用,比如說一些告警是由同一個指標時間序列異常檢測所產生的,那么我們就判定這些告警是相關的。第二是模塊,根據歷史的告警信息,分析告警與哪些模塊是相關聯的,那么在新的一次故障產生之后,我們會把與這些模塊相關的告警關聯起來。第三是深度學習。利用一些深度學習方法,根據語義的相似性,分析哪些告警描述的是同一個事件,那就表明它們是相關的。

我們通過這三種途徑,就能夠把與這個故障本身相關的那些告警的事件采集起來,構建這個故障的范圍。范圍確定之后,把范圍內全部的告警事件聚合在一塊,根據告警的緊要程度進行自動排序。

我們把每個告警的 Title和描述做一個采集,把它們作為一個Context,再把歷史上人工所生成的摘要信息作為補充部分,對Chat GPT進行訓練。通過這樣的方式在新的故障發生之后,只需要把相關告警信息輸入進去,就可以生成本次故障的摘要信息。

實驗結果

圖片

上圖中展示的是我們的實驗結果,其中Chat GPT3.5在故障摘要生成方面效果顯著優于Chat GPT 2和其它規則或檢索生成方式。

圖片

同時,我們發現通過這種方式比傳統的人工方式的效率提高了200多倍。

圖片

我們還采用了人工的方式,把我們的研究成果發給那些故障的Owner,他們用不同的方法,比如階段生成或者基于規則來做排序,最后發現大部分工程師都還是會把Chat GPT生成的摘要排在第一位或第二位。

總結

圖片

我們的研究首先是對大規模的云服務故障做一個分析;同時設計了一個有用且可讀的技術框架,能夠大幅降低故障摘要的生成時間;最后我們研究成果得到了微軟工程師們的認可,證明該方法確實能夠大幅降低故障摘要生成的時間。

以上是我的分享,謝謝大家。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716606.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716606.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716606.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sqli-labs靶場第20關詳解[Sqli-labs-less-20]自動化注入-SQLmap工具注入

Sqli-labs-Less-20 通過測試發現,在登錄界面沒有注入點,通過已知賬號密碼admin,admin進行登錄發現: 登錄后會有記錄 Cookie 值 設想如果在Cookie嘗試加上注入語句(報錯注入),測試是否會執行…

C++STL之vector

vector 1. vector介紹 vector文檔vector其實就是一個順序表,它表示可變大小數組的序列容器。像數組一樣,可以使用下標[] 來訪問vector的元素,和數組一樣高效;甚至,它的大小是可以動態改變的,其大小由容器自…

printf() 函數支持變長參數列表

printf() 函數也支持變長參數列表&#xff0c;可以使用省略號 … 來表示&#xff0c;用于指定要輸出的多個值。在函數內部&#xff0c;可以使用 va_start() 和 va_end() 宏來訪問變長參數列表中的值。例如&#xff1a; #include <stdio.h> #include <stdarg.h>voi…

軟考55-上午題-【數據庫】-數據庫設計步驟1

一、數據庫設計的步驟 新奧爾良法&#xff0c;四個主要階段&#xff1a; 1、用戶需求分析&#xff1a;手機用戶需求&#xff0c;確定系統邊界&#xff1b; 2、概念設計&#xff08;概念結構設計&#xff09;&#xff1a;是抽象概念模型&#xff0c;較理想的是采用E-R方法。 …

深度學習:開啟你的AI探索之旅

在這個信息爆炸的時代,人工智能(AI)已經滲透到我們生活的方方面面,從智能語音助手到自動駕駛汽車,從智能推薦系統到醫療影像診斷,AI的身影無處不在。而深度學習,作為AI領域的一大核心技術,更是引領著這場科技革命的浪潮。那么,如何入門深度學習,踏上這趟充滿挑戰與機…

深入Gradle:初識構建自動化的魅力

在軟件開發的世界中&#xff0c;構建工具是不可或缺的一部分。它們幫助我們自動化編譯、測試和打包應用程序的過程&#xff0c;從而節省時間并減少錯誤。在眾多構建工具中&#xff0c;Gradle以其靈活性、可擴展性和卓越的性能而脫穎而出。本篇文章將帶你走進Gradle的世界&#…

代碼隨想錄算法訓練營第七天

● 自己看到題目的第一想法 第454題.四數相加II 方法&#xff1a; 方法一&#xff1a; 暴力法 思路&#xff1a; 注意&#xff1a; 代碼&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<i…

QT 網絡編程 8

1 基礎知識 udp tcp 2 UDP 框架 客戶端: QUdpSocket x; qint64 writeDatagram( const char *data, qint64 size, const QHostAddress &address, quint16 port );服務器: void Server::initSocket(){udpSocket new QUdpSocket(this);udpSocket->bind(QHostAddress…

macos jupyter notebook字體的修改

終端codemirror 記事本打開 搜索font-family 修改font-size保存即可

重學SpringBoot3-@ConditionalOnXxx條件注解

重學SpringBoot3-ConditionalOnXxx條件注解 引言常見的條件注解常見的條件注解示例擴展條件注解1. ConditionalOnJndi2. ConditionalOnJava3. ConditionalOnCloudPlatform4. ConditionalOnEnabledResourceChain5. 自定義條件注解 總結 引言 Spring Boot 提供了一組強大的條件注…

ERDAS監督分類與溫度反演教程

本期帶來監督分類教程&#xff0c;更多內容&#xff0c;歡迎關注小編的公眾號梧桐涼月哦&#xff01;&#xff01;&#xff01; 一、研究區自然、地理環境特征&#xff1a; 1、景德鎮市位于中國江西省東北部&#xff0c;地處贛江中游的贛北盆地&#xff0c;地形地貌以丘陵和低…

mitmproxy代理

文章目錄 mitmproxy1. 網絡代理2. 安裝3. Https請求3.1 啟動mitmproxy3.2 獲取證書3.3 配置代理3.4 運行測試 4. 請求4.1 讀取請求4.2 修改請求4.3 攔截請求 5. 響應5.1 讀取響應5.2 修改響應 6. 案例&#xff1a;共享賬號6.1 登錄bilibili獲取cookies6.2 在代理請求中設置cook…

ER-NeRF實時對話數字人模型訓練與部署

ER-NeRF是基于NeRF用于生成數字人的方法&#xff0c;可以達到實時生成的效果。 下載源碼 cd D:\Projects\ git clone https://github.com/Fictionarry/ER-NeRF cd D:\Projects\ER-NeRF 下載模型 準備面部解析模型 wget https://github.com/YudongGuo/AD-NeRF/blob/master/…

MyBatisPlus入門教程

MyBatisPlus MyBatis-Plus (opens new window)&#xff08;簡稱 MP&#xff09;是一個 MyBatis (opens new window) 的增強工具&#xff0c;在 MyBatis 的基礎上只做增強不做改變&#xff0c;為簡化開發、提高效率而生。 官網地址&#xff1a;https://baomidou.com/ 一、入門案…

sql注入之sqli-labs-less-1 錯誤注入

輸入?id1 得到登錄頁面&#xff1a; 通過order by 函數試探&#xff1a; 5的時候報錯 試探到3 的時候返回正確的值&#xff1a; 然后繼續注入&#xff1a;?id -1 union select 1,2,3 -- 查看回顯點&#xff1a; 開始查看數據庫內容&#xff1a;id-1 union select 1,databa…

OpenXR 超詳細的spec--API初始化介紹

3.API 初始化 3.2 Function Pointers XrResult xrGetInstanceProcAddr(XrInstance instance,const char* name,PFN_xrVoidFunction* function); instance: XrInstance類型&#…

open-spider開源爬蟲工具:抖音數據采集

在當今信息爆炸的時代&#xff0c;網絡爬蟲作為一種自動化的數據收集工具&#xff0c;其重要性不言而喻。它能夠幫助我們從互聯網上高效地提取和處理數據&#xff0c;為數據分析、市場研究、內容監控等領域提供支持。抖音作為一個全球性的短視頻平臺&#xff0c;擁有海量的用戶…

CKA考生注意:這些Deployment要點能助你一臂之力!

往期精彩文章 : 提升CKA考試勝算&#xff1a;一文帶你全面了解RBAC權限控制&#xff01;揭秘高效運維&#xff1a;如何用kubectl top命令實時監控K8s資源使用情況&#xff1f;CKA認證必備&#xff1a;掌握k8s網絡策略的關鍵要點提高CKA認證成功率&#xff0c;CKA真題中的節點維…

68-解構賦值,迭代器,生成器函數

1.解構賦值(針對數組array&#xff0c;字符串String及對象object以) 結構賦值是一種特殊的語法&#xff0c;通過將各種結構中的元素復制到變量中達到"解構"的目的&#xff0c;但是數組本身沒有改變 1.1解構單層數組 <script>let arr [1,2,3,4,5];//獲取數組…

c++ primer學習筆記(一)

目錄 第一章、c快速入門 重點&#xff1a;類的簡介 第二章 1、基本內置類型 2、字面值常量 1、整型字面值規則 2、浮點字面值規則 3、布爾字面值 4、字符字面值 5、非打印字符的轉義序列 ?編輯 6、字符串字面值 3、變量 1、變量標識符 2、定義和初始化對象 3、…