■ 李耀宗
我之前曾重點(diǎn)介紹過如何將大數(shù)據(jù)用于APM來(lái)加速平均修復(fù)時(shí)間(MTTR)的問題。不同于數(shù)據(jù)采樣或觸發(fā)器方式,APM大數(shù)據(jù)方式可以確保隨時(shí)提供全部所需數(shù)據(jù),即使是在依賴微服務(wù),虛擬化和云服務(wù)的動(dòng)態(tài)應(yīng)用環(huán)境中也沒有問題。
目前,人們除了對(duì)APM大數(shù)據(jù)的實(shí)用性存在一些誤解之外,關(guān)于其是否可行,也存在誤區(qū)。因此,本文將探討有關(guān)大數(shù)據(jù)技術(shù)應(yīng)用于APM的三大誤區(qū)。
APM數(shù)據(jù)可分為兩個(gè)測(cè)定類別:
1.描述應(yīng)用工作負(fù)載的數(shù)據(jù),并通知應(yīng)用的行為或執(zhí)行情況。
2.描述應(yīng)用環(huán)境的數(shù)據(jù),以關(guān)鍵指標(biāo)的形式顯示基礎(chǔ)設(shè)施如何響應(yīng)應(yīng)用需求。
APM大數(shù)據(jù)的規(guī)模是捕獲原始數(shù)據(jù)和未過濾數(shù)據(jù)的副產(chǎn)品。收集、存儲(chǔ)、分析和訪問PB級(jí)的數(shù)據(jù)是一項(xiàng)浩大的工程,但它驚人的一面是這些PB級(jí)的數(shù)據(jù)代表了我們想要探索,了解和獲取信息所需的未經(jīng)過濾的“純凈的”事實(shí)。大數(shù)據(jù)的不同方面適用于不同的測(cè)定類別,但在以上兩種情況下,其終極目標(biāo)都是提供完整且正確的理解。
許多APM產(chǎn)品并非是為了支持大數(shù)據(jù)而設(shè)計(jì)的,而是為了迫使客戶在規(guī)模和數(shù)據(jù)質(zhì)量之間做出權(quán)衡。
將APM用于數(shù)據(jù)質(zhì)量和深度時(shí),其通常因無(wú)法擴(kuò)展而難以支持應(yīng)用生態(tài)系統(tǒng)
或者犧牲數(shù)據(jù)質(zhì)量和深度來(lái)擴(kuò)展APM以支持應(yīng)用生態(tài)系統(tǒng)
APM供應(yīng)商通常借助采樣和觸發(fā)器方式來(lái)進(jìn)行交易追蹤,通過匯聚數(shù)據(jù)以及犧牲調(diào)用堆棧的深度和細(xì)節(jié)來(lái)滿足其可擴(kuò)展性需求。否則他們只能監(jiān)測(cè)1-2個(gè)應(yīng)用,并部署多個(gè)分析控制臺(tái)。
這些不能令人滿意的方案無(wú)法提供解決性能問題所需的數(shù)據(jù)完整性,尤其是在資源根據(jù)需求而快速增減變化的短暫環(huán)境中,而共享的依賴關(guān)系意味著一個(gè)組件的故障可能會(huì)對(duì)多筆交易產(chǎn)生負(fù)面影響。
捕獲每個(gè)用戶動(dòng)作和后端活動(dòng)的詳細(xì)交易記錄確實(shí)會(huì)產(chǎn)生大量數(shù)據(jù),但APM與其它設(shè)計(jì)大數(shù)據(jù)解決方案的行業(yè)并沒有什么不同。相同的大數(shù)據(jù)技術(shù)和架構(gòu)也適合于APM。
例如,在許多分布式系統(tǒng)場(chǎng)景中,除了流媒體和復(fù)雜事件處理架構(gòu)外,利用非關(guān)系型高度優(yōu)化的數(shù)據(jù)存儲(chǔ)是普遍的共識(shí)。此外,跨APM組件的聯(lián)合數(shù)據(jù)處理和分析功能則有助于分配工作負(fù)載,如同您在Hadoop集群中看到的那樣。
在三層處理模式中,應(yīng)用內(nèi)收集器只完成極少量的工作,并將原始數(shù)據(jù)傳遞給本地處理器,在本地處理器進(jìn)行壓縮和一些基礎(chǔ)分析工作后再將數(shù)據(jù)發(fā)送到中央引擎。這一方法遠(yuǎn)比兩層方法更好,應(yīng)用內(nèi)收集器給應(yīng)用或后端系統(tǒng)帶來(lái)的壓力也要小得多。
持續(xù)捕獲所有交易細(xì)節(jié)可使應(yīng)用更具彈性且更易于管理,因?yàn)樗辉僖蕾囉糜谂渲煤途S護(hù)的復(fù)雜規(guī)則、檢測(cè)及觸發(fā)引擎。一定會(huì)有更多的數(shù)據(jù),但此時(shí)管理存儲(chǔ)的問題已經(jīng)解決,且存儲(chǔ)是比計(jì)算更便宜的資源。
任何與應(yīng)用相關(guān)的技術(shù),其成本都是一個(gè)很重要的問題。APM代理也不例外。通過連續(xù)捕獲交易來(lái)啟用的大數(shù)據(jù)APM需在如何觀察、記錄和持久的交易中使用不同的技術(shù),以確保應(yīng)用不會(huì)受到開銷影響。代理可以動(dòng)態(tài)地發(fā)現(xiàn)應(yīng)用棧,并在交易表述中記錄每個(gè)關(guān)鍵方法和應(yīng)用調(diào)用。然后利用三層分布式架構(gòu)對(duì)交易進(jìn)行實(shí)時(shí)壓縮和流化處理。N