用于監(jiān)控分布式系統(tǒng)的四個黃金信號

為客戶提供高質(zhì)量的應(yīng)用程序或服務(wù)取決于幕后的高可用性基礎(chǔ)架構(gòu)。當您的服務(wù)不可用,速度慢或損壞時,客戶可能會感到沮喪,減少支出或完全停止使用您的服務(wù)。您的運營團隊需要快速地了解問題,以防止服務(wù)質(zhì)量降低并影響您的業(yè)務(wù)。

目前流行的現(xiàn)代分布式系統(tǒng)以基礎(chǔ)架構(gòu)和主機指標(如CPU利用率,APM指標,如響應(yīng)時間,數(shù)據(jù)庫指標等)的形式發(fā)布數(shù)百個指標。不斷監(jiān)視所有這些指標是不切實際的,因此我們建議在監(jiān)視分布式系統(tǒng)時選擇一個用作應(yīng)用程序關(guān)鍵性能指標的子集。

Google的網(wǎng)站可靠性工程師小組(SRE)定義了四個需要監(jiān)控的關(guān)鍵指標。他們稱之為“四個黃金信號”:延遲(Latency),流量(Traffic),錯誤(Errors)和飽和度(Saturation)。這些與微服務(wù)的RED度量密切相關(guān):速率,錯誤和持續(xù)時間,以及關(guān)注利用率,飽和度和錯誤的USE方法。這四個信號應(yīng)該是服務(wù)級別目標(SLO)的關(guān)鍵部分,因為它們對于提供高可用性的服務(wù)至關(guān)重要。

延遲 Latency

延遲是發(fā)送請求和接收響應(yīng)所需的時間。延遲通常從服務(wù)器端測量,但也可以從客戶端測量,以解決網(wǎng)絡(luò)速度的差異。您的運營團隊可以最大程度地控制服務(wù)器端延遲,但客戶端延遲將與您的客戶更相關(guān)。

您選擇的目標閾值可能因應(yīng)用程序類型而異。像API或廣告服務(wù)器這樣的自動化系統(tǒng)可能需要比手機上的人有更快的響應(yīng)時間。您還應(yīng)分別跟蹤成功和失敗請求的延遲,區(qū)分成功請求的延遲和失敗請求的延遲是很重要的。例如,由于與數(shù)據(jù)庫或其他關(guān)鍵后端的連接丟失而觸發(fā)的HTTP 500錯誤可能很快得到處理;但是,由于處理超時而引起的HTTP 500錯誤,可能導(dǎo)致誤導(dǎo)性判斷。另一方面,一個慢的錯誤甚至比一個快速的錯誤更糟糕!因此,跟蹤錯誤延遲是很重要的,而不是僅僅過濾掉錯誤。

流量 Traffic

流量是衡量流經(jīng)網(wǎng)絡(luò)的請求數(shù)量。這些可能是對Web服務(wù)器或API的HTTP請求,也可能是發(fā)送到處理隊列的消息。高峰流量的時間可能會對您的基礎(chǔ)架構(gòu)造成額外壓力,并可能將其推向極限,從而觸發(fā)下游效應(yīng)。這是一個關(guān)鍵信號,因為它可以幫助您區(qū)分容量問題和不正確的系統(tǒng)配置,即使在低流量時也可能導(dǎo)致問題。對于分布式系統(tǒng),它還可以幫助您提前規(guī)劃容量以滿足即將到來的需求。

錯誤 Errors

錯誤可以告訴您基礎(chǔ)結(jié)構(gòu)中的錯誤配置,應(yīng)用程序代碼中的錯誤或依賴項損壞等。例如,錯誤率的峰值可能表示數(shù)據(jù)庫或網(wǎng)絡(luò)中斷失敗。在代碼部署之后,它可以指示代碼中的錯誤,這些錯誤以某種方式在測試中存活或僅在生產(chǎn)環(huán)境中浮出水面。錯誤消息將為您提供有關(guān)確切問題的更多信息。錯誤還可以通過人為降低延遲或重復(fù)重試來影響其他指標,最終導(dǎo)致分布式系統(tǒng)飽和。

飽和度 Saturation

飽和度定義網(wǎng)絡(luò)和服務(wù)器資源的負載。每個資源都有一個限制,之后性能將降低或變得不可用。這適用于CPU利用率,內(nèi)存使用率,磁盤容量和每秒操作等資源。了解您的分布式系統(tǒng)設(shè)計和通過經(jīng)驗來判斷您的服務(wù)的哪些部分可能首先變得飽和。通常,這些指標是高級別指標,因此您可以在性能下降之前調(diào)整容量。

達到飽和度限制可能會以不同方式影響您的服務(wù)。例如,當CPU已滿時,可能會導(dǎo)致響應(yīng)延遲,填滿的存儲空間可能導(dǎo)致磁盤寫入失敗,并且網(wǎng)絡(luò)飽和可能導(dǎo)致數(shù)據(jù)包丟失。通過儀表板和監(jiān)控警報可以幫助您密切關(guān)注這些資源,并幫助您在容量達到飽和之前主動調(diào)整容量。

總結(jié)

這四個黃金信號是幫助提供良好客戶體驗的關(guān)鍵。可以幫助您在分布式系統(tǒng)監(jiān)控中輕松跟蹤每個信號。您可以使用它們報告服務(wù)級別目標,并通過向下探尋來快速解決問題以獲取更多詳細信息。您可以在問題影響客戶之前主動解決問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,316評論 2 89
  • 引言leader送給我的禮物,兩周時間每天一個番茄鐘??,終于在這周末完成,可以進行歸納梳理。這也是我在“閱讀進化時...
    夏花把時間當朋友閱讀 2,647評論 0 18
  • git commit --amend --no-edit 場景: 目前我遇到的是當你merge你的hotfix分支...
    Fighting_rain閱讀 14,155評論 1 1
  • 【0514我在悅讀】凡楚 2018年第62次打卡,三期活動第14次 書名:別再為小事抓狂 作者:理查德.卡爾森 篇...
    凡楚_929d閱讀 502評論 0 0

友情鏈接更多精彩內(nèi)容