繪製配額指標圖表並監控配額指標

本文件說明如何建立警告政策和圖表,監控 Google Cloud分配給您的配額,並提供多個範例。Google Cloud 會設定多項配額,您可以用來追蹤及限制專案或機構使用的資源。如需配額的一般資訊,包括分配配額和費率配額的資訊,請參閱「處理配額」。

事前準備

本文件假設您熟悉時序資料及其操作方式。下列資源提供更多資訊:

  • 如要瞭解如何使用時序資料,請參閱「篩選和匯總」一文。
  • 如要瞭解「指標」、「差異」和「累積」的定義,請參閱「指標類型」。
  • 如要進一步瞭解用於結合時序資料的函式,請參閱 AlignerReducer

配額管理

Cloud Monitoring 會以兩種方式管理配額:

  • 消費者配額:對於這類配額,受控資源為 consumer_quota。這項資源的指標是 serviceruntime 指標的子集

    本頁大部分的範例都是消費者配額範例。

  • 資源專屬配額:部分服務提供受控資源,這些資源有專屬的資源指標。這些指標類型會以三個一組的形式顯示,並遵循以下命名格式:

    • service/quota/quota-type/exceeded
    • service/quota/quota-type/limit
    • service/quota/quota-type/usage

    舉例來說,Compute Engine 有 compute.googleapis.com/VpcNetwork 資源。與此資源相關聯的配額相關指標是 compute 指標compute.googleapis.com/quota 子集。與「每個虛擬私有雲網路的執行個體」配額相關的三種指標類型如下:

找出配額指標和限制名稱

配額用量原始資料 (特別是消費者配額) 可能包含許多不同配額的資訊。如要擷取特定圖表或警示政策的配額資訊,您必須找出該配額資料子集。

視來源而定,配額資料可能會包含標籤,可用來區隔所需資訊。這些標籤包括:

  • 配額指標:配額指標是某種配額類型的 ID,不是指標清單中所述的指標類型之一。舉例來說,所有消費者配額資料都會以 serviceruntime.googleapis.com 指標類型 (例如 quota/allocation/usage) 寫入。這個指標類型含有 quota_metric 標籤,可用來篩選特定配額,例如分配用量資料。
  • 限制名稱:限制名稱會識別特定配額類型的限制。配額可能會與多個限制相關聯。舉例來說,讀取呼叫的配額可能會設有每分鐘 100 次的限制和每天 1000 次的限制,並使用 readsPerMinutereadsPerDay 這兩個限制名稱。與配額相關的指標類型可能會為這個值提供 limit_name 欄位。

所有 serviceruntime.googleapis.com/quota 指標類型都提供 quota_metric 標籤,但只有部分類型包含 limit_name 標籤。配額的資源專屬指標類型包含 limit_name 標籤。

只有部分 Google Cloud 服務支援配額指標。如要判斷服務是否支援配額指標,並找出配額專屬標籤的值,請按照下列步驟操作:

  1. 在 Google Cloud 控制台,依序前往「Quotas & System Limits」(配額與系統限制) 頁面:

    前往「配額與系統限制

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM 與管理」的結果

  2. 按一下 「檢視資料欄」,然後在配額顯示畫面中新增下列資料欄:

    • 指標:這個欄會顯示 quota_metric 標籤的值。
    • 限制名稱:這個欄會顯示 limit_name 標籤的值。
    • 受控資源:填入後,配額會使用所列的受控資源。如果為空白,則配額的受控資源為 consumer_quota
  3. 找出您感興趣的配額。

    舉例來說,Compute Engine API 子網路配額會將「指標」列為 compute.googleapis.com/subnetworks,將「限制名稱」列為 SUBNETWORKS-per-project,且不會列出「監控資源」。因此,這個配額的監控資源為 consumer_quota

範例:查看特定消費者配額指標的用量

