博客 / 詳情

返回

可觀測性體系建設五步心法:明業務、立規範、採數據、顯特徵、獲洞見

筆者做監控 11 年,在可觀測性領域創業 4 年,與各類客户溝通較多,發現很多企業想要建設可觀測性體系,但是不得章法,我把整個建設過程做了一個簡單總結,梳理一下其中的脈絡,希望對你有所啓發。

整個可觀測性體系建設,我總結為五個步驟:

  • 明業務
  • 立規範
  • 採數據
  • 顯特徵
  • 獲洞見

下面挨個説明,可觀測性體系涉及到的內容太過駁雜龐大,本文更多是説明思路,不涉及實操。

明業務

首先,要把您的業務梳理明白。理清楚您的最終業務目標和指標,通常稱為北極星指標,舉例:

  • 電商系統:訂單量、訂單金額等
  • 遊戲:在線人數、交易金額等
  • 視頻播放:點擊 Play 的次數等

簡單而言,就是把老闆層面(全公司層面)關注的指標理清楚,如果這些指標出現異常(比如下跌),可能就是重大業務故障,SRE、DEV 都要及時介入處理。

北極星指標通常是一些結果性質的指標,如果要做的更精細化,還應該拆解出過程指標,比如電商系統的訂單量,我們就要分析,哪些關鍵環節影響訂單量,哪些過程指標可以衡量客户主流程(下訂單)健康與否,比如:

  • 客户登錄次數、登錄失敗次數
  • 瀏覽商品的次數、瀏覽商品的響應速度
  • 添加購物車的次數、成功率、延遲
  • 結算次數、結算失敗次數、結算延遲
  • 等等

理清楚這些關鍵的結果指標和過程指標之後,進而從技術角度,就要梳理看哪些系統、模塊影響了這些指標,這些系統就應該定義為 P1 級別的系統,重點保障。這些 P1 級別的系統的 SLI、SLO 數據就要重點管理起來。

立規範

如果公司較小,微服務數量 20 個以下,機器只有幾十台,規範與否大家感受不深。如果微服務上千、機器過萬,那感受就深了。如果規範做得好,就可以批量幹很多事情,很多知識也都是複用的。

從可觀測性角度,可能需要立規範的一些點:

  • 統一使用哪個指標、日誌、鏈路追蹤的系統
  • 日誌打印方式
  • 各類觀測數據的標籤
  • 微服務自身暴露哪些可觀測性數據,以及如何暴露
  • 變更事件如何統一收集呈現
  • SLI、SLO 數據統一梳理、呈現、告警
  • 告警規則的制定原則、分派規則
  • 數據協議規範格式
  • 等等

立規範這個事情,做得越靠前,後面越省事,高階架構師做過很多橫向的體系設計,通常會把可觀測性這攤事做得比較靠前,因為系統的可觀測性和系統的可用性、魯棒性類似,都是系統必須要關注的特性之一。

採數據

各類觀測數據(指標、日誌、鏈路、事件、Profiling)的採集,要按照前面制定的規範走,要考慮成本、考慮數據未來的價值。對於各類中間件、數據庫,因為都是通用產品,採集哪些指標、日誌,重點關注哪些數據,在業內通常可以找到最佳實踐,而對於公司自研的那些微服務,就稍微麻煩一些了。需要:

  • 梳理自身業務,確定暴露哪些數據才能方便未來排查問題
  • 從上到下推動埋點,否則難以落地

顯特徵

這裏的特徵,指的是數據特徵。海量的零散的觀測數據,人類是沒法一條一條查看的,要想從數據中獲取有價值的信息,很難。需要我們有效組織數據,從中發現一些特徵規律。舉一些例子:

  • 把指標數據放到折線圖裏,可以看到趨勢特徵,可以看到最大最小值,可以看到哪個時間有突變,就是典型的從數據中提取特徵
  • 把較大量的日誌,通過聚類算法計算日誌 pattern,比如 10000 條日誌,最終提取出 20 條 pattern,這樣用户更容易理解分析
  • 把告警事件按照標籤做聚合,通常是按照告警規則標題做聚合,或者按照 region、severity、env、service 等做聚合
  • 把近期的變更事件和關鍵告警放在一個圖上,可以從時間維度較為容易分析告警和變更的關係
  • 把微服務按照層級聚合為子系統,然後聚合為系統,發生故障之後,就可以方便知道哪些系統受到影響,確認影響範圍
  • 等等

從具體工具上來看,比如 Grafana、Flashcat 等,都是有力工具,幫助用户快速發現數據特徵。

獲洞見

可觀測性體系要解決的最大的場景需求,就是故障定位,進而執行止損動作。通過數據特徵,我們最終要得到的洞見,就是“止損依據”!用户通常需要建立各種視圖,通過視圖分析數據特徵,進而綜合分析,得到“止損依據”。

比如用户訪問電商 App 延遲較高,我們可能要分析:

  • 容量水位數據
  • 變更數據
  • 依賴的服務的健康狀況
  • 基礎網絡
  • 等等

通過特徵分析,來確認對應的方向是否有問題,綜合多個方向的分析結論,最終得到故障的原因,知道原因了也就知道如何止損了。

總結

本文提綱挈領梳理了整個可觀測性體系的建設的五步法。只能算是一個梗概,希望對你有所幫助。我們創業這些年,一直聚焦在監控、可觀測性領域,深知這個領域的駁雜,如果你需要乙方協助構建整套體系,歡迎聯繫我們。

本文作者秦曉輝,監控領域從業 11 年,Open-Falcon、Nightingale 開源項目創始人,極客時間專欄《運維監控系統實戰筆記》作者,現為 Flashcat 聯合創始人,創業中。
user avatar helpdesk 頭像 didiaodekaishuiping 頭像 mimangdeyangcong 頭像
3 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.