Istio全景監控與拓撲

雲容器大師發表於2018-11-27

根據Istio官方報告,Observe(可觀察性)為其重要特性。Istio提供非侵入式的自動監控,記錄應用內所有的服務。

我們知道在Istio的架構中,Mixer是管理和收集遙測資訊的元件。每一次當請求到達的時候,Envoy會呼叫Mixer進行預檢查,在請求處理完畢後也會將過程上報給Mixer。

 

今天我們會結合開源監控外掛(Jaeger)與嵌入Istio服務的應用效能管理服務來為大家展示部分Istio的全景監控能力。

 

Jaeger

Istio結合Jaeger使用可以解決端到端的分散式追蹤問題。2017年Jaeger成為了CNCF(Cloud Native Computing Foundation)的一員。Jaeger主要可以使用在微服務的架構上,來完成分散式的上下文廣播,事物監控,根因分析,服務依賴關係的分析等功能。

Jaeger介面簡潔,顏色柔和,無過多複雜得元素在內。清晰地在左側配置項欄中列出了使用者需要設定的配置,使用者需要選擇想觀察的服務,觀察的時間段以及一些附加功能配置。點選find trace按鈕後,所有符合預設條件的Trace都會被展示出來。單機某個Trace則會進入他的呼叫詳情中。

比如從上圖中的這個呼叫,我們就可以看出來當請求抵達productPage時,會產生兩個子訪問,一個去呼叫了details元件,另一個則去呼叫了reviews元件。每個Span則是體現了呼叫父子關係和呼叫持續時間,簡明扼要的提供了使用者關心的資訊。對於收集此類監控資訊,設定合適的取樣頻率是十分有必要的,這樣一來避免了過度監控造成的資料冗餘和效能影響,另一方面也避免了監控樣本過少,不能足夠支撐分析的情況。調整取樣率可以通過Helm模板中的values.yaml對其中的traceSampling進行修改,再進行服務網格的建立。

對於執行中的服務網格,則可以對deployment istio-pilot進行修改。

 

Kubectl edit deployment istio-pilot 搜尋並修改PILOT_TRACE_SAMPLING這個屬性。

 

2  APM(應用效能管理)

華為雲Istio服務為了方便使用者瞭解自己應用和叢集的工作狀態,也在服務介面新增了監控的功能。與其他監控外掛相同的是,使用者依然不需要對自己程式碼進行任何改動和重構,直接可以使用監控服務。首先在監控概覽頁面可以看到應用狀態,異常相應統計,時延統計以及應用拓撲圖。

 

  • 應用概覽展示的是應用的就緒狀況,是否有應用未就緒或異常狀態可以直觀反映,異常相應和超長請求時延則展示租戶下所有元件中異常數較大和時延較高的幾個元件。

 

 

  • 拓撲圖則展示的是應用中的訪問,呼叫關係,以及相應的平均時延。除此之外,每個元件可以展開,看到元件中例項的工作狀態。對於因延時影響或者是中斷相應會有相應的連線表達方式。

 

點選拓撲圖上任意一個元件亦或是點選異常相應與超長請求時間上的任何一個元件都可以進入流量概況頁。流量概況頁主要是以數字的形式展示流量情況。

針對該元件的請求總數,錯誤技術,平均時延和最大時延都會以資料的形式直接傳遞給使用者。

  • 流量監控中也包含了呼叫鏈資訊。相比Jaeger,這裡的呼叫鏈多了持久化的一層,可以查閱時間段更寬的資料。

隨著微服務趨勢的發展,越來越多的應用在架構階段就已經解耦成多個元件,越是對於元件多的應用,監控資訊就顯得越發重要。精準,正確的監控資訊不僅能夠第一時間幫助運維人員發現並定位應用中的問題,而且還能夠通過既往的資料來支援運維人員進行資源的合理分配與排程。

 

相關文章