操bb国片四区三区,亚洲一片内射无码,91短视频福利导航,蜜桃臀成人免费在线视频观看

運維思考:SRE監(jiān)控的四個黃金指標到底長啥樣?

2024-06-28 09:34:56 Jinyu

簡介

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

一、監(jiān)控的黃金信號

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

延遲(Latency

  • 定義:服務處理某個請求所需要的時間。

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

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

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

流量(Traffic)

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

  • 監(jiān)控方法:通過統(tǒng)計每秒鐘的請求量(TPS)或每秒查詢數(shù)(QPS)等指標來評估系統(tǒng)的流量。

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

錯誤(Errors)

  • 定義:當前系統(tǒng)發(fā)生錯誤請求的數(shù)量,通常通過錯誤率來衡量。

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

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

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

飽和度(Saturation)

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

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

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

二、測量整個環(huán)境中的重要數(shù)據(jù)

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

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

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

三、為單個服務器組件收集的指標

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

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

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

對于內(nèi)存,信號可能如下所示:

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

  • 流量:正在使用的內(nèi)存量

  • 錯誤:內(nèi)存不足錯誤

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

對于存儲設備:

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

  • 流量:讀寫 I/O 級別

  • 錯誤:文件系統(tǒng)錯誤、/sys/devices 中的磁盤錯誤

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

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

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

  • 流量:每秒傳入和傳出的字節(jié)或數(shù)據(jù)包

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

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

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

四、為應用程序和服務收集的指標

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 延遲:完成用戶請求的時間

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

  • 錯誤:處理客戶端請求或訪問資源時發(fā)生的錯誤

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

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


我要咨詢