Wavefront 簡介

Wavefront 是 VMware 於2017年收購的技術,被整合成為 VMware 雲服務之一,命名為 Wavefront by VMware。Wavefront 以 SaaS 形式提供監控和分析功能,它就是為了監控雲端服務而設計的,當然它也可以監控私有雲中的傳統系統和應用;Wavefront 從各個雲服務收集詳盡的性能數據和日誌,供用戶在此基礎上分析應用的性能瓶頸所在、快速排除應用故障。

 

Wavefront 可以供應用平台管理員 SRE (Site Reliability Engineer) 、開發人員、系統管理員等各種角色所使用。使用者通過 Wavefront Query Language 來對 Wavefront 所收集的數據進行挖掘和分析,分析的結果以圖形化的結果展現,便於使用者進行分析和比對。

 

跟傳統的監控平台相比,Wavefront 有著以下的特點:

  • 支持各種規模的應用:雲服務和分散式應用的運行規模都是不可預測的,Wavefront 可以有效監控各種規模的雲服務和應用,並支持它們的彈性擴展。
  • 高速數據採樣:提供雲服務的容器在需要時被創建,用完後又馬上刪除,傳統的定時採樣模式無法滿足這種新一代應用的監控需求。Wavefront 專門為雲原生應用而設計,輕鬆支持每秒鐘一百萬次以上的數據採樣。
  • 自助式的指標分析:傳統的監控平台僅為管理員服務,而 Wavefront 對所有的員工開放,每個人都可以利用 Wavefront 平台對採集到的數據進行分析,這種協作式的工作模式可以更好地發現問題,激勵員工創新。

 

Wavefront 平台通過以下幾種途徑來採集數據:

  • Wavefront Agent:Wavefront 為各種雲服務和應用平台開發了採集數據的 Agent,Agent 再通過 Wavefront Proxy 來把數據上傳到雲端的 Wavefront 資料庫。
  • 被監控對象直接發送數據給 Wavefront:只需要把 Wavefront 提供的 Metrics Library 插入到被監控對象中,就能直接採集數據。
  • 直接從雲服務獲得數據:對於 AWS、Google Cloud、Pivotal Cound Foundry 這些大型雲服務平台,Wavefront 可以直接收集數據。
  • 收集日誌:Wavefront 也可以通過 TCP 或 FileBeat 日誌工具等從日誌中採集數據。

Wavefront 目前支持各種主流的雲服務和應用平台,並且支持的平台還在快速增長,僅2018年1季度就增加了超過45個新的集成,你可以在 Wavefront 的在線文檔上看到每個月新增的集成。所以,不要擔心沒有在下圖中找到你需要的 logo,沒準很快就會支持了。

 

 

Wavefront 應用實例

下面我們來看幾個雲存儲服務商 Box 利用 Wavefront 進行系統監控和數據分析的實例,讓大家對 Wavefront 的分析功能有一個直觀的認識。

Box 的某一個服務需要訪問公有雲上的對象存儲,下圖中不同顏色的線條代表了提供同一服務的多台伺服器。Box 採用了 anycast 的機制來實現負載均衡,但是整個服務的性能很糟糕。Box 通過對 Wavefront 收集的性能數據進行分析找出了問題的原因:用於實現 anycast 的網路服務並沒有很好地做到負載均衡。在圖的左側我們可以看到:這些線條有比較大的差異、並且紫色線條所代表的伺服器並沒有得到充分利用,這意味著 anycast 沒有起到均衡負載的作用。找到問題後,Box 立即進行了修復,修正後的性能結果顯示幾台伺服器的性能曲線趨向於重合和一致,這表明負載均衡機制起作用了。如果沒有一個恰當的工具的話,這種類型的問題可能需要花費幾周的時間才能找到;但利用 Wavefront,Box 的工程師在一天內就定位了問題。

Wavefront 通過數據分析快速找出問題所在,事半功倍。

 

接下來是一個操作系統打補丁的例子,Box 的安全規範要求及時為操作系統打上各種安全補丁。所以一旦有新的安全漏洞被發現,運營團隊就要及時地給上萬台伺服器打上安全補丁。某一位團隊成員被分配到這一項目時利用 Wavefront 創建了這一指標 (Metrics),用於記錄需要打上的補丁總數。剛開始的時候,大概總共有4~5萬個補丁需要打;但是隨著補丁數量的增長,項目團隊的工作逐漸滯後,累積的未打補丁也越來越多,最終增長到了30萬個。靠人力是無法按時完成這項工作了,所以他們找到了自動打補丁的方法,從4月開始,累積的補丁數開始直線下降,直到7月下降為零。這個圖表記錄的是歷史的真實數據,用非常直觀的方法向管理團隊展示了項目團隊的工作成績。

Wavefront 用數據說話,讓人真正信服。

 

下面這個例子來自於 Box 中一個跨部門的全球性能優化項目,某位高層領導要求產品經理提供項目決策流程的一個彙報,這位產品經理於是從 Wavefront 中抓取了這樣一份圖表,最後這份報告在 CEO 參加的高管會議上被分享了。這份圖表到底揭示了一個什麼信息呢?這份圖表顯示的是關於 Box 服務的性能,其中有三條線, 代表了三種性能結果:

  • 藍色的是標準的 Box 服務,大概的服務延遲是 1.5 左右;
  • 綠色的是某一個迭代的結果,但是性能反而稍微變差了,延遲上升到 1.8 左右;
  • 紫色的是最新的優化結果,把服務延遲從 1.5 降低到 0.5 左右,可謂效果顯著。

任何人都可以使用 Wavefront 挖掘出有價值的分析結果,這正是 Wavefront 的魅力所在。