本發(fā)明涉及數(shù)據(jù)處理,特別涉及分布式追蹤數(shù)據(jù)降采樣處理方法及系統(tǒng)。
背景技術:
1、分布式追蹤是一種通過抓取應用程序內(nèi)函數(shù)調(diào)用或服務調(diào)用的數(shù)據(jù),來幫助監(jiān)測和快速定位問題的技術手段。
2、分布式追蹤的質(zhì)量依賴于豐富維度的數(shù)據(jù)供給,其數(shù)據(jù)量與以下幾個因素呈正相關:采樣對象的規(guī)模,例如:微服務進程數(shù)量、服務器數(shù)量等;采樣深度,例如:函數(shù)埋點層級;采樣頻率,例如:對api接口(應用程序編程接口)進行追蹤,api接口的qps(queries?persecond?每秒查詢數(shù))升高,相應的,追蹤的數(shù)量也會線性增多。
3、更何況業(yè)務還是全球化部署,并存在跨區(qū)調(diào)用,要還原真實的鏈路狀態(tài),必須要將全球各個區(qū)域產(chǎn)生的追蹤數(shù)據(jù)匯集起來。
4、在這些龐大的鏈路數(shù)據(jù)中,正常的鏈路數(shù)據(jù)甚至會占用超過95%,然而,這部分正常的追蹤數(shù)據(jù)產(chǎn)生的價值幾乎與1%的正常數(shù)據(jù)無異,都只是用于繪制服務流量拓撲圖。因此需要采用降采樣的方式來降低數(shù)據(jù)規(guī)模。
5、目前具有以下降采樣方案:1、比例采樣:低采樣比例會造成error事務(即錯誤事務)及慢事務的丟失,高采樣比例無法滿足降低數(shù)據(jù)規(guī)模的要求。2、基于屬性選擇采樣:無法處理好error事務及慢事務的收集,因為它們無法被提前預知,也就沒有提前設置屬性,使其被強制采集的可能性。3、尾采樣:這種方式需要預先將數(shù)據(jù)匯集到一處,在收集到事務的完整鏈路數(shù)據(jù)后,根據(jù)事務的狀態(tài),來決定是否進行收集。這種方式可以很好處理error事務及慢事務,也能夠定制對正常事務的比例采樣。但它的前提是以龐大的數(shù)據(jù)傳輸及存儲為代價的,并沒有解決問題。
6、需要說明的是,在上述背景技術部分公開的信息僅用于加強對本發(fā)明的背景的理解,因此可以包括不構成本領域普通技術人員已知的現(xiàn)有技術的信息。
技術實現(xiàn)思路
1、本發(fā)明的目的是為了解決背景技術存在的技術問題,為此,提供了分布式追蹤數(shù)據(jù)降采樣處理方法及系統(tǒng)。
2、為了實現(xiàn)上述目的,本發(fā)明所采用的技術方案如下:
3、分布式追蹤數(shù)據(jù)降采樣處理方法,包括以下步驟:
4、步驟s1:不同區(qū)域內(nèi)網(wǎng)中的服務器上報追蹤數(shù)據(jù)到文件導出器;
5、步驟s2:文件導出器接收上報的追蹤數(shù)據(jù),并將追蹤數(shù)據(jù)持久化到磁盤;
6、步驟s3:追蹤代理收集器持續(xù)從磁盤讀取追蹤數(shù)據(jù),并異步對追蹤數(shù)據(jù)進行摘要信息提取和索引構建,同時持久化到磁盤;
7、步驟s4:追蹤代理收集器上報追蹤摘要信息到中心控制端的收集服務器,收集服務器接收上報的追蹤摘要信息并寫入數(shù)據(jù)存儲器中;
8、步驟s5:中心控制端的控制服務器從數(shù)據(jù)存儲器中讀取并處理追蹤摘要信息,并作出采樣收集決策,再回寫入數(shù)據(jù)存儲器中;
9、步驟s6:收集服務器從數(shù)據(jù)存儲器中讀取采樣收集決策數(shù)據(jù),并將采樣收集決策數(shù)據(jù)下發(fā)到追蹤代理收集器;
10、步驟s7:追蹤代理收集器接收中心控制端的采樣收集決策數(shù)據(jù),根據(jù)采樣收集決策數(shù)據(jù)從本地索引到對應的追蹤數(shù)據(jù)片段,并上報到追蹤數(shù)據(jù)后端管理平臺。
11、以下為本發(fā)明中方法進一步限定的技術方案,在步驟s3中,對追蹤數(shù)據(jù)進行摘要信息提取,包括:
12、跨越全文,對追蹤數(shù)據(jù)進行字段標準化;
13、基于http狀態(tài)碼和自定義錯誤標記,判定錯誤事務;
14、基于動態(tài)閾值,判定慢事務;
15、基于自適應比例采樣算法,進行哈希采樣;
16、生成追蹤摘要信息,追蹤摘要信息包括追蹤數(shù)據(jù)id及其對應的http狀態(tài)碼、錯誤標記命中、事務耗時或哈希值。
17、以下為本發(fā)明中方法進一步限定的技術方案,在步驟s3中,對追蹤數(shù)據(jù)進行索引構建,包括:從追蹤摘要信息解析獲取追蹤數(shù)據(jù)id,構建出追蹤數(shù)據(jù)id到追蹤數(shù)據(jù)所在文件及文件行的一對多映射關系;基于索引,在追蹤代理收集器收到采樣收集決策數(shù)據(jù)后,根據(jù)追蹤數(shù)據(jù)id找到對應的追蹤數(shù)據(jù)片段。
18、以下為本發(fā)明中方法進一步限定的技術方案,追蹤代理收集器將追蹤摘要信息以文本行形式順序?qū)懭氡镜卮疟P,將索引信息通過本地kv存儲引擎寫入本地磁盤,追蹤數(shù)據(jù)、追蹤摘要信息以及索引信息進行io獨占隔離。
19、以下為本發(fā)明中方法進一步限定的技術方案,相同追蹤數(shù)據(jù)id的摘要信息存儲在以追蹤數(shù)據(jù)id的值為名字的目錄中,控制服務器根據(jù)追蹤數(shù)據(jù)id讀取對應的全部摘要信息。
20、以下為本發(fā)明中方法進一步限定的技術方案,在步驟s5中,控制服務器從數(shù)據(jù)存儲器中讀取并處理追蹤摘要信息,并作出采樣收集決策,包括:
21、步驟s51:判斷當前時間的前兩分鐘的數(shù)據(jù)是否被決策過;
22、若是,則標記被決策過的數(shù)據(jù)并結(jié)束,若否,則從數(shù)據(jù)存儲器中讀取對應時間的所有追蹤摘要信息;
23、步驟s52:判斷從數(shù)據(jù)存儲器中讀取對應時間的所有追蹤摘要信息是否為空;
24、若是,則標記為空的數(shù)據(jù)并結(jié)束,若否,則使用追蹤數(shù)據(jù)id在數(shù)據(jù)存儲器中查詢摘要信息目錄數(shù)據(jù);
25、步驟s53:判斷使用追蹤數(shù)據(jù)id在數(shù)據(jù)存儲器中能否查詢到摘要信息目錄數(shù)據(jù);
26、若不能查詢,則標記對應數(shù)據(jù)并結(jié)束,若能查詢,則查詢摘要信息目錄數(shù)據(jù)中的http狀態(tài)碼和錯誤標記命中;
27、步驟s54:判斷http狀態(tài)碼是否為0以及是否具有錯誤標記命中;
28、若出現(xiàn)http狀態(tài)碼為0或錯誤標記命中的任一情況,則說明包含錯誤事務,判斷對應的追蹤數(shù)據(jù)id是否已經(jīng)創(chuàng)建過采樣任務,若有,則標記對應數(shù)據(jù)并結(jié)束,若沒有,則在數(shù)據(jù)存儲器中對追蹤數(shù)據(jù)id創(chuàng)建采樣任務;
29、若沒有出現(xiàn)http狀態(tài)碼為0或錯誤標記命中的任一情況,則查詢摘要信息目錄數(shù)據(jù)中的事務耗時;
30、步驟s55:判斷事務耗時是否超過動態(tài)閾值;
31、若超過,則說明包含慢事務,判斷對應的追蹤數(shù)據(jù)id是否已經(jīng)創(chuàng)建過采樣任務,若有,則標記對應數(shù)據(jù)并結(jié)束,若沒有,則在數(shù)據(jù)存儲器中對追蹤數(shù)據(jù)id創(chuàng)建采樣任務;
32、若不超過,則說明追蹤數(shù)據(jù)狀態(tài)正常,查詢摘要信息目錄數(shù)據(jù)中的哈希值;
33、步驟s56:判斷哈希值是否命中;
34、若命中,則判斷對應的追蹤數(shù)據(jù)id是否已經(jīng)創(chuàng)建過采樣任務,若有,則標記對應數(shù)據(jù)并結(jié)束,若沒有,則在數(shù)據(jù)存儲器中對追蹤數(shù)據(jù)id創(chuàng)建采樣任務;
35、若不命中,則標記對應數(shù)據(jù)并結(jié)束。
36、以下為本發(fā)明中方法進一步限定的技術方案,在數(shù)據(jù)存儲器中,設置數(shù)據(jù)生存時間為5分鐘,控制服務器按每一分鐘的時間掃描發(fā)起決策流程。
37、分布式追蹤數(shù)據(jù)降采樣處理系統(tǒng),用于實現(xiàn)上述的分布式追蹤數(shù)據(jù)降采樣處理方法,包括數(shù)據(jù)采集端、中心控制端和追蹤數(shù)據(jù)后端管理平臺;
38、數(shù)據(jù)采集端,部署在每個區(qū)域內(nèi)網(wǎng)中,用于采集追蹤數(shù)據(jù)及其摘要信息、索引,并將追蹤摘要信息發(fā)送至中心控制端,接收采樣收集決策數(shù)據(jù)并基于采樣收集決策數(shù)據(jù)及索引摘取對應的追蹤數(shù)據(jù)片段發(fā)送至追蹤數(shù)據(jù)后端管理平臺;
39、中心控制端,基于追蹤摘要信息作出采樣收集決策,并將采樣收集決策發(fā)送至數(shù)據(jù)采集端;
40、追蹤數(shù)據(jù)后端管理平臺,用于追蹤數(shù)據(jù)存儲與展示。
41、以下為本發(fā)明中系統(tǒng)進一步限定的技術方案,數(shù)據(jù)采集端包括文件導出器和追蹤代理收集器;
42、文件導出器,負責接收上報的追蹤數(shù)據(jù),將其持久化到磁盤;
43、追蹤代理收集器,負責對追蹤數(shù)據(jù)進行摘要信息提取和索引構建,同時持久化到磁盤,再將追蹤摘要信息發(fā)送到中心控制端,并接收中心控制端的采樣收集決策,從本地索引到對應的追蹤數(shù)據(jù)片段并上報到追蹤數(shù)據(jù)后端管理平臺。
44、以下為本發(fā)明中系統(tǒng)進一步限定的技術方案,中心控制端包括收集服務器、數(shù)據(jù)存儲器和控制服務器;
45、收集服務器,負責與追蹤代理收集器建立雙向通信,接收上報的追蹤摘要信息并寫入數(shù)據(jù)存儲器中,下發(fā)采樣收集決策數(shù)據(jù)到追蹤代理收集器;
46、控制服務器,負責從數(shù)據(jù)存儲器中讀取追蹤摘要信息,并作出采樣收集決策,再回寫入數(shù)據(jù)存儲器中。
47、相對于現(xiàn)有技術,本發(fā)明具有如下技術效果:
48、本發(fā)明的中心控制端可以對不同區(qū)域內(nèi)網(wǎng)的追蹤數(shù)據(jù)采集錯誤事務、采集耗時高于閾值的慢事務以及按一定比例采集正常事務,既能保證追蹤數(shù)據(jù)降采樣采集的全面性、可靠性,也能大大地減小了數(shù)據(jù)采集規(guī)模。
49、下面結(jié)合附圖與實施例,對本發(fā)明進一步說明。