《被稱作Server Restart Engineer的我,也想了解如何實踐可觀測性工程》 Day 02: 淺談監控方法論
此為 2025 iThome 鐵人賽系列文《被稱作Server Restart Engineer的我,也想了解如何實踐可觀測性工程》系列 可觀測性與監控 在講述可觀測性是什麼之前,我想先和各位來談談監控(Monitoring)。在《可觀測性工程:達成卓越營運》書中提到,當我們將監控和可觀測性混為一談時,就難以展開有意義的討論。 市面上常見的監控工具大多是被動的,擅長偵測和應對已知問題。這讓我想到剛開始工作時,曾經苦惱於該如何設置系統的告警閾值。那時候前輩給我的建議是:「經驗」。 意思是說,這些設定將會因為時間推移和事件發生不斷迭代修正。監控主要協助判斷系統健康狀況;而可觀測性則協助找出問題如何發生、解決未知問題。 近年來因為雲原生、微服務的興起,使得系統的互動變得更為複雜、除錯更加困難。這時候,只發現系統何時出錯已經遠遠不夠,人們逐漸希望系統能提供更多的上下文(Context)線索來排除故障,這也是為什麼可觀測性在近幾年已然成為顯學。 基於上述脈絡,在深入探討可觀測性之前,讓我們先了解目前業界常討論的幾個監控方法論。這些方法論能幫助我們建立系統性的監控思維,從「何時發生錯誤」逐步進展到「為何發生錯誤」。 今天將會和各位介紹兩種結構化的監控方法論,分別是: USE Method RED Method 這些方法論各有其適用場景,也可以互相搭配使用。接下來讓我們逐一了解它們的核心概念和實際應用。 USE Method The Utilization Saturation and Errors (USE Method) 是由 Brendan Gregg 所提出的系統效能監控方法論。他的核心理念就是這個方法論的名稱,「針對每個資源,去檢查使用率、飽和度和錯誤」。 更近一步地說,USE Method 專注於系統效能層面的監控,針對每個資源進行三個維度的檢查: Utilization(使用率):資源平均忙碌的時間百分比。例如 CPU 使用率 85% 表示該 CPU 有 85% 的時間在處理工作 Saturation(飽和度):資源承擔超過其處理能力的工作量程度。例如佇列(Queue)中等待被處理的任務數量 Errors(錯誤):錯誤事件的數量。例如網路封包丟失的次數 USE Method 所說的資源主要指硬體資源,例如: CPU:處理器核心、執行緒 Memory:實體記憶體容量 Network interfaces:網路介面卡 Storage devices:硬碟、SSD Controllers:磁碟控制器、網路控制器 Interconnects:CPU 互連、記憶體匯流排 USE Method就是透過逐一檢查每個資源的 U.S.E 三個指標,讓工程師能夠快速定位系統瓶頸。只不過,系統本身可能存在多個效能問題,我們所發現的問題可能只是其中一個。這時候,我們就需要輔以其他方法來做更深入的分析,但 USE Method 仍能夠協助我們不斷迭代所有資源、持續發現問題。 RED Method The RED Method 是由 Tom Wilkie 所提出。不同於 USE Method 針對硬體資源的效能,RED Method 主要針對微服務,並以 Rate、Errors、Duration 三種指標來評估其性能。...