APM調(diào)用鏈產(chǎn)品對比

【轉(zhuǎn)載請注明出處】:http://www.reibang.com/p/5184d7904c4b

隨著企業(yè)經(jīng)營規(guī)模的擴(kuò)大,以及對內(nèi)快速診斷效率和對外SLA(服務(wù)品質(zhì)協(xié)議臼寄,service-level agreement)的追求荤堪,對于業(yè)務(wù)系統(tǒng)的掌控度的要求越來越高,主要體現(xiàn)在:

  • 對于第三方依賴的監(jiān)控,實(shí)時(shí)/準(zhǔn)實(shí)時(shí)了解第三方的健康狀況/服務(wù)品質(zhì),降低第三方依賴對于自身系統(tǒng)的擾動(服務(wù)降級、故障轉(zhuǎn)移)
  • 對于容器的監(jiān)控堰塌,實(shí)時(shí)/準(zhǔn)實(shí)時(shí)的了解應(yīng)用部署環(huán)境(CPU、內(nèi)存分衫、進(jìn)程场刑、線程、網(wǎng)絡(luò)蚪战、帶寬)情況牵现,以便快速擴(kuò)容/縮容、流量控制邀桑、業(yè)務(wù)遷移
  • 業(yè)務(wù)方對于自己的調(diào)用情況瞎疼,方便作容量規(guī)劃,同時(shí)對于突發(fā)的請求也能進(jìn)行異常告警和應(yīng)急準(zhǔn)備
  • 自己業(yè)務(wù)的健康壁畸、性能監(jiān)控贼急,實(shí)時(shí)/準(zhǔn)實(shí)時(shí)的了解自身的業(yè)務(wù)運(yùn)行情況,排查業(yè)務(wù)瓶頸,快速診斷和定位異常竿裂,增加對自己業(yè)務(wù)的掌控力

同時(shí)玉吁,對于企業(yè)來說照弥,能夠更精確的了解資源的使用情況腻异,對于成本核算和控制也有非常大的裨益。

在這種情況下这揣,一般都會引入APM(Application Performance Management & Monitoring)系統(tǒng)悔常,通過各種探針采集數(shù)據(jù),收集關(guān)鍵指標(biāo)给赞,同時(shí)搭配數(shù)據(jù)呈現(xiàn)和監(jiān)控告警机打,能夠解決上述的大部分問題。

然而隨著RPC框架片迅、微服務(wù)残邀、云計(jì)算、大數(shù)據(jù)的發(fā)展柑蛇,同時(shí)業(yè)務(wù)的規(guī)模和深度相比過往也都增加了很多芥挣,一次業(yè)務(wù)可能橫跨多個(gè)模塊/服務(wù)/容器,依賴的中間件也越來越多耻台,其中任何一個(gè)節(jié)點(diǎn)出現(xiàn)異常空免,都可能導(dǎo)致業(yè)務(wù)出現(xiàn)波動或者異常,這就導(dǎo)致服務(wù)質(zhì)量監(jiān)控和異常診斷/定位變得異常復(fù)雜盆耽,于是催生了新的業(yè)務(wù)監(jiān)控模式:調(diào)用鏈跟蹤--能夠分布式的抓取多個(gè)節(jié)點(diǎn)的業(yè)務(wù)記錄蹋砚,并且通過統(tǒng)一的業(yè)務(wù)id(traceId,messageId摄杂,requestId等)將一次業(yè)務(wù)在各個(gè)節(jié)點(diǎn)的記錄串聯(lián)起來坝咐,方便排查業(yè)務(wù)的瓶頸或者異常點(diǎn)

產(chǎn)品對比