目標是建立圖表,依地區顯示 Compute Engine 的磁碟儲存空間總配額。這個消費者配額範例會擷取 quota/allocation/usage 資料,然後篩選資料,以便顯示特定配額指標的分配用量:

  1. 在 Google Cloud 控制台中,依序選取「Cloud Monitoring」(雲端監控) 和「Metrics Explorer」(Metrics Explorer)。

  2. 在工具列中展開時間範圍選單,然後選取「過去 14 天」

  3. 展開「小工具類型」選單,然後選取「堆疊長條圖」

  4. 設定 Metrics Explorer 以顯示配額用量:

    1. 按一下「選取指標」,然後在 「篩選列」中輸入 allocation
    2. 為資源選取「消費者配額」
    3. 在指標類別中選取「配額」
    4. 選取指標的「分配配額使用量」,然後點選「套用」
    5. 展開「Aggregation」選單,然後選取「Unaggregated」

    選取消費者配額。

    圖表會以六週期間的長條圖顯示分配配額使用情形。查看圖例後,您會發現圖表顯示多項服務的配額使用情形。

    如果您使用 Cloud Monitoring API,則等效的篩選器值如下:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota"
    

    如要查看這個篩選器值,請展開「資源類型」選單,然後選取「直接篩選器模式」

  5. 如要將圖表限制為 Compute Engine 服務,請新增篩選器 service = compute.googleapis.com

    依運算服務篩選消費者配額。

    如果您使用 Cloud Monitoring API,則等效的篩選器值如下:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" resource.label.service="compute.googleapis.com"
    

    圖表現在會顯示 Compute Engine 配額的已分配配額用量時間序列。圖例會顯示每個顯示時間序列的 quota_metric 標籤值。這個值會識別特定配額。舉例來說,compute.googleapis.com/disks_total_storage 會識別 Compute Engine 的磁碟儲存空間總配額時間序列。

    圖表只會顯示已記錄使用情形的配額。舉例來說,如果專案沒有任何 Compute Engine 資源,則會在沒有資料的圖表中篩選 compute.googleapis.com 服務結果。

  6. 如要建立顯示 Compute Engine 磁碟儲存空間配額總用量的圖表,請使用篩選器 quota_metric = compute.googleapis.com/disks_total_storage

    依配額指標篩選消費者配額。

    如果您使用 Cloud Monitoring API,則等效的篩選器值如下:

    metric.type="serviceruntime.googleapis.com/quota/allocation/usage" resource.type="consumer_quota" metric.label.quota_metric="compute.googleapis.com/disks_total_storage"
    
  7. 上方圖表顯示 us-central1us-east1 區域的時間序列,以及包括 us-central1-a 在內的多個可用區。

    如要進一步調整圖表,只顯示區域資料而非區域區域,請根據 location 標籤新增篩選器。在這個範例中,兩個區域的前置字元都是 us-,結尾則是 1,因此使用規則運算式 location =~ ^us.*1$ 的篩選器就能正常運作:

    依據配額指標和區域進行篩選。

針對消費者配額,quota_metric 標籤的值會識別服務和正在監控的特定配額用量。建立監控特定配額指標的圖表或快訊政策時,您會使用這項資訊。

Cloud Monitoring 中的快訊政策

快訊政策是一種設定監控功能的方式,可在某些情況 (例如達到配額上限的 85%) 發生時通知您。

快訊政策是一組條件和通知資訊:

  • 條件會說明所監控的項目、如何合併該資源的時序資料,以及產生事件的時機。警示政策至少須指定一個條件。
  • 通知管道會指定事件發生時要通知誰,以及通知方式。舉例來說,您可以設定警示政策,將電子郵件傳送給特定使用者或一群使用者。

您可以使用兩種技巧建立警示政策條件:

  • 使用監控篩選器選取及操作資料。舉例來說,如果您使用圖形介面建立快訊政策條件,就等同於建立篩選器。使用配額指標一文中的範例使用篩選器選取圖表資料。您也可以在 Monitoring API 要求中使用篩選器。

  • 使用 MQL 選取及操縱資料。MQL 是一種以文字為主的查詢語言。您可以使用 MQL 程式碼編輯器,建立無法透過篩選器技術建立的查詢。建議您使用 MQL 建立以比率為準的警示政策。詳情請參閱「MQL 快訊政策範例」。

本頁將討論這兩種技術。您也可以使用這兩種技巧建立圖表。

篩選快訊政策範例

在本節中,每個子節都包含警示政策的 JSON 表示法,以及一對表格,說明如何在 Google Cloud 控制台中設定政策:

  • 第一個表格說明瞭要監控的項目,以及如何彙整資料。
  • 第二個表格說明事件的產生時機。

這些範例適用於以篩選器為基礎的方法。

