阿里雲效能監控 ARMS 全真3D拓撲揭祕
摘要: 微服務架構下,各類服務之間存在著錯綜複雜的依賴關係。一旦業務出現問題,追查問題源頭就好比大海撈針,沒有頭緒。但業務不等人,此時,在最短的時間內定位問題根源是開發和運維人員對微服務監控產品的核心訴求。 傳統的監控產品提供了表格(table)、表單(form)和儀表盤(dashboard)三種展現形式,因其侷限性,並無法完整和直觀的提供監控詳情,以快速定位問題。
微服務架構下,各類服務之間存在著錯綜複雜的依賴關係。一旦業務出現問題,追查問題源頭就好比大海撈針,沒有頭緒。但業務不等人,此時,在最短的時間內定位問題根源是開發和運維人員對微服務監控產品的核心訴求。
傳統的監控產品提供了表格(table)、表單(form)和儀表盤(dashboard)三種展現形式,因其侷限性,並無法完整和直觀的提供監控詳情,以快速定位問題。阿里雲效能監控 ARMS 新推出的全真3D拓撲功能給這個問題帶來了完美的解決方案。ARMS 3D拓撲功能,創新地採用三維立體的方式展示系統中真實的架構層級和關係,利用ThreeJS的前端框架建立一個立體的監控空間,讓使用者一目瞭然地看到系統的結構與狀態。
傳統監控方式的不足
在傳統的監控產品中,我們最常見的介面就是表格、表單和儀表盤這三種,但這三種介面皆有其侷限性。
表格:通常用於展示大量資料,資訊密集,頻繁翻頁,大部分內容為數值和文字,不夠直觀。
表單:用於展示某個例項的詳細內容,涉及大量文字和圖表的閱讀。缺點是一次只能聚焦一個例項,如有下層資訊,需要跳轉到更深層級。
儀表盤:以圖表形式對資訊的聚合展示,更直觀和生動。但一個版面展示資訊有限,一般下層資訊閱讀量就很少。
因為這種介面形式上的限制,我們常常不得不面對讓人頭昏眼花的大量表格,為了定位一個問題反覆跳轉,一不留神就迷失在茫茫資料中,想要理解資料之間的關係只能靠經驗和記憶。
ARMS的監控創新
ARMS 通過使用全真3D的方式(簡稱 ARMS 3D拓撲)去展示系統的立體性,幫助使用者快速理解和追蹤系統節點中的關係。
首先,我們將系統從底到上抽象為 主機-應用-服務 這三個層級,這也是我們在傳統監控方式中關注最多的三層資訊。在這三個層級上的模組分別代表系統中真實存在的主機(ECS/物理機)- 應用 - 服務。縱向的連線代表主機對應用的支援,以及服務在應用上的歸屬。
使用者除了可以從全域性視角看到自己的整個系統,也可以單獨縮放和旋轉某一層級,詳細檢視主機的叢集和負載情況,應用之間的呼叫關係,以及服務的呼叫量、錯誤率等。下面我們來一一介紹各層級展示的內容。
應用層
應用層展現內容有四個部分:
中心應用
中心應用依賴的應用
使用中心應用服務的應用
中心應用依賴的中介軟體
總的來說,就是展示服務自身、服務被誰呼叫以及服務間的依賴關係。點選應用,會彈出右側面板,應用的QPS、RT、ERROR的資訊都在上面展示。同時,動態的連線關係讓我們更清楚地看到應用之間的呼叫關係,以及中介軟體元件對系統的支援,甚至底層、主機層每個主機的健康情況。
服務層
服務層就是展示各個應用提供的服務詳情資訊,滑鼠滑過就有服務名展示,顏色表示這個服務的響應時長超過閾值(可配置),需要關注。
主機層
主機層展現的是各個應用的主機詳情,點選每個主機可以看到主機的CPU、MEM、Load資訊,超過閾值的指標會標記顏色。另外還會展現主機的靜態資訊,比如主機所隸屬的機房、單元、主機名稱、JVM、Tomcat版本資訊等。
以往我們從出錯的服務到應用,再定位到具體的機器,可能需要十幾次頁面跳轉,而在 ARMS 3D拓撲 的三維世界中,我們在一個頁面中就可以完成這些動作。三維世界的互動方式—拉近、拉遠、轉換視角和摺疊展開,代替了頁面的跳轉。使用者無論拉近到哪個機器或應用,都可以快速的理解自己在系統中所處的位置以及和其他層級的關係,不會因為操作鏈路過長而迷失自己。
接入方式
當前,ARMS 3D拓撲功能已經上線,使用者只要成功接入ARMS的探針,就能以3D的方式去檢視自己的系統狀態,不需要額外的操作與費用。
總結
ARMS 3D拓撲功能提供了一種全新的互動方式,擴充了和應用溝通的維度,實現了360度全方位診斷效能瓶頸和故障節點,以甄別故障出現時,哪些應用和哪些關聯的主機出現了問題等,從此,應用離我們如此之近。