APM和調(diào)用鏈跟蹤均不是新誕生事務(wù),很多公司已經(jīng)有了大量的實(shí)踐析恢,不過開源的并且能夠開箱即用的產(chǎn)品并不多畅厢,這里主要選取了Pinpoint,Skywalking氮昧,CAT來進(jìn)行對比(當(dāng)然也有其他的例如Zipkin框杜,Jaeger等產(chǎn)品,不過總體來說不如前面選取的3個(gè)完成度高)袖肥,了解一下APM和調(diào)用鏈跟蹤在開源方面的發(fā)展?fàn)顟B(tài)咪辱。

Pinpoint

Pinpoint是一個(gè)比較早并且成熟度也非常高的APM+調(diào)用鏈監(jiān)控的項(xiàng)目,在全世界范圍內(nèi)均有用戶使用椎组,支持Java和PHP的探針油狂,數(shù)據(jù)容器為HBase,其界面參考:

image.png

Skywalking

Skywalking是一個(gè)新晉的項(xiàng)目,最近一兩年發(fā)展非常迅猛专筷,本身支持OpenTracing規(guī)范弱贼,優(yōu)秀的設(shè)計(jì)提供了良好的擴(kuò)展性,支持Java磷蛹、PHP吮旅、.Net、NodeJs探針味咳,數(shù)據(jù)容器為ElasticSearch庇勃,其界面參考:

image.png

CAT

CAT是由美團(tuán)開源的一個(gè)APM項(xiàng)目,也歷經(jīng)了多年的迭代升級槽驶,擁有大量的企業(yè)級用戶责嚷,對于監(jiān)控和報(bào)警整合比較緊密,支持Java掂铐、C/C++罕拂、.Net、Python全陨、Go爆班、NodeJs,不過CAT目前主要通過侵入性的方式接入烤镐,數(shù)據(jù)容器包括HDFS(存儲原始數(shù)據(jù))和mysql(二次統(tǒng)計(jì))蛋济,其界面參考:

image.png

橫向?qū)Ρ?/h3>

上面只是做了一個(gè)簡介,那這三個(gè)項(xiàng)目各自有什么特色或者優(yōu)勢/劣勢呢(三者的主要產(chǎn)品均針對Java炮叶,這里也主要針對Java的特性)

Pinpoint

優(yōu)勢:

  • 大企業(yè)/長時(shí)間驗(yàn)證碗旅,穩(wěn)定性和完成度高
  • 探針收集的數(shù)據(jù)粒度比較細(xì)
  • HBase的數(shù)據(jù)密度較大,支持PB級別下的數(shù)據(jù)查詢
  • 代碼設(shè)計(jì)考慮的擴(kuò)展性較弱镜悉,二次開發(fā)難度較大(探針為插件式祟辟,開發(fā)比較簡單)
  • 擁有完整的APM和調(diào)用鏈跟蹤功能

劣勢:

  • 代碼針對性強(qiáng),擴(kuò)展較難
  • 容器為HBase侣肄,查詢功能較弱(主要為時(shí)間維度)
  • 探針的額外消耗較多(探針采集粒度細(xì)旧困,大概10%~20%)
  • 項(xiàng)目趨于成熟,而擴(kuò)展難度較大稼锅,目前社區(qū)活躍度偏低吼具,基本只進(jìn)行探針的增加或者升級
  • 缺少自定義指標(biāo)的設(shè)計(jì)
Skywalking

優(yōu)勢:

  • 數(shù)據(jù)容器為ES,查詢支持的維度較多并且擴(kuò)展?jié)摿Υ?/li>
  • 項(xiàng)目設(shè)計(jì)采用微內(nèi)核+插件矩距,易讀性和擴(kuò)展性都比較強(qiáng)
  • 主要的研發(fā)人員為華人并且均比較活躍拗盒,能夠進(jìn)行更加直接的溝通
  • 擁有完整的APM和調(diào)用鏈跟蹤功能

劣勢:

  • 項(xiàng)目發(fā)展非常快锥债,穩(wěn)定性有待驗(yàn)證
  • ES數(shù)據(jù)密度較小陡蝇,在PB級別可能會有性能壓力
  • 缺少自定義指標(biāo)的設(shè)計(jì)
