為客戶提供高質量的應用程序或服務取決於幕后的高可用性基礎架構。當您的服務不可用,速度慢或損壞時,客戶可能會感到沮喪,減少支出或完全停止使用您的服務。您的運營團隊需要快速地了解問題,以防止服務質量降低並影響您的業務。
目前流行的現代分布式系統以基礎架構和主機指標(如CPU利用率,APM指標,如響應時間,數據庫指標等)的形式發布數百個指標。不斷監視所有這些指標是不切實際的,因此我們建議在監視分布式系統時選擇一個用作應用程序關鍵性能指標的子集。
Google的網站可靠性工程師小組(SRE)定義了四個需要監控的關鍵指標。他們稱之為“四個黃金信號”:延遲(Latency),流量(Traffic),錯誤(Errors)和飽和度(Saturation)。這些與微服務的RED度量密切相關:速率,錯誤和持續時間,以及關注利用率,飽和度和錯誤的USE方法。這四個信號應該是服務級別目標(SLO)的關鍵部分,因為它們對於提供高可用性的服務至關重要。
延遲 Latency
延遲是發送請求和接收響應所需的時間。延遲通常從服務器端測量,但也可以從客戶端測量,以解決網絡速度的差異。您的運營團隊可以最大程度地控制服務器端延遲,但客戶端延遲將與您的客戶更相關。
您選擇的目標閾值可能因應用程序類型而異。像API或廣告服務器這樣的自動化系統可能需要比手機上的人有更快的響應時間。您還應分別跟蹤成功和失敗請求的延遲,區分成功請求的延遲和失敗請求的延遲是很重要的。例如,由於與數據庫或其他關鍵后端的連接丟失而觸發的HTTP 500錯誤可能很快得到處理;但是,由於處理超時而引起的HTTP 500錯誤,可能導致誤導性判斷。另一方面,一個慢的錯誤甚至比一個快速的錯誤更糟糕!因此,跟蹤錯誤延遲是很重要的,而不是僅僅過濾掉錯誤。
流量 Traffic
流量是衡量流經網絡的請求數量。這些可能是對Web服務器或API的HTTP請求,也可能是發送到處理隊列的消息。高峰流量的時間可能會對您的基礎架構造成額外壓力,並可能將其推向極限,從而觸發下游效應。這是一個關鍵信號,因為它可以幫助您區分容量問題和不正確的系統配置,即使在低流量時也可能導致問題。對於分布式系統,它還可以幫助您提前規划容量以滿足即將到來的需求。
錯誤 Errors
錯誤可以告訴您基礎結構中的錯誤配置,應用程序代碼中的錯誤或依賴項損壞等。例如,錯誤率的峰值可能表示數據庫或網絡中斷失敗。在代碼部署之后,它可以指示代碼中的錯誤,這些錯誤以某種方式在測試中存活或僅在生產環境中浮出水面。錯誤消息將為您提供有關確切問題的更多信息。錯誤還可以通過人為降低延遲或重復重試來影響其他指標,最終導致分布式系統飽和。
飽和度 Saturation
飽和度定義網絡和服務器資源的負載。每個資源都有一個限制,之后性能將降低或變得不可用。這適用於CPU利用率,內存使用率,磁盤容量和每秒操作等資源。了解您的分布式系統設計和通過經驗來判斷您的服務的哪些部分可能首先變得飽和。通常,這些指標是高級別指標,因此您可以在性能下降之前調整容量。
達到飽和度限制可能會以不同方式影響您的服務。例如,當CPU已滿時,可能會導致響應延遲,填滿的存儲空間可能導致磁盤寫入失敗,並且網絡飽和可能導致數據包丟失。通過儀表板和監控警報可以幫助您密切關注這些資源,並幫助您在容量達到飽和之前主動調整容量。
總結
這四個黃金信號是幫助提供良好客戶體驗的關鍵。可以幫助您在分布式系統監控中輕松跟蹤每個信號。您可以使用它們報告服務級別目標,並通過向下探尋來快速解決問題以獲取更多詳細信息。您可以在問題影響客戶之前主動解決問題。
https://blog.csdn.net/peterwanghao/article/details/81952748