這些政策都不會計算比率。如需比率相關範例,請參閱 MQL 快訊政策範例

針對 quota/exceeded 錯誤發出快訊

您可以建立快訊政策,在Google Cloud 專案中的任何服務回報配額超出錯誤時收到通知。您可以使用 Google Cloud 控制台或 Cloud Monitoring API 建立這類政策。

使用 Google Cloud 主控台

本子節的其餘內容是針對快訊政策的條件對話方塊。

按照下表中的設定,完成「新條件」對話方塊的設定。這些設定會指定您想監控 Google Cloud 專案中所有服務的 serviceruntime 指標 /quota/exceeded 的時間序列資料,以及您想依配額限制分組資料。

「New condition」對話方塊
欄位

資源和指標 在「資源」選單中,選取「消費者配額」
在「指標類別」選單中,選取「配額」
在「指標」選單中,選取「超過配額的錯誤」

(metric.typeserviceruntime.googleapis.com/quota/exceeded
resource.typeconsumer_quota)。
篩選

新增篩選器,讓圖表只顯示您要監控的服務資料。舉例來說,如要監控 Identity and Access Management 服務,請新增下列篩選器:service = iam.googleapis.com

如果篩選欄位為空白,圖表中就會納入所有可用的指標資料。

滾動週期 選取 1 m
滾動週期函式 選取 count true

這個指標的類型為 GAUGE,表示時間序列中的每個資料點都是即時測量值。值類型為 BOOL。如果值為 true,表示已超出配額。

對於這個指標,count truecount 的累計範圍函式是等同的。

跨時間序列
時間序列匯總

選取「sum」。

當資料進行分組時,匯總欄位會自動設為 sum。這個設定會定義如何合併個別時間序列中的資料。

跨時間序列
時間序列分組依據

選取「quota_metric」。

這個選項會根據 quota_metric 的名稱類型分組資料。

按照下列設定,完成「設定觸發條件」對話方塊。這些設定會讓快訊政策在 1 分鐘內的超出配額錯誤數量超過 0 時,建立快訊。這裡選取 0 的值,是因為配額超出錯誤是意料之外的情況,表示需要增加配額,或需要修改服務以減少 API 要求。建議您使用較高的門檻。

「設定觸發條件」對話方塊
欄位

條件類型 Threshold
快訊觸發條件 Any time series violates
門檻位置 Above threshold
門檻值 0
重新測試週期 1 公尺

使用 Cloud Monitoring API

您可以使用 API 方法 alertPolicies.create 建立這項快訊政策。您可以使用 Google Cloud CLI 或用戶端程式庫,直接叫用 Cloud Monitoring API。詳情請參閱「建立政策」。

如要瞭解如何以 JSON 或 YAML 格式表示快訊政策,請參閱範例政策

以下是這項快訊政策的 JSON 格式表示法。


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "60s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_COUNT_TRUE"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "60s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/exceeded\" resource.type=\"consumer_quota\"",
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Quota exceeded error by label.quota_metric SUM",
      }
    ],
    "displayName": "Quota exceeded policy",
  }

針對絕對 quota/allocation/usage 發出快訊

您可以建立快訊政策,在Google Cloud 專案中特定服務的分配配額用量超過使用者指定的門檻時通知您。您可以使用 Google Cloud 控制台或 Cloud Monitoring API 建立這類政策。

使用 Google Cloud 主控台

本子節的其餘內容是針對快訊政策的條件對話方塊。

按照下表中的設定,完成「新條件」對話方塊的設定。這些設定會指定您要監控 Google Cloud 專案中某項服務的 serviceruntime 指標 /quota/allocation/usage 的時間序列資料,以及您要依配額限制分組資料。

「New condition」對話方塊
欄位

資源和指標 在「資源」選單中,選取「消費者配額」
在「指標類別」選單中,選取「配額」
在「指標」選單中,選取「分配配額使用量」

(metric.typeserviceruntime.googleapis.com/quota/allocation/usage
resource.typeconsumer_quota)。
篩選

新增篩選器,讓圖表只顯示您要監控的服務資料。舉例來說,如要監控 Identity and Access Management 服務,請新增下列篩選器:service = iam.googleapis.com

如果篩選欄位為空白,圖表中就會納入所有可用的指標資料。

滾動週期 選取 1440 m

這項指標的取樣間隔。

滾動週期函式 選取 next older