CAT

優(yōu)勢:

  • 大企業(yè)/長時(shí)間驗(yàn)證痊臭,穩(wěn)定性和完成度高
  • 采用手動數(shù)據(jù)埋點(diǎn)而不是探針,數(shù)據(jù)采集的靈活性更強(qiáng)
  • 支持自定義指標(biāo)
  • 代碼設(shè)計(jì)考慮的擴(kuò)展性較弱登夫,并且數(shù)據(jù)結(jié)構(gòu)復(fù)雜广匙,二次開發(fā)難度較大
  • 擁有完善的監(jiān)控告警機(jī)制

劣勢:

  • 代碼針對性強(qiáng),擴(kuò)展較難
  • 需要手動接入埋點(diǎn)恼策,代碼侵入性強(qiáng)
  • APM功能完善鸦致,但是不支持調(diào)用鏈跟蹤

基本組件

如果分別去看Pinpoint/Skywalking/CAT的整體設(shè)計(jì),我們會發(fā)現(xiàn)三者更像是一個(gè)規(guī)范的三種實(shí)現(xiàn)戏蔑,雖然各自有不同的機(jī)制和特性蹋凝,但是從模塊劃分和功能基本是一致的:


image.png

當(dāng)然也有一些微小的區(qū)別:

  • Pinpoint基本沒有aggregator鲁纠,同時(shí)query和alarm集成在了web中总棵,只有agent,collector和web
  • Skywalking則是把collector改含、aggregator情龄、alarm集成為OAP(Observability Analysis Platform),并且可以通過集群部署捍壤,不同的實(shí)例可以分別承擔(dān)collector或者aggregator+alarm的角色
  • CAT則和Skywalking類似骤视,把collector、aggregator鹃觉、alarm集成為cat-consumer专酗,而由于CAT有比較復(fù)雜的配置管理,所以query和配置一起集成為cat-home
  • 當(dāng)然最大的區(qū)別是Pinpoint和Skywalking均是通過javaagent做字節(jié)碼的擴(kuò)展盗扇,通過切面編程采集數(shù)據(jù)祷肯,類似于探針,而CAT的agent則更像是一個(gè)工具集疗隶,用于手動埋點(diǎn)

【轉(zhuǎn)載請注明出處】:http://www.reibang.com/p/5184d7904c4b

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佑笋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子斑鼻,更是在濱河造成了極大的恐慌蒋纬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坚弱,死亡現(xiàn)場離奇詭異蜀备,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荒叶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門碾阁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人停撞,你說我怎么就攤上這事瓷蛙〉课停” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵艰猬,是天一觀的道長横堡。 經(jīng)常有香客問我,道長冠桃,這世上最難降的妖魔是什么命贴? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮食听,結(jié)果婚禮上胸蛛,老公的妹妹穿的比我還像新娘。我一直安慰自己樱报,他們只是感情好葬项,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迹蛤,像睡著了一般民珍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盗飒,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天嚷量,我揣著相機(jī)與錄音,去河邊找鬼逆趣。 笑死蝶溶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宣渗。 我是一名探鬼主播抖所,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼落包!你這毒婦竟也來了部蛇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤咐蝇,失蹤者是張志新(化名)和其女友劉穎涯鲁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體有序,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抹腿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旭寿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片警绩。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖盅称,靈堂內(nèi)的尸體忽然破棺而出肩祥,到底是詐尸還是另有隱情后室,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布混狠,位于F島的核電站岸霹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏将饺。R本人自食惡果不足惜贡避,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望予弧。 院中可真熱鬧刮吧,春花似錦、人聲如沸掖蛤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坠七。三九已至水醋,卻和暖如春旗笔,著一層夾襖步出監(jiān)牢的瞬間彪置,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工蝇恶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拳魁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓撮弧,卻偏偏與公主長得像潘懊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子贿衍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348