国产在线观看精品免费,亚洲日本VA久久一区二区,香蕉久久99综合一区二区三区,久久精品99国产精品蜜桃小说

運維思考:SRE監控的四個(gè)黃金指標到底長(cháng)啥樣?

2024-06-28 09:34:56 Jinyu

簡(jiǎn)介

了解系統狀態(tài)對于確保應用程序和服務(wù)的可靠性和穩定性至關(guān)重要。有關(guān)部署運行狀況和性能的信息不僅可以幫助您的團隊對問(wèn)題做出反應,還可以讓他們放心地進(jìn)行更改。獲得這種洞察力的最佳方法之一是使用強大的監控系統,該系統可以收集指標、可視化數據并在出現問(wèn)題時(shí)提醒操作員。
在我們對指標、監控和警報指南的介紹中,我們討論了一些涉及監控軟件和基礎設施的核心概念。指標是監控系統處理的主要材料,用于構建被跟蹤系統的內聚視圖。了解哪些組件值得監控以及您應該查看哪些具體特征是設計一個(gè)系統的第一步,該系統可以提供有關(guān)您的軟件和硬件狀態(tài)的可靠、可操作的見(jiàn)解。
在本指南中,我們將首先討論用于確定要跟蹤的最關(guān)鍵指標的流行框架。之后,我們將介紹如何在整個(gè)部署過(guò)程中將這些指標應用于組件。此過(guò)程將首先關(guān)注單個(gè)服務(wù)器的基礎資源,然后調整范圍以涵蓋越來(lái)越大的關(guān)注領(lǐng)域。

一、監控的黃金信號

在極具影響力的 Google SRE(站點(diǎn)可靠性工程)書(shū)中,關(guān)于監控分布式系統的章節介紹了一個(gè)有用的框架,稱(chēng)為監控的四個(gè)黃金信號,它代表了在面向用戶(hù)的系統中要衡量的最重要的因素。我們將在下面討論這四個(gè)特征中的每一個(gè)。

