System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據處理,尤其涉及一種異常采集方法、裝置、電子設備及存儲介質。
技術介紹
1、各類網絡服務一般通過底層代碼實現,在網絡服務出現異常時,需要對網絡服務的底層代碼進行分析,以得到網絡服務的異常原因,從而針對該異常原因改進網絡服務的底層代碼。
2、網絡服務的底層代碼可以通過java語言實現,java語言的運行環境通常通過java虛擬機(jvm)實現,java虛擬機(jvm)是一個抽象的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。是可運行java代碼的假想計算機。只要根據jvm規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何java代碼能夠在該系統上運行。
3、相關技術中,在獲取異常以及錯誤時通常僅能獲得錯誤碼,該錯誤碼僅能標識大致的異常類型,但無法定位異常發生位置。
技術實現思路
1、有鑒于此,本專利技術實施例提供了一種異常采集方法、裝置、電子設備及存儲介質,以提到異常采集的完備性并減少數據處理量。
2、根據本專利技術的一方面,提供了一種異常采集方法,所述方法包括:
3、通過預設方式采集基礎數據,其中,所述基礎數據包括異常數據的堆棧追蹤數據以及虛擬機內部錯誤數據,所述堆棧追蹤數據用于標識所述異常數據的調用鏈路;
4、基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常數據以及錯誤數據進行采樣,得到待上傳數據;其中,所述出現次數通
5、將所述待上傳數據添加至上傳數組中,以對所述上傳數組中的待上傳數據進行批量上傳。
6、在一種可能的實施例中,所述方法還包括:
7、在所述上傳數組已滿的情況下,基于所述待上傳數據的業務標識,將所述待上傳數據封裝至所述業務標識對應的數據塊中,并將所述數據塊添加至消息隊列中;
8、在達到預設回調條件的情況下,調用預設回調函數對所述消息隊列中的數據塊進行處理,其中,所述預設回調函數的邏輯至少包括發送數據塊或存儲數據塊,所述預設回調條件為所述消息隊列中的數據塊的數量達到預設數量或所述消息隊列中的數據塊的等待時間超過預設時長;
9、在一種可能的實施例中,所述通過預設方式采集基礎數據,包括:
10、通過對fillinstacktrace()方法進行嵌碼,以獲取throwable捕捉到的異常數據,并通過throwable的getstacktrace()方法獲取所述異常數據對應堆棧追蹤數據;并,
11、在jvm虛擬機的各線程中增加未捕獲錯誤數據操作函數,所述未捕獲錯誤數據操作函數用于在所述線程運行異常時,捕捉錯誤事件,并通過throwable的getstacktrace()方法獲取所述錯誤事件的堆棧追蹤數據。
12、在一種可能的實施例中,所述方法還包括:
13、針對各基礎數據,利用預設哈希函數對所述基礎數據進行映射,得到所述基礎數據在所述布隆過濾器中的各個映射位置,并將所述映射位置的計數器計數結果+1;
14、基于所述布隆過濾器中所述基礎數據對應的計數器的計數結果的統計值作為所述基礎數據的出現次數,其中,所述統計值為最小值或平均值。
15、在一種可能的實施例中,所述基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常數據以及錯誤數據進行采樣,得到待上傳數據,包括:
16、針對所述基礎數據中的各類型異常數據以及錯誤數據,基于所述類型的出現次數所處的次數區間對應的采樣順序對所述類型的異常數據以及錯誤數據進行采樣,其中,所述采樣順序為基于所述次數區間以及所述采樣頻率生成的,用于標識需要采樣的待上傳數據在所述類型的異常數據以及錯誤數據中的順序。
17、根據本專利技術的另一方面,提供了一種異常采集裝置,所述裝置包括:
18、采集模塊,用于通過預設方式采集基礎數據,其中,所述基礎數據包括異常數據的堆棧追蹤數據以及虛擬機內部錯誤數據,所述堆棧追蹤數據用于標識所述異常數據的調用鏈路;
19、采樣模塊,用于基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常數據以及錯誤數據進行采樣,得到待上傳數據;其中,所述出現次數通過布隆過濾器獲取;
20、上傳模塊,用于將所述待上傳數據添加至上傳數組中,以對所述上傳數組中的待上傳數據進行批量上傳。
21、在一種可能的實施例中,所述裝置還包括:
22、等待模塊,用于在所述上傳數組已滿的情況下,基于所述待上傳數據的業務標識,將所述待上傳數據封裝至所述業務標識對應的數據塊中,并將所述數據塊添加至消息隊列中;在達到預設回調條件的情況下,調用預設回調函數對所述消息隊列中的數據塊進行處理,其中,所述預設回調函數的邏輯至少包括發送數據塊或存儲數據塊,所述預設回調條件為所述消息隊列中的數據塊的數量達到預設數量或所述消息隊列中的數據塊的等待時間超過預設時長;
23、在一種可能的實施例中,所述通過預設方式采集基礎數據,包括:
24、通過對fillinstacktrace()方法進行嵌碼,以獲取throwable捕捉到的異常數據,并通過throwable的getstacktrace()方法獲取所述異常數據對應堆棧追蹤數據;并,
25、在jvm虛擬機的各線程中增加未捕獲錯誤數據操作函數,所述未捕獲錯誤數據操作函數用于在所述線程運行異常時,捕捉錯誤事件,并通過throwable的getstacktrace()方法獲取所述錯誤事件的堆棧追蹤數據;
26、所述采樣模塊,用于針對各基礎數據,利用預設哈希函數對所述基礎數據進行映射,得到所述基礎數據在所述布隆過濾器中的各個映射位置,并將所述映射位置的計數器計數結果+1;
27、基于所述布隆過濾器中所述基礎數據對應的計數器的計數結果的統計值作為所述基礎數據的出現次數,其中,所述統計值為最小值或平均值;
28、所述基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常數據以及錯誤數據進行采樣,得到待上傳數據,包括:
29、針對所述基礎數據中的各類型異常數據以及錯誤數據,基于所述類型的出現次數所處的次數區間對應的采樣順序對所述類型的異常數據以及錯誤數據進行采樣,其中,所述采樣順序為基于所述次數區間以及所述采樣頻率生成的,用于標識需要采樣的待上傳數據在所述類型的異常數據以及錯誤數據中的順序。
30、根據本專利技術的另一方面,提供了一種電子設備,包括:
31、處理器;以及
32、存儲程序的存儲器,
33、其中,所述程序包括指令,所述指令在由所述處理器執行時使所述處理器執行上述任一所述的異常采集方法。
本文檔來自技高網...【技術保護點】
1.一種異常采集方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述通過預設方式采集基礎數據,包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常數據以及錯誤數據進行采樣,得到待上傳數據,包括:
6.一種異常采集裝置,其特征在于,所述裝置包括:
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括:
8.根據權利要求6所述的裝置,其特征在于,所述通過預設方式采集基礎數據,包括:
9.一種電子設備,包括:
10.一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,所述計算機指令用于使計算機執行根據權利要求1-5中任一項所述的方法。
【技術特征摘要】
1.一種異常采集方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述通過預設方式采集基礎數據,包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于所述基礎數據中各類型異常數據以及錯誤數據的出現次數,按照針對所述出現次數預設的采樣頻率對各所述類型對應的異常...
【專利技術屬性】
技術研發人員:杜中原,李磊,
申請(專利權)人:北京基調網絡股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。