關於指標比率

本文將協助您選擇最適合的方法,繪製或監控指標資料的比率。此外,這份指南也提供範例連結、說明何時可計算比率,以及描述在繪製兩個不同指標的比率圖表時可能出現的異常狀況。這些異常狀況是因取樣率或對齊參數不同所致。

比率可將指標資料轉換為不同 (可能更有用) 的形式。舉例來說,假設某個指標類型會依據回應代碼計算 HTTP 回應數量。指標資料會回報錯誤次數,但不會回報失敗要求所占的比例。不過,效能需求通常會以百分比表示,例如「錯誤率必須低於 0.1%」。如要使用指標資料判斷錯誤率,請計算失敗要求與要求總數的比率。

最佳做法

如要監控或繪製指標資料比率的圖表,建議使用 PromQL。您可以在 Cloud Monitoring API 和 Google Cloud 控制台中使用 PromQL。 Google Cloud 控制台內建程式碼編輯器,可提供建議、偵測錯誤,以及其他支援功能,協助您建立有效的 PromQL 查詢。

如果您不熟悉 PromQL,但想建立警告政策來監控指標比例,請使用 Cloud Monitoring API 並加入時間序列篩選器。如需範例,請參閱「指標比率」。

如果您不熟悉 PromQL,建議使用 Google Cloud 控制台和選單型介面,繪製指標資料比率圖表。如需詳細操作說明,請參閱「繪製指標比率圖表」和「將圖表和表格新增至自訂資訊主頁」。

比例限制

設定比例時,請注意下列限制:

  • 匯總後,分母時間序列中的標籤必須與分子時間序列中的標籤相同,或是後者的子集。

    建議您選取匯總選項,確保匯總後分子和分母時間序列的標籤相同。

    假設分子時間序列具有 methodquota_metricproject_id 標籤。分母時間序列具有 limit_namequota_metricproject_id 標籤。分母分組的有效選項取決於分子的選取項目:

    • method 標籤分組的分子: 將分母時間序列合併為單一時間序列。 如果以其他方式分組,分母時間序列的標籤就不會是分子時間序列標籤的子集。
    • quota_metric 標籤分組的分子: 依該標籤分組分母,或將分母中的所有時間序列合併為單一時間序列。
    • quota_metricproject_id 標籤分組的分子: 依兩個標籤或其中一個標籤將分母分組,或將分母時間序列合併為單一時間序列。

    有效的分母匯總選項一律會從分組時間序列中排除 limit_name 標籤,因為該標籤不存在於分子時間序列中。

  • 使用 Google Cloud 控制台設定圖表時,分子和分母的對齊週期必須相同;但使用 Cloud Monitoring API 時,這些欄位可以不同。

    建議您使用相同的對齊週期做為分子和分母,無論您使用哪種工具建立圖表都一樣。

  • 分子和分母必須具有相同的值類型。舉例來說,如果分子是 DOUBLE 類型,分母也必須是 DOUBLE 類型。

    比率的分子和分母指標值類型必須為 DOUBLEINT64

  • 分子和分母的對齊時間序列必須具有相同的指標種類。如果這兩個指標的種類不同,您必須使用對齊器將其轉換為相同種類。

    假設您選取 DELTA 指標做為分子,並選取 GAUGE 指標做為分母。在這種情況下,請使用速率對齊器 ALIGN_RATE,將 DELTA 指標轉換為 GAUGE 指標。如需範例,請參閱針對單一限制的頻率配額用量建立比率快訊政策

  • 如果比率不是以 PromQL 定義,則分子和分母的受監控資源類型必須相同。

    舉例來說,如果分子指標的資源是 Compute Engine 執行個體,分母指標的資源也必須是 Compute Engine 執行個體。

因取樣和對齊不一致而出現異常

一般來說,最好根據單一指標類型收集的時間序列,使用標籤值計算比率。如果比率是根據兩種不同的指標類型計算而得,則可能會因取樣週期和對齊視窗不同而出現異常。

舉例來說,假設您有兩種不同的指標類型:RPC 總計數和 RPC 錯誤計數,且您想計算 RPC 錯誤計數與 RPC 總計數的比率。這兩種指標類型的時間序列都會計入 RPC 失敗次數。因此,當您對齊時間序列時,RPC 失敗的事件可能不會出現在兩個時間序列的相同對齊間隔中。造成差異的原因有很多,包括:

  • 因為有兩個不同的時間序列記錄同一個事件,所以有兩個基礎計數器值實作集合,而且這些值不會以原子方式更新。
  • 取樣率可能有所不同。如果時間序列與共同週期對齊,單一事件的計數可能會出現在不同指標的時間序列中,相鄰的對齊間隔。

對應對齊間隔中的值數量差異,可能會導致 error/total 比率值不合理,例如 1/0 或 2/1。

較大數字的比率較不可能產生無意義的值。 您可以透過匯總取得較大的數字,方法是使用比取樣週期更長的對齊視窗,或是將特定標籤的資料分組。這些技術可將特定間隔內點數的微小差異影響降至最低。也就是說,如果預期間隔的分數是 3 分,那麼 2 分的差異就比預期分數是 300 分時更顯著。

如果您使用內建指標類型,可能就只能計算指標類型之間的比例,才能取得所需值。

如果您設計的自訂指標可能會在兩個不同指標中計算相同項目 (例如傳回錯誤狀態的 RPC),建議改用單一指標,這樣每個計數只會計算一次。舉例來說,假設您要計算 RPC,並追蹤不成功的 RPC 與所有 RPC 的比率。如要解決這個問題,請建立單一指標類型來計算 RPC,並使用標籤記錄叫用狀態,包括「OK」狀態。接著,系統會更新該情況的單一計數器,記錄每個狀態值 (錯誤或「OK」)。

因比率計算異常而發生誤報事件

為避免因暫時性錯誤或資料遺失而發生誤報事件,請將 PromQL 查詢的持續時間設為至少是評估間隔的兩倍:

  • Google Cloud 控制台:設定快訊條件時,請在「Duration」(時間長度) 欄位中設定時間長度。
  • Cloud Monitoring API 或 Terraform:使用 AlertPolicy.Condition.PrometheusQueryLanguageCondition.duration 欄位指定時間長度。

後續步驟