APM 2個例項 5個維度解讀APM技術

2021-09-07 22:40:51 字數 3213 閱讀 9188

為了加深ego會員之間的相互了解,同時也為大家提供更多線上相互學習交流的機會,ego正式啟動會員群線上分享活動。本文是根據陳靖華分享主題「apm的價值」的內容整理而成。

第二期分享嘉賓:陳靖華,ego會員、聽雲cto、北京基調網路股份****聯合創始人之一。

apm的歷史

應用效能的監控和管理作為乙個運維的監控和管理手段實際上已經存在了很長的時間,但是apm被作為乙個細分領域的it解決方案行業被單獨提出來還是在近幾年的事情,大概在2023年左右吧。

這個從google趨勢上可以很明顯看出來。而著名的it研究和分析公司gartner也是在2023年開始每年發布apm行業的魔力象限報告的。

apm從其發展階段上可以分為兩個階段,第一代的apm(我們稱作apm 1.0)是在上世紀末期由wily, quest software, mercury等公司提供的一系列系統和應用的效能採集工具,可以用來監控和分析當時典型的三層架構的應用的效能,apm 1.0相對比較笨重,基本以本地軟體加硬體的形式來提供,需要使用者投入大量的精力和成本來進行實施和維護。

第二代apm,也就是所謂的apm 2.0大概就是在2023年左右興起的,這一代的apm產品面向的是大量採用分布式soa架構、訊息匯流排和彈性虛擬化、雲計算框架的應用,因此apm 2.0引入了應用拓撲邏輯的自動發現來更好地監測分布式的應用。

同時為了適應敏捷開發和持續交付帶來的應用**的頻繁更改,apm 2.0引入了自動插樁技術來實現監控**的部署,使用者不需要修改任何**或者僅需要修改極少的**即可快速靈活地部署apm探針實現監控,極大地節省了部署和維護apm的成本。

相比apm 1.0另外乙個比較重大的變化就是apm 2.0中終端使用者的使用者體驗成為了關鍵的監測專案,這是由於在網際網路和移動網際網路的應用交付場景下,越來越多的業務表現都依賴於應用本身的服務質量和最終的使用者體驗。

apm服務的saas化也是apm 2.0的乙個重大變化,原有的apm 1.0產品基本上都是私有化部署的本地軟體形式提供的,apm 2.0的服務saas化讓使用者可以以更便利、更低成本的方式來快速部署和使用以前**高昂,部署和維護困難的apm產品。

apm的作用

apm能幫我們做什麼,或者說在我們已有的運維監控體系中,apm能帶來哪些不同的價值呢?我們可以從gartner apm魔力象限裡對apm服務5個維度的定義來看看apm到底能做什麼,這5個維度的定義從2023年到現在基本上沒有太大的改變。

第乙個維度終端使用者體驗監測(euem)

這要求從端到端(客戶端到伺服器端)來採集終端使用者訪問應用時的效能體驗,包括端到端的網路延時,應用響應時間,響應的成功率和質量等等。終端使用者的體驗監測除了從真實使用者的訪問(rum,real user monitoring)來進行之外,還可以通過主動式的模擬終端使用者監測(synthetic monitoring)來進行應用可用性的評估。

終端使用者體驗監測始終是apm最重要的維度沒有之一,這也是apm與傳統運維監控的最主要差別。

傳統運維監控一般都是自下而上的監控,關注點在系統和服務層面,通過對基礎架構、系統、服務、應用的監控來保證服務的高可用和應用的體驗效果。而apm是自上而下的監控,關注點在終端使用者的體驗層面,通過對使用者體驗、網路、應用以及服務的監控來保證應用的高可用和體驗效果。

舉個例子

從傳統運維的後端監控上除了流量和訪問量的異常之外,往往很難感知到某些區域或者某個運營商的終端使用者已經訪問不了我們的**和應用了,即使從流量異常感知到了使用者訪問量的減少也很難定位問題。而從apm的euem上,我們可以非常及時準確地發現並定位終端使用者無法訪問的原因。由於euem,我們經常比我們的idc服務商和雲服務商更早發現他們的各種網路故障,往往我們給他們打**、發訊息投訴的時候他們自己還完全一無所知。 

第二個維度應用拓撲邏輯發現和視覺化

它指的是能自動識別應用在執行的過程中涉及的軟硬體架構和元件,並且可以描繪出應用交付鏈中相互通訊的各種元件的訪問路徑,也就是我們通常說的呼叫鏈。

