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