本發(fā)明涉及計算機,尤其涉及一種業(yè)務請求異常定界分析方法、系統(tǒng)、電子設備及存儲介質(zhì)。
背景技術(shù):
1、隨著云原生技術(shù)的發(fā)展與普及,企業(yè)正加速采用kubernetes來實現(xiàn)工作負載的容器化管理。這一趨勢伴隨著業(yè)務系統(tǒng)全面容器化,引發(fā)了對日益龐大的集群規(guī)模所帶來的運維監(jiān)控復雜性的關(guān)注。針對云業(yè)務場景,在識別業(yè)務應用運行狀態(tài)的基礎(chǔ)上,不借助額外的標準化日志和traceid改造過程,為建立統(tǒng)一的業(yè)務異常定界提供數(shù)據(jù)支撐?,F(xiàn)有業(yè)務異常排查能力依然局限于應用網(wǎng)絡狀況或者改造應用代碼中,運行于kubernetes集群中的系統(tǒng)無法有效關(guān)聯(lián)內(nèi)核指標,進行標準化的業(yè)務問題定界。集群現(xiàn)有業(yè)務進行相應改造,引入額外的應用探針和大量的代碼改造服務,進行業(yè)務異常定界分析,同時需要進行繁瑣的配置,改造成本和學習成本較大,且對于業(yè)務應用的侵入性明顯,對業(yè)務應用的使用造成影響。
2、現(xiàn)有業(yè)務針對kubernetes上運行業(yè)務的異常問題,一般有三種:第一種,通過集成prometheus、grafana等監(jiān)控工具,實時收集和分析集群及應用層面的指標數(shù)據(jù),如cpu使用率、內(nèi)存消耗、網(wǎng)絡i/o和磁盤i/o,從而及時發(fā)現(xiàn)資源瓶頸和潛在故障,通過資源指標定界業(yè)務層面問題。第二種:通過細致調(diào)整應用配置,并輔以必要的代碼監(jiān)測引入標準化日志監(jiān)測和代碼改造服務,構(gòu)建一個深入代碼級別的監(jiān)控框架,從而分析和界定業(yè)務異常的根源。第三種:旁路監(jiān)控模式,通過網(wǎng)絡數(shù)據(jù)包的獲取進行數(shù)據(jù)保存,通過交換機等網(wǎng)絡設備的端口鏡像功能來實現(xiàn)監(jiān)控,在此模式下,監(jiān)控設備連接到交換機的指定鏡像端口,獲取網(wǎng)絡包,進行網(wǎng)絡數(shù)據(jù)異常數(shù)據(jù)的分析,對網(wǎng)絡及應用問題進行分析定界。
3、云上監(jiān)控組件使用的局限性
4、在kubernetes環(huán)境中,傳統(tǒng)的監(jiān)控方法暴露出顯著局限性,尤其在監(jiān)測業(yè)務運行的全貌方面。日志監(jiān)測通過在應用關(guān)鍵方法埋點的方式,輸出應用程序的執(zhí)行過程和狀態(tài),可用于開發(fā)調(diào)試和應用故障排查,帶來了日志標準化格式的問題,對于存儲和資源需求要求較高,查詢也帶來實時性限制,處理和檢索大量日志數(shù)據(jù)。同時,應用性能管理(apm)工具雖然能深入應用內(nèi)部,但其實施過程繁瑣,需要在目標系統(tǒng)中植入監(jiān)控代理,這往往要求應用重啟,從而增加了部署與維護的成本和復雜度。以往依賴于網(wǎng)絡設備如交換機的鏡像功能來捕捉流量數(shù)據(jù)的方式,在面對云原生的虛擬網(wǎng)絡架構(gòu)時顯得力不從心,因為它們未能有效辨識與追蹤復雜的云上流量模式。
5、云上業(yè)務問題定界存在盲區(qū)
6、傳統(tǒng)市場的解決方案指標依賴專家及運氣,專業(yè)指標解讀只有相應專家經(jīng)驗才能快速理解并運用。大量問題由專家經(jīng)驗添加指標和日志,導致監(jiān)控的盲區(qū)并未自行消失,仍然存在,無法形成標準化指標體系流程。云上業(yè)務系統(tǒng)對于指標的生成,在預料到可能有問題的地方記錄日志,發(fā)生過問題的地方增加指標或者事件記錄。同時,有大量的網(wǎng)絡指標、應用性能、硬件指標離散出現(xiàn),導致指標無法利用、無法進行問題排查的情況下,更加導致了無法串聯(lián)形成體系化的指標治理。
7、監(jiān)控工具的豎井式問題
8、各監(jiān)控系統(tǒng)模塊之間信息無法有效共享,導致整體監(jiān)控視圖不連貫,關(guān)鍵信息可能被遺漏,不同的工具可能提供不同的監(jiān)控視圖和報警信息,需要花費更多的時間和精力來分析和比對,延長了問題定界的時間。
技術(shù)實現(xiàn)思路
1、針對上述問題中存在的不足之處,本發(fā)明提供一種業(yè)務請求異常定界分析方法、系統(tǒng)、電子設備及存儲介質(zhì)。
2、為實現(xiàn)上述目的,本發(fā)明提供一種業(yè)務請求異常定界分析方法,包括:
3、通過ebpf探針監(jiān)聽目標業(yè)務系統(tǒng)中的內(nèi)核事件列表,并實時捕獲內(nèi)核事件,獲取內(nèi)核指標;
4、在每個所述內(nèi)核指標上添加進程pid和單次請求中的線程tid的標簽;
5、基于捕獲所述內(nèi)核事件,觸發(fā)對應進程系統(tǒng)調(diào)用函數(shù),并存儲對應耗時、請求事物及內(nèi)核事件;
6、判斷所述請求事物中的url信息是否存在于映射中,若存在則所述映射替換所述url;
7、將映射、所述進程pid和所述單次請求中的線程tid添加到過濾器映射中;
8、將相同所述標簽的內(nèi)核指標與所述請求事物關(guān)聯(lián),展示異常應用請求中的具體異常問題。
9、優(yōu)選的是,所述內(nèi)核指標包括內(nèi)核內(nèi)存、cpu限制、swap使用情況、建聯(lián)指標、網(wǎng)絡丟包、網(wǎng)路重傳、dns解析情況、磁盤讀寫、其他進程io分布、lock時間、futex時間指標數(shù)據(jù)。
10、優(yōu)選的是,通過ebpf探針監(jiān)聽目標業(yè)務系統(tǒng)中的內(nèi)核事件列表包括:
11、定義一內(nèi)核模塊的初始化函數(shù);
12、所述初始化函數(shù)注冊一個kprobe到指定的內(nèi)核函數(shù)__alloc_pages_nodemask上;
13、進行kprobe結(jié)構(gòu)體定義,最后調(diào)用register_kprobe函數(shù)來注冊kprobe;
14、在內(nèi)存分配所述函數(shù)調(diào)用時打印日志,記錄內(nèi)存分配嘗試的位置;在內(nèi)存分配函數(shù)返回時打印日志,記錄內(nèi)存分配的結(jié)果;最后用?for?循環(huán)遍歷搜索結(jié)果中的每一個searchhit?對象;
15、使用條件判斷和?map?查找來替換?url;然后通過將?url放入?filt?映射中。
16、優(yōu)選的是,所述ebpf?探針從請求io讀取開始記錄開始時間starttime到結(jié)束時間endtime內(nèi)的系統(tǒng)調(diào)用函數(shù);通過所述ebpf?探針獲取請求時發(fā)生的所有內(nèi)核事件函數(shù),在所有所述內(nèi)核指標中加上進程pid、單次請求中的線程tid的標簽;通過相同標簽,串連相同標簽的所述內(nèi)核指標與請求關(guān)聯(lián),展示異常應用請求中的具體異常問題。
17、優(yōu)選的是,所述ebpf?探針讀取系統(tǒng)調(diào)用函數(shù)并關(guān)聯(lián)tid、pid步驟包括:
18、獲取所述內(nèi)核指標,被觸發(fā)時捕獲當前進程的的系統(tǒng)調(diào)用函數(shù),保存對應耗時、請求事物及內(nèi)核事件;
19、判斷所述請求事物的url?信息,映射替換并填充過濾器映射,使用條件判斷和map?查找來替換?url;
20、保留url、tip及pid字段標簽,通過將?url、tid和pid放入?filt?映射中,為后續(xù)的過濾或處理操作提供必要的信息;
21、確認所述請求事物發(fā)生的時間段內(nèi),記錄開始時間starttime及結(jié)束時間endtime,通過已經(jīng)獲取的日志中的時間段,進行日志信息的關(guān)聯(lián)及頁面的展示。
22、本技術(shù)還提供一種業(yè)務請求異常定界分析系統(tǒng),包括:
23、探針模塊,用于通過ebpf探針監(jiān)聽目標業(yè)務系統(tǒng)中的內(nèi)核事件列表,并實時捕獲內(nèi)核事件,獲取內(nèi)核指標;
24、添加模塊,用于在每個所述內(nèi)核指標上添加進程pid和單次請求中的線程tid的標簽;
25、觸發(fā)模塊,用于基于捕獲所述內(nèi)核事件,觸發(fā)對應進程系統(tǒng)調(diào)用函數(shù),并存儲對應耗時、請求事物及內(nèi)核事件;
26、替換模塊,用于判斷所述請求事物中的url信息是否存在于映射中,若存在則所述映射替換所述url;
27、映射模塊,用于將映射、所述進程pid和所述單次請求中的線程tid添加到過濾器映射中;
28、關(guān)聯(lián)模塊,用于將相同所述標簽的內(nèi)核指標與所述請求事物關(guān)聯(lián),展示異常應用請求中的具體異常問題。
29、本發(fā)明還提供一種電子設備,包括至少一個處理單元以及至少一個存儲單元,其中,所述存儲單元存儲有計算機程序,當所述程序被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行上述的方法。
30、本發(fā)明還提供一種存儲介質(zhì),其存儲有可由電子設備執(zhí)行的計算機程序,當所述程序在所述電子設備上運行時,使得所述電子設備執(zhí)行上述的方法。
31、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:
32、本發(fā)明填補了傳統(tǒng)監(jiān)控手段在內(nèi)核指標方面的盲區(qū),還能夠?qū)崟r、準確地捕捉和分析業(yè)務請求在內(nèi)核層面的行為,從而實現(xiàn)對業(yè)務系統(tǒng)健康狀況的全面監(jiān)測與快速故障定位,顯著提升了云上業(yè)務的穩(wěn)定性和可靠性;通過非侵入式的監(jiān)控手段,企業(yè)能夠?qū)崿F(xiàn)對業(yè)務請求處理流程的無干擾監(jiān)測,確保了監(jiān)控過程本身不對業(yè)務性能產(chǎn)生負面影響,進而推動了業(yè)務管理的精細化,增強了對潛在故障的快速識別與響應能力,提升了整體服務質(zhì)量與用戶體驗。