滾動式時間窗口函式設為 next older,以便納入此 GAUGE 指標的最新測量值。

跨時間序列
時間序列匯總

選取「sum」。

當資料進行分組時,匯總欄位會自動設為 sum。這個設定會定義如何合併個別時間序列中的資料。

跨時間序列
時間序列分組依據

選取「quota_metric」。

這個選項會根據 quota_metric 的名稱類型分組資料。

按照下列設定完成「設定觸發條件」對話方塊。這些設定會導致快訊政策在 1440 分鐘內,只要時間序列的值超過 2.5,就會建立快訊。值 1440 公尺與滾動視窗相符。這個範例選用 2.5 的值,是因為這個值略高於測試系統的正常值。您應根據要監控的服務,以及對指標預期值範圍的瞭解,來選取閾值。

「設定觸發條件」對話方塊
欄位

條件類型 Threshold
快訊觸發條件 Any time series violates
門檻位置 Above threshold
門檻值 2.5
重新測試週期 1440 公尺

使用 Cloud Monitoring API

您可以使用 API 方法 alertPolicies.create 建立這項快訊政策。您可以使用 Google Cloud CLI 或用戶端程式庫,直接叫用 Cloud Monitoring API。詳情請參閱「建立政策」。

如要瞭解如何以 JSON 或 YAML 格式表示快訊政策,請參閱範例政策

以下是這項快訊政策的 JSON 格式表示法。


{
    "combiner": "OR",
    "conditions": [
      {
        "conditionThreshold": {
          "aggregations": [
            {
              "alignmentPeriod": "86400s",
              "crossSeriesReducer": "REDUCE_SUM",
              "groupByFields": [
                "metric.label.quota_metric"
              ],
              "perSeriesAligner": "ALIGN_NEXT_OLDER"
            }
          ],
          "comparison": "COMPARISON_GT",
          "duration": "86400s",
          "filter": "metric.type=\"serviceruntime.googleapis.com/quota/allocation/usage\" resource.type=\"consumer_quota\" resource.label.\"service\"=\"iam.googleapis.com\"",
          "thresholdValue": 2.5,
          "trigger": {
            "count": 1
          }
        },
        "displayName": "Allocation quota usage for iam.googleapis.com by label.quota_metric SUM",
      }
    ],
    "displayName": "Absolute quota usage policy",
  }

MQL 快訊政策範例

MQL 是一種以文字為基礎的查詢語言,使用一系列以管道連結的運算。相較於 Monitoring 篩選器,您可以使用 MQL 建立功能更強大且彈性的查詢。建議您使用 MQL 設定以比率為準的警示政策。舉例來說,您可以使用 MQL 設定費率配額使用率,這需要計算量測指標 (限制) 和差異指標 (費率) 的比例。

您可以使用 Google Cloud 主控台或 Monitoring API 建立以 MQL 為基礎的快訊政策:

  • Google Cloud 控制台:建立快訊條件時,請使用 MQL 程式碼編輯器。如要開啟程式碼編輯器,請在「Create alerting policy」對話方塊的工具列中,按一下 「Query Editor」。如要進一步瞭解如何使用這個編輯器,請參閱「使用 MQL 程式碼編輯器」。

  • Monitoring API:使用 alertPolicies.create 方法,並提供 MonitoringQueryLanguageCondition 類型的條件。這個條件類型會將 MQL 查詢做為欄位值。如要進一步瞭解如何使用 Monitoring API 和 MQL,請參閱「建立 MQL 快訊政策的條件」一文。

如要瞭解 MQL 的特定資訊,請參閱「使用 Monitoring Query Language」。如要進一步瞭解以 MQL 為基礎的快訊政策,請參閱「使用 MQL 的快訊政策」。

監控頻率配額與配額限制比率的警告政策

下列 MQL 查詢模式說明瞭警示政策,當特定資源服務的每分鐘使用率超過特定限制的 80%,系統就會傳送通知:

fetch consumer_quota
| filter resource.service == 'sample.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/rate/net_usage
    | align delta_gauge(1m)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        sum(value.net_usage)
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'Limit'
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        sliding(1m), max(val()) }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

