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