本發(fā)明涉及計(jì)算機(jī),尤其涉及一種全鏈路業(yè)務(wù)請求的聚合分析方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、在現(xiàn)代分布式系統(tǒng)和微服務(wù)架構(gòu)中,全鏈路業(yè)務(wù)性能跟蹤是確保系統(tǒng)穩(wěn)定性和性能優(yōu)化的關(guān)鍵手段之一。通過對業(yè)務(wù)請求的跟蹤和分析,可以及時(shí)發(fā)現(xiàn)性能瓶頸、優(yōu)化系統(tǒng)架構(gòu)、提升用戶體驗(yàn)。然而,隨著業(yè)務(wù)規(guī)模的擴(kuò)大和用戶量的增長,業(yè)務(wù)請求的數(shù)量和復(fù)雜性也急劇增加,如何高效地對這些請求進(jìn)行分類和聚合分析成為了一個重要的技術(shù)挑戰(zhàn)。業(yè)務(wù)請求的url(統(tǒng)一資源定位符)是進(jìn)行分類聚合分析的一個重要依據(jù)。url的通用格式為:protocol://hostname[:port]/path/[;parameters][?query]#fragment。在實(shí)際業(yè)務(wù)場景中,protocol和hostname通常相對固定,可以通過專門的統(tǒng)計(jì)手段進(jìn)行處理。而parameters和query部分由于高度可變,通常需要借助其他分析手段進(jìn)行處理。因此,業(yè)務(wù)請求的path(路徑)部分成為了快速分類的主要依據(jù)。
2、業(yè)務(wù)請求的path通常由多個以反斜杠(/)分隔的分段組成,每個分段要么是有具體含義的單詞,要么是用于標(biāo)識微觀資源的id。例如,/user/0abc7dfe885f6732/login和/user/0abc7dfe885f6732/place_order這兩個path中,0abc7dfe885f6732是用戶id,而login和place_order則是相對固定的業(yè)務(wù)操作。這種路徑格式的特點(diǎn)在于,每個路徑都與單個用戶密切相關(guān),導(dǎo)致在海量用戶和海量請求的監(jiān)控環(huán)境中,路徑的數(shù)量會急劇增加。
3、在相關(guān)技術(shù)中,包括直接基于路徑分類和入庫后對路徑進(jìn)行分析合并處理兩種方法。直接基于路徑分類的方法簡單直接,但它無法有效地區(qū)分業(yè)務(wù)邏輯相同的請求,并且會導(dǎo)致不可控的類別基數(shù)增長。入庫后路徑分析與合并的方法能夠在一定程度上解決分類準(zhǔn)確性和類別基數(shù)的問題,然而這種方法要求對已存儲的數(shù)據(jù)進(jìn)行額外的處理,對于不擅長更新操作的數(shù)據(jù)庫來說,這既增加了復(fù)雜性也影響了處理效率。此外,在某些應(yīng)用場景下,不允許修改已分類數(shù)據(jù)的規(guī)定進(jìn)一步限制了該方案的應(yīng)用范圍。
4、綜上所述,相關(guān)技術(shù)在業(yè)務(wù)請求的分類聚合分析中存在一定的局限性,亟需一種既能保證分類準(zhǔn)確性,又能有效控制類別基數(shù)的高效解決方案。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提出了一種全鏈路業(yè)務(wù)請求的聚合分析方法、系統(tǒng)、設(shè)備及介質(zhì),能夠使業(yè)務(wù)請求的分類結(jié)果更符合業(yè)務(wù)邏輯和用戶關(guān)注點(diǎn),同時(shí)避免因動態(tài)變化分段的高基數(shù)導(dǎo)致的分類膨脹,既提高了分類的準(zhǔn)確性,又顯著優(yōu)化了處理效率。
2、基于上述目的,本發(fā)明實(shí)施例的一方面提供了一種全鏈路業(yè)務(wù)請求的聚合分析方法,具體包括如下步驟:
3、獲取目標(biāo)路徑對應(yīng)的所有目標(biāo)路徑分段;
4、查詢每個所述目標(biāo)路徑分段是否存在預(yù)設(shè)分段頻次表中;
5、若所述目標(biāo)路徑分段存在預(yù)設(shè)分段頻次表中,獲取所述目標(biāo)路徑分段在所述預(yù)設(shè)分段頻次表中的序號,并判斷所述序號是否超過預(yù)設(shè)數(shù)值;
6、若所述目標(biāo)路徑分段不存在預(yù)設(shè)分段頻次表中或者所述序號超過預(yù)設(shè)數(shù)值,將所述目標(biāo)路徑分段更新為第一預(yù)設(shè)符號;
7、基于處理后的所有所述目標(biāo)路徑分段的內(nèi)容,生成標(biāo)準(zhǔn)路徑,并基于所述標(biāo)準(zhǔn)路徑更新業(yè)務(wù)數(shù)據(jù)。
8、在一些實(shí)施方式中,所述基于所述標(biāo)準(zhǔn)路徑更新業(yè)務(wù)數(shù)據(jù)的步驟,包括:
9、基于預(yù)設(shè)哈希算法,將所述標(biāo)準(zhǔn)路徑轉(zhuǎn)換得到哈希值;
10、基于所述哈希值,將所述目標(biāo)路徑對應(yīng)的業(yè)務(wù)數(shù)據(jù)更新至預(yù)設(shè)數(shù)據(jù)庫表。
11、在一些實(shí)施方式中,所述預(yù)設(shè)分段頻次表的構(gòu)建步驟,包括:
12、構(gòu)建鍵值表;
13、基于預(yù)設(shè)采樣時(shí)期,采集若干業(yè)務(wù)請求,獲取各所述業(yè)務(wù)請求對應(yīng)的請求路徑;
14、基于第二預(yù)設(shè)符號,獲取各所述請求路徑對應(yīng)的所有第一路徑分段;
15、將每個所述第一路徑分段作為一個鍵字段,判斷所述鍵值表中是否存在各所述鍵字段;
16、若存在,將所述鍵字段對應(yīng)的值字段加一;
17、若不存在,將所述鍵字段存入所述鍵值表,并將所述鍵字段對應(yīng)的值字段設(shè)置為一;
18、基于所述鍵值表中的所有鍵字段和所有值字段,確定所述預(yù)設(shè)分段頻次表。
19、在一些實(shí)施方式中,所述預(yù)設(shè)分段頻次表的構(gòu)建步驟還包括:
20、根據(jù)所有所述值字段從大到小的順序,對所述預(yù)設(shè)分段頻次表中所有所述鍵字段進(jìn)行排序;
21、按照排序?yàn)槊總€所述鍵字段分配一個對應(yīng)的序號。
22、在一些實(shí)施方式中,所述的全鏈路業(yè)務(wù)請求的聚合分析方法還包括:
23、若所述目標(biāo)路徑分段存在預(yù)設(shè)分段頻次表中且序號不超過預(yù)設(shè)數(shù)值,將所述目標(biāo)路徑分段保留。
24、在一些實(shí)施方式中,所述獲取目標(biāo)路徑對應(yīng)的所有路徑分段的步驟,包括:
25、基于所述第二預(yù)設(shè)符號,將所述目標(biāo)路徑劃分得到所有所述路徑分段。
26、在一些實(shí)施方式中,所述基于所有所述分段的內(nèi)容,生成標(biāo)準(zhǔn)路徑的步驟,包括:
27、基于所述第二預(yù)設(shè)符號,將處理后的所有所述目標(biāo)路徑分段連接,生成所述標(biāo)準(zhǔn)路徑。
28、本發(fā)明實(shí)施例的另一方面,還提供了一種全鏈路業(yè)務(wù)請求的聚合分析系統(tǒng),包括:
29、分段單元,配置用于獲取目標(biāo)路徑對應(yīng)的所有目標(biāo)路徑分段;
30、查詢單元,配置用于查詢每個所述目標(biāo)路徑分段是否存在預(yù)設(shè)分段頻次表中;
31、判斷單元,配置用于若所述目標(biāo)路徑分段存在預(yù)設(shè)分段頻次表中,獲取所述目標(biāo)路徑分段在所述預(yù)設(shè)分段頻次表中的序號,并判斷所述序號是否超過預(yù)設(shè)數(shù)值;
32、第一處理單元,配置用于若所述目標(biāo)路徑分段不存在預(yù)設(shè)分段頻次表中或者所述序號超過預(yù)設(shè)數(shù)值,將所述目標(biāo)路徑分段更新為第一預(yù)設(shè)符號;
33、更新單元,配置用于基于處理后的所有所述目標(biāo)路徑分段的內(nèi)容,生成標(biāo)準(zhǔn)路徑,并基于所述標(biāo)準(zhǔn)路徑更新業(yè)務(wù)數(shù)據(jù)。
34、本發(fā)明實(shí)施例的又一方面,還提供了一種計(jì)算機(jī)設(shè)備,包括:至少一個處理器;以及存儲器,所述存儲器存儲有可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序由所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如上方法的步驟。
35、本發(fā)明實(shí)施例的再一方面,還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),計(jì)算機(jī)可讀存儲介質(zhì)存儲有被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上方法步驟的計(jì)算機(jī)程序。
36、本發(fā)明至少具有以下有益技術(shù)效果:本發(fā)明的全鏈路業(yè)務(wù)請求的聚合分析方法,通過統(tǒng)計(jì)分析業(yè)務(wù)請求路徑中各分段的出現(xiàn)頻率以在數(shù)據(jù)采集入庫端預(yù)先建立分段頻次表,利用分段頻次表自動區(qū)分固定分段和動態(tài)變化分段,使分類結(jié)果更符合業(yè)務(wù)邏輯和用戶關(guān)注點(diǎn),同時(shí)避免因動態(tài)變化分段的高基數(shù)導(dǎo)致的分類膨脹,既提高了分類的準(zhǔn)確性,又顯著優(yōu)化了處理效率。在業(yè)務(wù)數(shù)據(jù)入庫階段,通過對動態(tài)變化分段的通配替換,有效減少分類類別數(shù)量,從而降低存儲和計(jì)算資源消耗,提高查詢和分析的效率。此外,本方案在數(shù)據(jù)入庫時(shí)即可完成分類,無需對已入庫數(shù)據(jù)進(jìn)行二次處理,避免了額外的計(jì)算開銷,在海量用戶和高并發(fā)業(yè)務(wù)場景下,由于固定分段和動態(tài)變化分段的頻率差異極大,本方案能夠快速收斂到準(zhǔn)確的分類規(guī)則,使得分類精度和處理性能更加突出,確保系統(tǒng)在業(yè)務(wù)監(jiān)控、性能分析及異常檢測等方面具備更高的實(shí)時(shí)性和可靠性。