如要使用這個查詢模式,請進行下列變更:

  • sample.googleapis.com 替換為要監控的服務。
  • Limit 替換為 metric.limit_name 的限制值。如要瞭解如何找出限制名稱,請參閱「找出配額指標和限制名稱」一文。
  • delta_gaugesliding 函式中的 1m 替換為適合限制的時間範圍。

請勿修改 every 1m 作業,因為這會決定查詢結果中資料點之間的距離。

您無法使用篩選器建立這項查詢。

監控含有萬用字元的費率配額比率的快訊政策

MQL 支援使用萬用字元、規則運算式和布林邏輯進行篩選。舉例來說,您可以使用 MQL 建立快訊政策,追蹤多個限制,並在任何限制超出門檻時發出警告。

以下 MQL 查詢模式說明瞭快訊政策,當任何資源服務的每分鐘或每日使用率超過 80%,系統就會傳送通知:

fetch consumer_quota
| filter resource.service =~ '.*'
| { { metric serviceruntime.googleapis.com/quota/rate/net_usage
      | align delta_gauge(1m)
      | group_by [resource.project_id, metric.quota_metric, resource.location],
          sum(value.net_usage)
    ; metric serviceruntime.googleapis.com/quota/limit
      | filter metric.limit_name =~ '.*PerMinute.*'
      | group_by [resource.project_id, metric.quota_metric, resource.location],
          sliding(1m), max(val()) }
    | ratio
  ; { metric serviceruntime.googleapis.com/quota/rate/net_usage
      | align delta_gauge(23h)
      | group_by [resource.project_id, metric.quota_metric, resource.location],
          sum(value.net_usage)
    ; metric serviceruntime.googleapis.com/quota/limit
      | filter metric.limit_name =~ '.*PerDay.*'
      | group_by [resource.project_id, metric.quota_metric, resource.location],
          sliding(23h), max(val()) }
    | ratio }
| union
| every 1m
| condition gt(val(), 0.8 '1')

在先前的查詢中,delta_gauge 對齊器的引數設為 23 小時,而非 1 天。MQL 只能要求 23 小時 30 分鐘的資料,而為了計算方便,delta_gauge 對齊器會在對齊期間增加一小時。如果您使用 delta_gauge(1d),則無法儲存條件,因為條件需要 25 小時的資料。這項行為與 next_older 對齊器不同,後者不會在對齊期間填入空格。

如要使用這個查詢模式,請進行下列變更:

  • resource.service 的規則運算式替換為您要追蹤的服務規則運算式。
  • 在第一個比率中:
    • .*PerMinute.* 替換為 metric.limit_name,並使用規則運算式替換您要追蹤的第一組限制。如要瞭解如何找出限制名稱,請參閱「找出配額指標和限制名稱」一文。
    • delta_gaugesliding 函式中的 1m 替換為適合您限制的視窗。
  • 在第二個比率中:
    • .*PerDay.* 替換為 metric.limit_name,並使用規則運算式替換您要追蹤的第二組限制。
    • delta_gaugesliding 函式中的 23h 替換為適合您限制的視窗。

請勿修改 every 1m 作業,因為這會決定查詢結果中資料點之間的距離。

您無法使用篩選器建立這項查詢。

針對某個限制的分配配額使用率發出警告

以下 MQL 查詢模式說明瞭警示,可監控特定資源服務的每日分配用量是否超過特定限制的 80%:

fetch consumer_quota
| filter resource.service == 'sample.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'Limit'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

如要使用這個查詢模式,請進行下列變更:

  • sample.googleapis.com 替換為要監控的服務。
  • Limit 替換為 metric.limit_name 的限制值。如要瞭解如何找出限制名稱,請參閱「找出配額指標和限制名稱」一文。

請勿修改 every 1m 作業,因為這會決定查詢結果中資料點之間的距離。

範例:任何區域的 CPU 使用率為 75%

下列查詢會建立快訊政策,當 Compute Engine VM 執行個體的 CPU 使用率超過任何區域限制的 75%,就會觸發這項政策:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-region'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.75 '1')

這項消費者配額政策會使用 Compute Engine API 中的「CPU」配額的 CPUS-per-project-region 限制名稱。如要瞭解如何找出限制名稱,請參閱「找出配額指標和限制名稱」一文。

監控任何服務的分配配額比率的快訊政策

MQL 支援使用萬用字元、規則運算式和布林邏輯進行篩選。舉例來說,您可以使用 MQL 建立快訊,追蹤多個限制或服務,並在任何限制或服務超過閾值時發出警告。