這乙個維度也是非常重要的,通過該維度的實現,我們可以將應用的呼叫鏈通過拓撲圖,呼叫圖等圖表視覺化,直觀地展示應用的拓撲邏輯。這個維度最直觀的的乙個實現就是提供全鏈路的應用拓撲圖。

第三個維度使用者定義的事務剖析

第四個維度應用元件深度鑽取

這要求對第二個維度裡發現的服務和元件的資源消耗和事件提供足夠細粒度的監控。例如對應用訪問的資料庫服務,mq服務等提供深度的監控,當發現有資料庫服務查詢效能問題的時候,可以提供包括完整的sql語句,執行計畫,資料庫狀態等在內的詳細監控資料。

第五個維度it運營分析(itoa)

它其實就是運維資料分析,要求使用以下技術的組合來進行運維資料分析:複雜事件處理,統計模式發現與識別,非結構化資料索引、查詢和推斷,拓撲邏輯分析,多維資料庫檢索和分析。這裡的資料分析技術都是為了對apm採集到的大量的各維度效能資料進行實時的運算和處理,從而對應用的運維和優化起到輔助決策和驅動。例如通過實時的智慧型基線和異常監測來驅動警報系統。

實際案例分析

分享幾個我們處理過的案例:

案 例 1

最初我們通過真實使用者的監控(rum)資料發現無法訪問的錯誤大部分都是「無法建連:連線被重置」的錯誤,然後通過主動式的對比監測發現同樣的上海聯通3g手機,訪問其他網域名稱沒有任何問題,而一旦訪問這個客戶的網域名稱就出現上面說的那個錯誤,非常像是對特定網域名稱的劫持。但是和運營商溝通之後他們否認有劫持。

定位和解決客戶端的問題,特別是運營商和網路方面的問題通常是比較費時費力的,有了終端使用者的體驗資料之後往往可以快速幫助我們縮小問題的範圍,實現更快地定位。而對應服務端的應用來說,問題的解決相對比較可控,而我們需要的就是快速發現和定位**和服務上的效能問題,以便更快地解決,減少故障恢復時間和對業務的影響。

案 例 2

最後他們的技術老大臨時決定要裝上apm探針試試,9點鐘開始找了幾個應用例項部署了應用探針,跑了十幾分鐘資料後就基本上定位了問題:

乙個是應用**的問題導致redis快取層失效,所有的訪問都基本直接訪問資料庫,導致資料壓力瞬間變大,資料庫的單次連線時間飆公升到了15秒多;另外乙個是呼叫他們公司另外乙個系統的介面問題,當時的介面呼叫也到了每次請求7,8秒的耗時。

定位問題後,很快找研發修改**,大概在10點的時候把問題解決掉,系統的響應趨於平穩。整個過程,從安裝探針到定位問題大概用了十多分鐘,到最終把問題解決掉一共不到乙個小時的時間。

現在很多電商客戶在上新的產品或各種x18,雙xx活動前都會使用apm工具進行壓測和效能分析,提早發現可能存在的效能問題。活動的時候也會實時關注各應用的效能資料,來進行及時的應用擴充套件和故障恢復。

上面列舉了一些apm的典型應用場景,來幫我們理解apm可以幫助我們幹什麼,總結下來就是:apm可以幫助我們從終端使用者角度和業務角度了解我們的應用的效能和業務表現,為優化使用者體驗和提公升業務表現提供依據和驅動力。

5個笑話解讀男女本性

1 關於本能 一家專營女性婚姻服務的店在市中心全新開張,女人們可以直接進去挑選 個心儀的配 偶。在店門口,立了一面告示牌 個人只能進去逛 次 店裡共有六層樓,隨著高度的上公升,男人的質量也越高,不過請注意,顧客能在任何一層樓選 個丈夫或 者選擇上樓,但不能回到以前逛過的樓層 個女人來這家店尋找 個老...

5個小例項總結

首先是 ado connection物件代表開啟的,與資料來源的連線,在訪問資料來源之前,必須先建立連線,ado connection物件的屬性和方法,分別如下,connectionstring 屬性,指定連線資料來源的基本資訊,open方法,開啟資料來源連線a close 方法,關閉資料來源連線 ...

基礎python5個例項運用

p int input 請輸入你的本金 r int input 請輸入利率 n int input 請輸入存的年份 amount p p 1 r nprint 本金利率和是 format amount import math r int input 請輸入球的半徑 area 4 math.pi r ...