本文將協助您選擇最適合的方法,繪製或監控指標資料的比率。此外,這份指南也提供範例連結、說明何時可計算比率,以及描述在繪製兩個不同指標的比率圖表時可能出現的異常狀況。這些異常狀況是因取樣率或對齊參數不同所致。
比率可將指標資料轉換為不同 (可能更有用) 的形式。舉例來說,假設某個指標類型會依據回應代碼計算 HTTP 回應數量。指標資料會回報錯誤次數,但不會回報失敗要求所占的比例。不過,效能需求通常會以百分比表示,例如「錯誤率必須低於 0.1%」。如要使用指標資料判斷錯誤率,請計算失敗要求與要求總數的比率。
最佳做法
如要監控或繪製指標資料比率的圖表,建議使用 PromQL。您可以在 Cloud Monitoring API 和 Google Cloud 控制台中使用 PromQL。 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 分,那麼 2 分的差異就比預期分數是 300 分時更顯著。
如果您使用內建指標類型,可能就只能計算指標類型之間的比例,才能取得所需值。
如果您設計的自訂指標可能會在兩個不同指標中計算相同項目 (例如傳回錯誤狀態的 RPC),建議改用單一指標,這樣每個計數只會計算一次。舉例來說,假設您要計算 RPC,並追蹤不成功的 RPC 與所有 RPC 的比率。如要解決這個問題,請建立單一指標類型來計算 RPC,並使用標籤記錄叫用狀態,包括「OK」狀態。接著,系統會更新該情況的單一計數器,記錄每個狀態值 (錯誤或「OK」)。
因比率計算異常而發生誤報事件
為避免因暫時性錯誤或資料遺失而發生誤報事件,請將 PromQL 查詢的持續時間設為至少是評估間隔的兩倍:
- Google Cloud 控制台:設定快訊條件時,請在「Duration」(時間長度) 欄位中設定時間長度。
- Cloud Monitoring API 或 Terraform:使用
AlertPolicy.Condition.PrometheusQueryLanguageCondition.duration欄位指定時間長度。
後續步驟
如要瞭解如何使用 PromQL 設定快訊政策,請參閱 PromQL 快訊總覽。
如要瞭解如何建立圖表,請參閱下列文件:
- 如要建立臨時圖表,請參閱「Metrics Explorer」。
- 如要使用 Google Cloud 控制台將圖表新增至資訊主頁,請參閱「將圖表和表格新增至自訂資訊主頁」。
- 如要使用 Cloud Monitoring API 管理圖表,請參閱「使用 API 建立及管理資訊主頁」。