以下 MQL 查詢說明瞭快訊,用於監控任何資源服務的每日分配用量是否超過任何配額限制的 80%:

fetch consumer_quota
| filter resource.service =~ '.*'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

您可以使用這個查詢,也可以將 resource.service 的規則運算式替換為要追蹤的服務規則運算式。您也可以篩選特定服務,並在限制篩選器中使用萬用字元。

請勿修改 every 1m 作業,因為這會決定查詢結果中資料點之間的距離。

範例:特定區域的 CPU 使用率超過 50%

下列查詢會建立快訊政策,當 Compute Engine VM 執行個體的 CPU 用量超過 us-central1 區域中限制值的 50%,就會觸發這項政策。這項查詢會根據限制名稱和資源位置篩選 limit 資料:

fetch consumer_quota
| filter resource.service == 'compute.googleapis.com'
| { metric serviceruntime.googleapis.com/quota/allocation/usage
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        max(val())
  ; metric serviceruntime.googleapis.com/quota/limit
    | filter metric.limit_name == 'CPUS-per-project-zone' &&
              resource.location =~ 'us-central1-.*'
    | align next_older(1d)
    | group_by [resource.project_id, metric.quota_metric, resource.location],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.50 '1')

這項消費者配額政策會使用 Compute Engine API 中的「CPU」配額的 CPUS-per-project-zone 限制名稱。如要瞭解如何找出限制名稱,請參閱「找出配額指標和限制名稱」一文。

使用資源專屬配額的比率警示

您可以使用 MQL 為特定資源的配額相關指標設定比率。在這種情況下,您會指定特定服務的監控資源,並針對一對資源專屬的配額相關指標計算比率。

以下查詢模式說明警示,用於監控配額使用量是否超過上限的 80%:

fetch sample.googleapis.com/SampleResource
  | { metric sample.googleapis.com/quota/samplemetric/usage
    | align next_older(1d)
    | group_by [resource.label_1, ... , resource.label_n,
                metric.label_1, ... , metric.label_n],
        max(val())
  ; metric sample.googleapis.com/quota/samplemetric/limit
    | align next_older(1d)
    | group_by [resource.label_1, ... , resource.label_n,
                metric.label_1, ... , metric.label_n],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.8 '1')

如要使用這個查詢模式,請進行下列變更:

  • sample.googleapis.com 替換為要監控的服務。
  • sampleResource 替換為相關聯的受控資源。
  • samplemetric 替換為一組指標類型的字串。
  • group_by 作業中,列出每個資源和指標標籤。

範例:任何區域的 CPU 使用率為 75%

舉例來說,下列 MQL 查詢會設定快訊,監控任何網路 ID 的 Compute Engine instances_per_vpc_network 配額使用率是否超過 80%:

fetch compute.googleapis.com/VpcNetwork
| { metric compute.googleapis.com/quota/instances_per_vpc_network/usage
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        max(val())
  ; metric compute.googleapis.com/quota/instances_per_vpc_network/limit
    | align next_older(1d)
    | group_by [resource.resource_container, metric.limit_name,
                resource.location, resource.network_id],
        min(val())
  }
| ratio
| every 1m
| condition gt(val(), 0.80 '1')

請注意,這個查詢使用的是資源類型 compute.googleapis.com/VpcNetwork,而非 consumer_quota,且會計算兩個 compute.googleapis.com/quota/instances_per_vpc_network 指標 (usagelimit) 的比例。

圖表範例

圖表會顯示時間序列資料。您可以使用 Metrics Explorer 建立圖表。您可以使用 Metrics Explorer 捨棄不再需要的圖表,也可以將圖表儲存到資訊主頁。您可以在資訊主頁檢視畫面中,將圖表新增至資訊主頁。

如果您只想設定顯示配額資料的圖表,可以使用「新條件」表格中的設定。警告觸發條件使用的符號與圖表工具不同。圖表工具包括 Metrics Explorer,以及在自訂資訊主頁上設定圖表:
「New condition」對話方塊
欄位名稱
圖表
滾動週期函式

根據所選指標和匯總設定,以最佳方式設定。

如要指定對齊函式,請執行下列操作:

  1. 在「Aggregation」元素中,展開第一個選單,然後選取「Configure aligner」。新增對齊函式群組元素。
  2. 展開「對齊功能」元素,然後選取所需選項。

