關於指標比率

在 Cloud Monitoring 中計算兩個指標的比率,可將原始計數轉換為比例或比率,例如計算相對於要求總數的 HTTP 要求失敗百分比。您可以使用 PromQL、Google Cloud 控制台中的選單導向介面,或 Cloud Monitoring API 中的時間序列篩選器,繪製及監控指標比率。瞭解取樣率、標籤分組和對齊週期之間的互動方式,有助於您在設定這些項目時避免異常情況。

最佳做法

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

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

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

比例限制

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

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

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

    假設分子時間序列有 method、quota_metric 和 project_id 標籤。分母時間序列具有 limit_name、quota_metric 和 project_id 標籤。分母分組的有效選項取決於分子的選取項目:

    • 分子依 method 標籤分組: 將分母時間序列合併為單一時間序列。 沒有其他分組結果會導致分母時間序列的標籤成為分子時間序列標籤的子集。
    • 依 quota_metric 標籤分組的分子: 依該標籤分組分母,或將分母中的所有時間序列合併為單一時間序列。
    • 分子依 quota_metric 和 project_id 標籤分組:將分母依兩個標籤分組、依一個標籤分組,或將分母時間序列合併為單一時間序列。

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

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

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

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

    比率的分子和分母指標值類型必須為 DOUBLE 或 INT64。

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

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

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

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

取樣和對齊不一致導致的異常

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

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

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

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

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

如果您使用的是內建指標類型,則可能必須計算不同指標類型的比率,才能取得所需的值。

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

比率計算異常導致錯誤快訊

為避免因暫時性錯誤或資料缺漏而收到錯誤快訊,請將 PromQL 查詢的持續時間設為評估間隔的至少兩倍:

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

後續步驟