延遲(Latency

  • 定義:服務(wù)處理某個(gè)請求所需要的時(shí)間。

  • 重要性:延遲的增加可能意味著(zhù)系統性能下降或存在瓶頸。對于微服務(wù)架構,快速失敗和快速反饋是推薦的做法,因此延遲的監控對于快速定位和解決問(wèn)題至關(guān)重要。

  • 監控方法:通常監控服務(wù)的響應時(shí)間,如tp99(99%響應時(shí)間)等指標,以了解服務(wù)的性能狀況。

延遲是對完成操作所需時(shí)間的度量。具體如何測量取決于組件,但一些常見(jiàn)的類(lèi)似物是處理時(shí)間、響應時(shí)間或行程時(shí)間。
測量延遲可讓您具體衡量完成特定任務(wù)或操作所需的時(shí)間。捕獲各種組件的延遲允許您構建系統不同性能特征的整體模型。這可以幫助您找到瓶頸,了解訪(fǎng)問(wèn)哪些資源需要最多的時(shí)間,并注意到操作突然花費的時(shí)間比預期的時(shí)間長(cháng)。SRE 一書(shū)的作者強調在計算延遲時(shí)區分成功和不成功請求的重要性,因為它們可能具有非常不同的配置文件,可能會(huì )扭曲服務(wù)的平均值。

流量(Traffic)

  • 定義:當前系統的數據流入流出的數據統計,用來(lái)衡量服務(wù)的承載能力。
  • 重要性:流量的大小直接反映了系統的負載情況,對于容量規劃和資源調配具有重要的參考價(jià)值。

  • 監控方法:通過(guò)統計每秒鐘的請求量(TPS)或每秒查詢(xún)數(QPS)等指標來(lái)評估系統的流量。

流量衡量您的組件和系統的“繁忙程度”。這會(huì )捕獲您的服務(wù)的負載或需求,以便您了解您的系統當前正在執行多少工作。
持續的高或低流量數字可能表明服務(wù)可能需要更多資源,或者問(wèn)題阻止流量正確路由。但是,在大多數情況下,流量率對于幫助了解通過(guò)其他信號浮出水面的問(wèn)題最有用。例如,如果延遲增加超過(guò)可接受的水平,能夠將該時(shí)間范圍與流量峰值相關(guān)聯(lián)是有幫助的。流量可用于了解可以處理的最大流量以及服務(wù)在不同負載階段如何降級或失敗。

錯誤(Errors)

  • 定義:當前系統發(fā)生錯誤請求的數量,通常通過(guò)錯誤率來(lái)衡量。

  • 重要性:錯誤率是評估系統穩定性和可靠性的重要指標。高錯誤率可能意味著(zhù)系統存在嚴重問(wèn)題或設計缺陷。

  • 監控方法:除了簡(jiǎn)單的錯誤計數外,還需要關(guān)注錯誤的具體類(lèi)型、來(lái)源和原因,以便快速定位和解決問(wèn)題。

跟蹤錯誤以了解組件的健康狀況以及它們未能正確響應請求的頻率非常重要。某些應用程序或服務(wù)會(huì )在干凈、現成的界面中暴露錯誤,但可能需要額外的工作來(lái)從其他程序收集數據。
區分不同類(lèi)型的錯誤可以更輕松地查明影響應用程序的問(wèn)題的確切性質(zhì)。這也為您提供了警報的靈活性。如果出現一種類(lèi)型的錯誤,您可能需要立即收到警報,但對于另一種錯誤,只要比率低于可接受的閾值,您就不會(huì )擔心。

飽和度(Saturation)

  • 定義:飽和度用來(lái)衡量當前服務(wù)的承載能力,通常使用資源的利用率和空閑率來(lái)表示。

  • 重要性:飽和度反映了系統資源的利用情況,當資源利用率接近或達到飽和時(shí),系統的性能可能會(huì )受到影響。
  • 監控方法:通過(guò)監控系統的CPU、內存、磁盤(pán)、網(wǎng)絡(luò )等資源的利用率來(lái)評估系統的飽和度。當資源利用率達到或接近某個(gè)閾值時(shí),可能需要采取擴容或優(yōu)化措施。

飽和度衡量給定資源的使用量。百分比或分數經(jīng)常與具有明確總容量的資源一起使用,但對于沒(méi)有明確定義的最大值的資源,可能需要更具創(chuàng )造性的測量。
飽和度數據提供有關(guān)服務(wù)或應用程序有效運行所依賴(lài)的資源的信息。由于一個(gè)組件提供的服務(wù)可能會(huì )被另一個(gè)組件使用,因此飽和度是暴露底層系統容量問(wèn)題的粘合指標之一。因此,一層中的飽和和延遲問(wèn)題可能與底層中流量或錯誤測量的顯著(zhù)增加相對應。
四個(gè)黃金指標相互關(guān)聯(lián)、相互影響,共同構成了評估系統穩定性和性能的關(guān)鍵框架。通過(guò)對這些指標的監控和分析,可以及時(shí)發(fā)現和解決系統問(wèn)題,確保系統的穩定、可靠和高效運行。

二、測量整個(gè)環(huán)境中的重要數據

使用四個(gè)黃金信號作為指導,您可以開(kāi)始查看這些指標在整個(gè)系統層次結構中的表達方式。由于服務(wù)通常是通過(guò)在更基本的組件之上添加抽象層來(lái)構建的,因此應設計指標以在部署的每個(gè)級別添加洞察力。
我們將研究常見(jiàn)分布式應用程序環(huán)境中存在的不同級別的復雜性:

  • 單獨的服務(wù)器組件
  • 應用程序和服務(wù)
  • 服務(wù)器集合
  • 環(huán)境依賴(lài)
  • 端到端體驗

上面的順序擴展了每個(gè)后續層的抽象范圍和級別。

三、為單個(gè)服務(wù)器組件收集的指標

需要收集的基本級別指標是與您的系統所依賴(lài)的底層計算機相關(guān)的指標。盡管現代軟件開(kāi)發(fā)在抽象物理組件和低級操作系統細節方面付出了相當大的努力,但每項服務(wù)都依賴(lài)于底層硬件和操作系統來(lái)完成其工作。因此,密切關(guān)注機器的基礎資源是了解系統健康狀況的第一步。

在考慮在機器級別收集哪些指標時(shí),請考慮可用的單個(gè)資源。這些將包括服務(wù)器硬件的表示以及操作系統提供的核心抽象,如進(jìn)程和文件描述符。從四個(gè)黃金信號的角度來(lái)看每個(gè)組成部分,某些信號可能很明顯,而其他信號可能更難以推理。
Brendan Gregg 是一位有影響力的性能工程師,他概述了許多從 Linux 系統獲取核心指標的方法,以滿(mǎn)足他稱(chēng)為性能分析(利用率、飽和度和錯誤)的 USE 方法的框架的需求。由于 USE 方法和四個(gè)黃金信號之間存在顯著(zhù)重疊,我們可以使用他的一些建議作為起點(diǎn),以確定從服務(wù)器組件收集哪些數據。
要測量 CPU,以下測量可能是合適的:

  • 延遲:CPU 調度程序的平均或最大延遲
  • 流量:CPU 利用率
  • 錯誤:特定于處理器的錯誤事件、故障 CPU
  • 飽和度:運行隊列長(cháng)度

對于內存,信號可能如下所示:

  • 延遲:(無(wú) - 很難找到一種好的衡量方法且不可操作)

  • 流量:正在使用的內存量

  • 錯誤:內存不足錯誤

  • 飽和度:OOM 殺手事件,交換使用

對于存儲設備:

  • 延遲:讀取和寫(xiě)入的平均等待時(shí)間(await)

  • 流量:讀寫(xiě) I/O 級別

  • 錯誤:文件系統錯誤、/sys/devices 中的磁盤(pán)錯誤

  • 飽和度:I/O 隊列深度

網(wǎng)絡(luò )信號可能如下所示:

  • 延遲:網(wǎng)絡(luò )驅動(dòng)程序隊列

  • 流量:每秒傳入和傳出的字節或數據包

  • 錯誤:網(wǎng)絡(luò )設備錯誤、丟包

  • 飽和度:溢出、丟包、重傳段

除了物理資源的表示外,收集與強制執行限制的操作系統抽象相關(guān)的指標也是一個(gè)好主意。屬于此類(lèi)別的一些示例是文件句柄和線(xiàn)程計數。這些不是物理資源,而是由操作系統設置的上限構造,以防止進(jìn)程過(guò)度擴展自身。大多數都可以使用 ulimit 之類(lèi)的命令進(jìn)行調整和配置,但跟蹤這些資源使用的變化可以幫助您檢測軟件使用中潛在的有害變化。

四、為應用程序和服務(wù)收集的指標

向上移動(dòng)一層,我們開(kāi)始處理在服務(wù)器上運行的應用程序和服務(wù)。這些程序使用我們之前處理的單個(gè)服務(wù)器組件作為資源來(lái)完成工作。此級別的指標可幫助我們了解單主機應用程序和服務(wù)的運行狀況。我們已將分布式多主機服務(wù)分成一個(gè)單獨的部分,以闡明這些配置中最重要的因素。
雖然上一節中的指標詳細說(shuō)明了各個(gè)組件和操作系統的功能和性能,但此處的指標將告訴我們應用程序能夠執行我們要求它們的工作的能力。我們還想知道我們的應用程序依賴(lài)哪些資源以及它們如何管理這些約束。
重要的是要記住,本節中的指標與我們上次能夠使用的通用方法有所不同。從現在開(kāi)始,最重要的指標將非常依賴(lài)于您的應用程序的特征、配置以及您在機器上運行的工作負載。我們可以討論確定最重要指標的方法,但您的結果將取決于具體要求服務(wù)器執行的操作。
對于為客戶(hù)服務(wù)的應用程序,四個(gè)黃金信號通常很容易挑選:

  • 延遲:完成請求的時(shí)間
  • 流量:每秒服務(wù)的請求數
  • 錯誤:處理客戶(hù)端請求或訪(fǎng)問(wèn)資源時(shí)發(fā)生的應用程序錯誤
  • 飽和度:當前正在使用的資源的百分比或數量

您需要跟蹤的一些更重要的指標是與依賴(lài)項相關(guān)的指標。這些通常最好通過(guò)與單個(gè)組件相關(guān)的飽和度指標來(lái)表達。例如,應用程序內存利用率、可用連接、打開(kāi)的文件句柄數量或活動(dòng)的工作人員數量可以幫助您了解在物理服務(wù)器上下文中應用的配置的效果。
這四個(gè)黃金信號主要是為分布式微服務(wù)設計的,因此它們采用客戶(hù)端-服務(wù)器架構。對于不使用客戶(hù)端-服務(wù)器架構的應用程序,相同的信號仍然很重要,但“流量”信號可能需要稍微重新考慮。這基本上是對繁忙度的衡量,因此找到一個(gè)能夠充分代表您的應用程序的指標將達到相同的目的。具體將取決于您的程序正在做什么,但一些通用的替代品可能是每秒處理的操作數或數據。

五、衡量服務(wù)器集合及其通信的指標

大多數服務(wù),尤其是在生產(chǎn)環(huán)境中運行時(shí),將跨越多個(gè)服務(wù)器實(shí)例以提高性能和可用性。這種增加的復雜程度增加了對監測很重要的額外表面積。分布式計算和冗余系統可以使您的系統更加靈活,但基于網(wǎng)絡(luò )的協(xié)調比單個(gè)主機內的通信更脆弱。強大的監控可以幫助減輕處理不太可靠的通信渠道的一些困難。
除了網(wǎng)絡(luò )本身,對于分布式服務(wù),服務(wù)器組的健康和性能比應用于任何單個(gè)主機的相同措施更重要。雖然服務(wù)在局限于單個(gè)主機時(shí)與其運行的計算機密切相關(guān),但冗余多主機服務(wù)依賴(lài)于多臺主機的資源,同時(shí)與對任何一臺計算機的直接依賴(lài)保持分離。
此級別的黃金信號與上一節中衡量服務(wù)健康狀況的信號非常相似。但是,他們將考慮到組成員之間所需的額外協(xié)調:

  • 延遲:池響應請求的時(shí)間,與對等方協(xié)調或同步的時(shí)間
  • 流量:池每秒處理的請求數
  • 錯誤:處理客戶(hù)端請求、訪(fǎng)問(wèn)資源或到達對等點(diǎn)時(shí)發(fā)生的應用程序錯誤
  • 飽和度:當前使用的資源量、當前滿(mǎn)負荷運行的服務(wù)器數量、可用的服務(wù)器數量。

雖然這些與單主機服務(wù)的重要指標有明確的相似之處,但每個(gè)信號在分布時(shí)都會(huì )變得更加復雜。延遲成為一個(gè)更復雜的問(wèn)題,因為處理可能需要多個(gè)主機之間的通信。流量不再是單個(gè)服務(wù)器能力的函數,而是組能力和用于分配工作的路由算法效率的總結。引入了與網(wǎng)絡(luò )連接或主機故障相關(guān)的其他錯誤模式。最后,飽和度擴展到包括主機可用的組合資源、連接每個(gè)主機的網(wǎng)絡(luò )鏈接以及正確協(xié)調對每臺計算機所需依賴(lài)項的訪(fǎng)問(wèn)的能力。

六、與外部依賴(lài)和部署環(huán)境相關(guān)的指標

要收集的一些最有價(jià)值的指標存在于您的應用程序或服務(wù)的邊界,不受您的直接控制。外部依賴(lài)項,包括與您的托管服務(wù)提供商和您的應用程序構建依賴(lài)的任何服務(wù)相關(guān)的依賴(lài)項。這些代表您無(wú)法直接管理的資源,但會(huì )損害您保證自己服務(wù)的能力。
由于外部依賴(lài)關(guān)系代表關(guān)鍵資源,因此在完全中斷的情況下唯一可用的緩解策略之一是將操作切換到不同的提供者。這只是商品服務(wù)的可行策略,即便如此,也只有事先規劃并與提供商松散耦合。即使緩解困難,了解影響應用程序的外部事件也非常有價(jià)值。
應用于外部依賴(lài)的黃金信號可能類(lèi)似于:

  • 延遲:從服務(wù)接收響應或從提供者提供新資源所需的時(shí)間
  • 流量:推送到外部服務(wù)的工作量,向外部 API 發(fā)出的請求數
  • 錯誤:服務(wù)請求的錯誤率
  • 飽和度:使用的帳戶(hù)限制資源量(實(shí)例、API 請求、可接受的成本等)

這些指標可以幫助您識別依賴(lài)關(guān)系的問(wèn)題,提醒您即將發(fā)生的資源耗盡,并幫助控制費用。如果服務(wù)有替代方案,當指標表明出現問(wèn)題時(shí),該數據可用于決定是否將工作轉移到不同的提供者。對于靈活性較差的情況,這些指標至少可以用來(lái)提醒操作員對這種情況做出響應并實(shí)施任何可用的手動(dòng)緩解選項。

七、跟蹤整體功能和端到端體驗的指標

最高級別的指標在用戶(hù)與之交互的最外層組件的上下文中跟蹤通過(guò)系統的請求。這可能是一個(gè)負載均衡器或其他路由機制,負責接收和協(xié)調對您的服務(wù)的請求。由于這是與您的系統的第一個(gè)接觸點(diǎn),因此在此級別收集指標可提供整體用戶(hù)體驗的近似值。
雖然前面描述的指標非常有用,但本節中的指標通常是設置警報時(shí)最重要的指標。為避免響應疲勞,警報(尤其是頁(yè)面)應保留用于對用戶(hù)體驗有明顯負面影響的場(chǎng)景??梢酝ㄟ^(guò)使用在其他級別收集的指標進(jìn)行深入研究來(lái)調查這些指標中出現的問(wèn)題。
我們在這里尋找的信號類(lèi)似于我們之前描述的單個(gè)服務(wù)的信號。主要區別在于我們在這里收集的數據的范圍和重要性:

  • 延遲:完成用戶(hù)請求的時(shí)間

  • 流量:每秒用戶(hù)請求數

  • 錯誤:處理客戶(hù)端請求或訪(fǎng)問(wèn)資源時(shí)發(fā)生的錯誤

  • 飽和度:當前正在使用的資源的百分比或數量

由于這些指標與用戶(hù)請求并行,因此超出這些指標可接受范圍的值可能表明對用戶(hù)有直接影響。不符合面向客戶(hù)或內部 SLA(服務(wù)級別協(xié)議)的延遲、指示嚴重高峰或下降的流量、錯誤率增加以及由于資源限制而無(wú)法處理請求都是相當簡(jiǎn)單的推理在這個(gè)級別。假設指標準確,此處的值可以直接映射到您的可用性、性能和可靠性目標。


我要咨詢(xún)