滾動週期 時間間隔下限
(如要存取,請按一下 「新增查詢元素」)
時間序列分組依據
(位於「跨時間序列」部分)
「Aggregation」元素的第二個選單
時間序列匯總
(位於「跨時間序列」部分)
Aggregation 元素的第一個選單

quota/rate/net_usage 的時間序列

如要查看 Google Cloud 專案中所有服務的 serviceruntime 指標 quota/rate/net_usage 時序資料,並以配額指標名稱分組資料並顯示使用率,請使用下列設定:

「New condition」對話方塊
欄位

資源和指標 在「資源」選單中,選取「消費者配額」
在「指標類別」選單中,選取「配額」
在「指標」選單中,選取「頻率配額用量」

(metric.typeserviceruntime.googleapis.com/quota/rate/net_usage
resource.typeconsumer_quota)。
篩選

新增篩選器,讓圖表只顯示您要監控的服務資料。舉例來說,如要監控 Identity and Access Management 服務,請新增下列篩選器:service = iam.googleapis.com

如果篩選欄位為空白,圖表中就會納入所有可用的指標資料。

滾動週期 選取 1 m

1 分鐘的時間範圍與這項指標的取樣間隔相符。

滾動週期函式 選取 rate

將對齊器設為 rate 的值後,這個 DELTA 指標在時間序列中儲存的值就會轉換為儲存比率資料的新時間序列。圖表的 y 軸單位為每秒配額。

跨時間序列
時間序列匯總

選取「sum」。

當資料進行分組時,匯總欄位會自動設為 sum。這個設定會定義如何合併個別時間序列中的資料。

跨時間序列
時間序列分組依據

選取「quota_metric」。

這個選項會根據 quota_metric 的名稱類型分組資料。

quota/instances_per_vpc_network/limit 的時間序列

如要查看compute.googleapis.com指標 quota/instances_per_vpc_network/limit 的時間序列資料,以及 Google Cloud 專案中所有網路的資料,請使用下列設定:

「New condition」對話方塊
欄位

資源和指標 在「Resource type」選單中,選取「VPC Network」
在「指標類別」選單中,選取「配額」
在「指標」選單中,選取「每個 VPC 網路的執行個體配額限制」

(metric.typecompute.googleapis.com/quota/instances_per_vpc_network/limit
resource.typecompute.googleapis.com/VpcNetwork)。
篩選 留空
滾動週期 選取 1 m

這項指標的取樣間隔。

滾動週期函式 選取 mean
跨時間序列
時間序列匯總
保持原狀none
跨時間序列
時間序列分組依據
留空

quota/instances_per_vpc_network/usage 的時間序列

如要查看 compute.googleapis.com 指標 quota/instances_per_vpc_network/usage 的時間序列資料,請針對 Google Cloud 專案中的其中一個聯播網,使用下列設定:

「New condition」對話方塊
欄位

資源和指標 在「Resource type」選單中,選取「VPC Network」
在「指標類別」選單中,選取「配額」
在「指標」選單中,選取「每個 VPC 網路的執行個體配額用量」

(metric.typecompute.googleapis.com/quota/instances_per_vpc_network/usage
resource.typecompute.googleapis.com/VpcNetwork)。
指標 在「Metric」選單中,選取 compute.googleapis.com/quota/instances_per_vpc_network/usage
篩選

新增篩選器,讓圖表只顯示部分資料。舉例來說,如要查看特定網路的用量,請新增下列篩選器:network_id = identifier

如果篩選欄位為空白,圖表中就會顯示所有可用的指標資料。

滾動週期 選取 1 m

這項指標的取樣間隔。

滾動週期函式 選取 mean
跨時間序列
時間序列匯總
保持原狀none
跨時間序列
時間序列分組依據
留空

MQL 圖表

您可以使用 MQL 查詢,透過 MQL 程式碼編輯器建立圖表。舉例來說,您可以將 MQL 快訊政策範例中顯示的任何查詢輸入程式碼編輯器。您可以省略每個查詢中的最後一個作業 condition,除非您要為警示政策建立條件,否則這項作業會套用。在圖表中,condition 運算不會執行任何操作。

詳情請參閱「使用 MQL 程式碼編輯器」和「MQL 範例」。