摘要:今年的無論是常態(tài)全鏈路壓測或者是雙十一當(dāng)天,面臨的主要問題是如何保障自身系統(tǒng)在海量數(shù)據(jù)沖擊下的穩(wěn)定性,以及如何更快的展現(xiàn)各個(gè)系統(tǒng)的狀態(tài)及更好的幫助開發(fā)同學(xué)發(fā)現(xiàn)及定位問題。在整個(gè)雙十一備戰(zhàn)過程中,遇到并解決了很多疑難雜癥。
摘要: EagleEye作為阿里集團(tuán)老牌的鏈路跟蹤系統(tǒng),其自身業(yè)務(wù)雖不在交易鏈路上,但卻監(jiān)控著全集團(tuán)的鏈路狀態(tài),特別是在中間件的遠(yuǎn)程調(diào)用上,覆蓋了集團(tuán)絕大部分的場景,在問題排查和定位上發(fā)揮著巨大的作用,保障了各個(gè)系統(tǒng)的穩(wěn)定性,為整個(gè)技術(shù)團(tuán)隊(duì)打贏這場戰(zhàn)役保駕護(hù)航。
作者:王華鋒(水彧)
背景
雙十一一直是阿里巴巴集團(tuán)每年要打的一場大戰(zhàn)役。要打贏這場戰(zhàn)役,技術(shù)上,不僅僅是幾個(gè)應(yīng)用、幾個(gè)系統(tǒng)的事,也不是多少個(gè)開發(fā)+多少個(gè)測試就能完成的事,而是需要各大系統(tǒng)協(xié)同作戰(zhàn)、每個(gè)應(yīng)用各司其職、技術(shù)人員通力合作才能取得最終的勝利。
EagleEye作為阿里集團(tuán)老牌的鏈路跟蹤系統(tǒng),其自身業(yè)務(wù)雖不在交易鏈路上,但卻監(jiān)控著全集團(tuán)的鏈路狀態(tài),特別是在中間件的遠(yuǎn)程調(diào)用上,覆蓋了集團(tuán)絕大部分的場景,在問題排查和定位上發(fā)揮著巨大的作用,保障了各個(gè)系統(tǒng)的穩(wěn)定性,為整個(gè)技術(shù)團(tuán)隊(duì)打贏這場戰(zhàn)役保駕護(hù)航。
圖1 EagleEye系統(tǒng)整體情況
近兩年集團(tuán)業(yè)務(wù)和規(guī)模始終保持著高速的增長,縱深上,交易量屢攀新高,雙十一零點(diǎn)的交易峰值也再一次刷新了歷史;橫向上,集團(tuán)涉及的行業(yè)和領(lǐng)域也不斷的拓展,各行各業(yè)在不斷加入阿里(高德、優(yōu)酷、友盟及大麥等等),共同前進(jìn)。
面對數(shù)據(jù)規(guī)模持續(xù)增加,如何應(yīng)對在業(yè)務(wù)高速發(fā)展的背景下系統(tǒng)采集的數(shù)據(jù)量級(jí)的持續(xù)增長,如何在越來越大的數(shù)據(jù)規(guī)模面前保障EagleEye自身業(yè)務(wù)的穩(wěn)定,成為EagleEye今年雙十一面臨的巨大挑戰(zhàn)。
圖2 EagleEye支持的業(yè)務(wù)情況
全鏈路壓測一直是阿里巴巴集團(tuán)保障雙十一的大殺器之一,通過在線上環(huán)境全真模擬雙十一當(dāng)天的流量來檢驗(yàn)各個(gè)應(yīng)用系統(tǒng)的負(fù)載能力。EagleEye在全鏈路壓測中承擔(dān)了重要的責(zé)任,透傳壓測標(biāo)記實(shí)現(xiàn)流量的區(qū)分,壓測數(shù)據(jù)的收集與展現(xiàn)用以幫助業(yè)務(wù)方的開發(fā)同學(xué)發(fā)現(xiàn)及定位系統(tǒng)的問題。所以,保障全鏈路壓測也是EagleEye的重要使命之一。
今年的EagleEye
無論是常態(tài)、全鏈路壓測或者是雙十一當(dāng)天,EagleEye面臨的主要問題是如何保障自身系統(tǒng)在海量數(shù)據(jù)沖擊下的穩(wěn)定性,以及如何更快的展現(xiàn)各個(gè)系統(tǒng)的狀態(tài)及更好的幫助開發(fā)同學(xué)發(fā)現(xiàn)及定位問題。今年,EagleEye通過了一系列改造升級(jí)提高了系統(tǒng)的穩(wěn)定性,實(shí)現(xiàn)了更好更快的輔助業(yè)務(wù)方定位及排查問題。
圖3 系統(tǒng)架構(gòu)圖
計(jì)算能力下沉
早期的EagleEye在鏈路跟蹤以及數(shù)據(jù)統(tǒng)計(jì)都是基于明細(xì)日志完成,實(shí)時(shí)采集全量的明細(xì)日志并在流計(jì)算中做聚合,隨著業(yè)務(wù)量的增長,日志的數(shù)據(jù)量也在急劇上升,計(jì)算量也隨之線性增長,資源消耗較高。而且在全鏈路壓測或者大促期間,日志量會(huì)有明顯的峰值,極有可能造成計(jì)算集群系統(tǒng)過載或者數(shù)據(jù)延遲甚至有可能導(dǎo)致數(shù)據(jù)的丟失。
為解決這類問題,最初的做法是采樣,通過采樣降低收集的日志量,從而穩(wěn)定計(jì)算集群的負(fù)載及水位,保障EagleEye自身業(yè)務(wù)的穩(wěn)定性,盡量減少業(yè)務(wù)峰值對我們的影響。但是帶來的問題也是顯而易見的,統(tǒng)計(jì)數(shù)據(jù)在計(jì)算時(shí)需要考慮采樣率估算出真實(shí)的數(shù)據(jù),在采集數(shù)據(jù)量較小且采樣率較高的場景下導(dǎo)致聚合后的數(shù)據(jù)不準(zhǔn)確,無法展現(xiàn)業(yè)務(wù)真實(shí)的狀態(tài),從而也就失去了其價(jià)值。
為徹底解決業(yè)務(wù)峰值對EagleEye計(jì)算集群的沖擊,將部分實(shí)時(shí)計(jì)算邏輯下沉到業(yè)務(wù)方的機(jī)器中,使得業(yè)務(wù)量和所需采集的日志量解耦,保證計(jì)算集群的穩(wěn)定性。具體實(shí)現(xiàn)是在業(yè)務(wù)方的機(jī)器上先將數(shù)據(jù)按照指定維度做聚合(一般是以時(shí)間維度),計(jì)算集群采集該統(tǒng)計(jì)數(shù)據(jù)后再次聚合,極大的穩(wěn)定了計(jì)算集群的負(fù)載。
圖4 計(jì)算能力下沉
計(jì)算能力下沉,也可以理解成將計(jì)算分布式化,消耗了業(yè)務(wù)方極小的一部分資源,保證了EagleEye集群的穩(wěn)定性。而且,集群的計(jì)算量不再隨著業(yè)務(wù)量的增長而增長,只隨應(yīng)用規(guī)模(應(yīng)用數(shù)量、機(jī)器數(shù)量)和統(tǒng)計(jì)維度的增長而增長,不會(huì)再出現(xiàn)由于業(yè)務(wù)量的瞬間峰值導(dǎo)致計(jì)算機(jī)群的負(fù)載過高的問題,最終使得EagleEye在全鏈路壓測和大促期間都能保持穩(wěn)定水位,并且產(chǎn)出精準(zhǔn)的數(shù)據(jù)。
場景化鏈路
EagleEye一直專注于中間件層面的調(diào)用,而阿里巴巴的業(yè)務(wù)量龐大,系統(tǒng)也比較復(fù)雜,所以各部分的功能劃分比較清晰,中間件層面的一些數(shù)據(jù)比較難與業(yè)務(wù)數(shù)據(jù)相關(guān)聯(lián),對于鏈路跟蹤、問題定位及針對指定業(yè)務(wù)場景的容量規(guī)劃等都有一些難度。
今年,EagleEye推出場景化鏈路的功能,開放了添加業(yè)務(wù)場景標(biāo)的能力,類似于壓測流量打壓測標(biāo),對指定的業(yè)務(wù)打上對應(yīng)的業(yè)務(wù)場景標(biāo)簽,并關(guān)聯(lián)該標(biāo)簽下所有的中間件調(diào)用(包括服務(wù)、緩存、數(shù)據(jù)庫和消息等),一是可以幫助業(yè)務(wù)方開發(fā)同學(xué)更好地區(qū)分某個(gè)RPC流量中的業(yè)務(wù)語義,二是可以清晰的梳理出某個(gè)業(yè)務(wù)場景標(biāo)下對應(yīng)的RPC流量,對分析一些關(guān)鍵指標(biāo),如緩存命中率,數(shù)據(jù)庫RT等有較大的幫助。
圖5 流量場景標(biāo)
基于此數(shù)據(jù),也可以更好的復(fù)盤全鏈路壓測數(shù)據(jù)。在壓測之前(也可以在常態(tài)下)對關(guān)鍵業(yè)務(wù)打上指定的標(biāo)簽,壓測后通過各業(yè)務(wù)場景的流量得出對應(yīng)的性能基線,更好的定位核心鏈路中的問題及性能拼勁,提高壓測的效率和價(jià)值。
精細(xì)化監(jiān)控
EagleEye的鏈路數(shù)據(jù)對于問題的發(fā)現(xiàn)和定位有著至關(guān)重要的作用,更加豐富的數(shù)據(jù)形式和展現(xiàn)對提高發(fā)現(xiàn)的效率有明顯的提升。
在整個(gè)雙十一備戰(zhàn)過程中,遇到并解決了很多疑難雜癥。其中,單機(jī)問題占了很大的比例。在分布式系統(tǒng)中,單機(jī)問題是比較常見的一類問題, 由于此類問題往往與業(yè)務(wù)代碼不直接相關(guān),與容器或者機(jī)器有一定的關(guān)聯(lián)性,且出現(xiàn)的概率較小,有一定的隨機(jī)性,導(dǎo)致該問題往往比較難排查。實(shí)際業(yè)務(wù)的表現(xiàn)可能是RT的抖動(dòng),也可能是小概率的錯(cuò)誤等等。
EagleEye的調(diào)用鏈雖然可以很快定位此類問題,但是調(diào)用鏈?zhǔn)钦驹趩未握埱蟮囊暯巧希诙ㄎ坏侥硞€(gè)IP之后很可能還需要再分析更多的數(shù)據(jù)才能做決策,針對此類的問題,EagleEye提供了錯(cuò)誤TopN分布以及系統(tǒng)熱點(diǎn)圖等功能,幫助業(yè)務(wù)方開發(fā)同學(xué)快速定位問題。針對單機(jī)故障,往往對于整體的指標(biāo)影響不大,通過應(yīng)用級(jí)別的監(jiān)控?cái)?shù)據(jù)比較難定位,EagleEye在流計(jì)算中統(tǒng)計(jì)了應(yīng)用各個(gè)機(jī)器的錯(cuò)誤情況,匯總并排序出Top10的機(jī)器,一旦出現(xiàn)單機(jī)故障,可以很明顯的定位到具體的IP,并且根據(jù)該IP對應(yīng)的錯(cuò)誤數(shù)量可以很快做出決策,縮短了開發(fā)同學(xué)排查問題的時(shí)間。系統(tǒng)熱點(diǎn)圖在壓測和大促期間對系統(tǒng)健康度的表現(xiàn)非常清晰,一是可以清晰看到是否存在離群點(diǎn)的機(jī)器,二是可以驗(yàn)證流量的去向是否正確。
圖6 系統(tǒng)熱點(diǎn)圖
更豐富的生態(tài)
在阿里巴巴,EagleEye是一款問題排查的利器,一直服務(wù)于業(yè)務(wù)方的同學(xué)幫助其快速發(fā)現(xiàn)并定位問題,降低故障的持續(xù)時(shí)間,提升開發(fā)及運(yùn)維效率。其實(shí),EagleEye底層還蘊(yùn)含著一份海量的數(shù)據(jù),在近一年中,我們不斷地利用及挖掘這份數(shù)據(jù)的意義,希望發(fā)揮其更大的價(jià)值,同時(shí)也希望基于這些數(shù)據(jù)建立一套生態(tài)體系,幫助用戶更好發(fā)展業(yè)務(wù),期間也孕育出很多有價(jià)值的產(chǎn)品,為集團(tuán)的技術(shù)發(fā)展打下了基礎(chǔ)。
天秤項(xiàng)目:天秤基于EagleEye的場景數(shù)據(jù)及其中間件、系統(tǒng)指標(biāo)等監(jiān)控?cái)?shù)據(jù),結(jié)合其他多款監(jiān)控產(chǎn)品構(gòu)建一個(gè)系統(tǒng)穩(wěn)定性解決方案,意在解決問題快速發(fā)現(xiàn)和精準(zhǔn)定位、大促常態(tài)化、壓測常態(tài)化等問題。
尖兵計(jì)劃 – 更輕量化的全鏈路壓測:尖兵計(jì)劃基于EagleEye的中間件、系統(tǒng)指標(biāo)及壓測數(shù)據(jù),實(shí)現(xiàn)常態(tài)化全鏈路壓測和問題發(fā)現(xiàn),是保障雙十一及全鏈路壓測順利的大殺器之一,相比去年八次全鏈路壓測,今年環(huán)境加倍復(fù)雜,但是只需要三次全鏈路壓測就完成目標(biāo),為集團(tuán)節(jié)省上千個(gè)人力,大幅提升交付上線質(zhì)量和大促效率。
精準(zhǔn)回歸:依托EagleEye調(diào)用鏈采集與計(jì)算的能力,實(shí)現(xiàn)了測試用例精準(zhǔn)推薦的效果,并在部分應(yīng)用的精準(zhǔn)測試中節(jié)約了50%~70%的測試時(shí)間。精準(zhǔn)測試通過EagleEye采集,數(shù)據(jù)回流的方案的輸出,在大規(guī)模應(yīng)用上(千萬鏈路)做到了測試用例與應(yīng)用代碼鏈路的準(zhǔn)實(shí)時(shí)生成。
天圖項(xiàng)目:天圖依賴了部分EagleEye的鏈路數(shù)據(jù),為用戶提供面向復(fù)雜業(yè)務(wù)鏈路、高度分布式架構(gòu)下的Application Performance Management (APM)方案,以全面、實(shí)時(shí)、可視化、智能的方式讓你快速了解應(yīng)用和業(yè)務(wù)鏈路的全貌。
結(jié)語
今年的雙十一是一次完美的雙十一,可以說是技術(shù)團(tuán)隊(duì)的大獲全勝,EagleEye在這次大考中也交出了一份近乎完美的答卷,無論是在全鏈路壓測中還是雙十一當(dāng)天,系統(tǒng)的穩(wěn)定性和數(shù)據(jù)的實(shí)時(shí)性都達(dá)到了預(yù)期,為業(yè)務(wù)方的提供了強(qiáng)有力的支持,提高了問題排查的效率。
但是,未來的路還很長,智能化的發(fā)展腳步越來越快,業(yè)務(wù)方對EagleEye的數(shù)據(jù)質(zhì)量的要求也越來越高,今后EagleEye會(huì)專注于架構(gòu)的演進(jìn)和智能化的推進(jìn),進(jìn)一步提高問題定位的效率,更好的支撐起基于鏈路數(shù)據(jù)的一片生態(tài)。
點(diǎn)擊查看原文
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/8782.html
摘要:每秒實(shí)時(shí)處理超過萬項(xiàng)監(jiān)控指標(biāo),讓異常無所遁形。此外,對于復(fù)雜數(shù)據(jù)庫故障事后排查故障根源現(xiàn)場還原歷史事件追蹤也迫使我們建設(shè)一個(gè)覆蓋線上所有環(huán)境數(shù)據(jù)庫實(shí)例事件的監(jiān)控系統(tǒng),做到覆蓋阿里全球子公司所有機(jī)房。所有性能指標(biāo)做到秒級(jí)連續(xù)不間斷監(jiān)控。 摘要: 2017雙11再次創(chuàng)下了32.5萬筆/秒交易創(chuàng)建的紀(jì)錄,在這個(gè)數(shù)字后面,更是每秒多達(dá)幾千萬次的數(shù)據(jù)庫寫入,如何大規(guī)模進(jìn)行自動(dòng)化操作、保證數(shù)據(jù)庫的...
摘要:今天,阿里數(shù)據(jù)庫事業(yè)部研究員張瑞,將為你講述雙數(shù)據(jù)庫技術(shù)不為人知的故事。這十年,阿里巴巴數(shù)據(jù)庫團(tuán)隊(duì)一直有一個(gè)使命推動(dòng)中國數(shù)據(jù)庫技術(shù)變革。 第十個(gè)雙11即將來臨之際,阿里技術(shù)推出《十年牧碼記》系列,邀請參與歷年雙11備戰(zhàn)的核心技術(shù)大牛,一起回顧阿里技術(shù)的變遷。 今天,阿里數(shù)據(jù)庫事業(yè)部研究員張瑞,將為你講述雙11數(shù)據(jù)庫技術(shù)不為人知的故事。在零點(diǎn)交易數(shù)字一次次提升的背后,既是數(shù)據(jù)庫技術(shù)的一次...
閱讀 1869·2021-08-19 11:12
閱讀 1448·2021-07-25 21:37
閱讀 1005·2019-08-30 14:07
閱讀 1282·2019-08-30 13:12
閱讀 667·2019-08-30 11:00
閱讀 3547·2019-08-29 16:28
閱讀 1015·2019-08-29 15:33
閱讀 2990·2019-08-26 13:40