可觀測性體系建設五步心法:明業務、立規范、采數據、顯特征、獲洞見
筆者做監控 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 聯合創始人,創業中。

浙公網安備 33010602011771號