自訂 Dataflow 監控資訊主頁

本頁面說明如何新增查詢 Cloud Monitoring 指標的圖表,自訂 Dataflow 專案監控資訊主頁

專案監控資訊主頁可讓您監控一系列作業,並查看整體健康狀態和效能。資訊主頁包含一組預設圖表,適用於大多數工作負載。自訂資訊主頁後,您就能新增符合業務需求的圖表。

範例情境

為說明如何自訂資訊主頁,假設某個機構想追蹤專案中前 25 項工作的預估費用。

在這個情境中,假設工作具有下列特徵:

選擇指標

根據上一節列出的假設,預估工作費用時需要下列指標:

資源相關指標
CPU (每小時每個 vCPU) job/total_vcpu_time
記憶體 (每小時 GB) job/total_memory_usage_time
Shuffle 期間處理的資料量 (GB) job/total_streaming_data_processed
永久磁碟用量 (每小時 GB 數,標準與 SSD) job/total_pd_usage_time

詳情請參閱 Dataflow 定價

如要瞭解 Monitoring 中可用的資源,請參閱受控資源類型

撰寫 PromQL 查詢

如要查詢 Cloud Monitoring 中的指標,請使用 Prometheus Query Language (PromQL)。本節說明如何從較小的子句建構 PromQL 查詢,以因應特定情境。本節不會假設您已具備 PromQL 的知識。詳情請參閱「在 Cloud Monitoring 中使用 PromQL」。

將指標名稱對應至 PromQL 字串

如要在 PromQL 查詢中使用 Monitoring 指標,您必須將指標名稱對應至 PromQL 字串,如下所示:

指標名稱PromQL 字串
job/total_vcpu_time dataflow_googleapis_com:job_total_vcpu_time
job/total_memory_usage_time dataflow_googleapis_com:job_total_memory_usage_time
job/total_streaming_data_processed dataflow_googleapis_com:job_total_streaming_data_processed
job/total_pd_usage_time dataflow_googleapis_com:job_total_pd_usage_time

詳情請參閱將 Cloud Monitoring 指標對應至 PromQL

建立查詢

如要取得預估費用,請根據各項指標的最新值,計算每個元件的價格。系統每 60 秒會取樣一次指標,因此如要取得最新值,請使用 1 分鐘的視窗函式,並擷取每個視窗中的最大值。

  • 如要取得預估 CPU 費用,請先將 job/total_vcpu_time 從秒數換算為小時。乘以每小時每個 vCPU 的 CPU 價格。

    # ((vCPU time)[Bucket 1m] / Seconds per hour * vCPU Price)
    max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    

    這個公式會估算專案中所有工作的 CPU 費用。如要取得每項工作的預估 CPU 費用,請使用 sum 匯總運算子,並依工作 ID 分組。

    sum(
      max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    ) by (job_id)
    
  • 如要取得預估記憶體費用,請將秒數轉換為小時。job/total_memory_usage_time乘以每 GB 時數的記憶體價格,並依工作 ID 分組。

    #((Memory time)[Bucket 1m] / Seconds per hour) * Memory Price
    sum(
      max_over_time(dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
    ) by (job_id)
    
  • 如要取得預估重組費用,請將job/total_streaming_data_processed從位元組轉換為 GB。乘以每 GB 的 Shuffle 資料處理價格,並依工作 ID 分組。

    # Shuffle Billing. Reported once every 60 seconds, measured in bytes.
    # Formula: (Shuffle Data)[Bucket 1m] / (Bytes in GB) * (Shuffle Price)
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_streaming_data_processed[1m]
     ) / 1000000000 * SHUFFLE_PRICE
    ) by (job_id)
    
  • 如要估算永久磁碟用量費用,請在 storage_type 標籤上建立索引,依磁碟類型 (標準或 SSD) 分類。將每個值從 GB-seconds 轉換為 GB-hours,並依工作 ID 分組。

    # Formula: ((Standard PD time)[Bucket 1m] / Seconds per hour) * Standard PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]
      ) / 3600 * STANDARD_PD_PRICE
    ) by (job_id)
    
    # Formula: ((SSD PD time)[Bucket 1m] / Seconds per hour) * SSD PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]
      ) / 3600 * SSD_PD_PRICE
    ) by (job_id)
    
  • 將先前的值加總,即可得出每項工作的預估費用。如要取得前 25 項工作,請使用前 K 篩選器:

    topk(25,
      # Sum the individual values.
    )
    

撰寫完整查詢

完整查詢如下:

topk(25,
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_streaming_data_processed[1m]) / 1000000000 * SHUFFLE_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]) / 3600 * STANDARD_PD_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]) / 3600 * SSD_PD_PRICE
  )
  by (job_id)
)

請將下列變數替換為您所在區域的Dataflow 價格頁面值。

  • CPU_PRICE:CPU 價格,每小時每個 vCPU
  • MEMORY_PRICE:記憶體價格,每 GB 每小時
  • SHUFFLE_PRICE:隨機價格,以 GB 為單位
  • STANDARD_PD_PRICE:標準永久磁碟價格,每 GB 每小時
  • SSD_PD_PRICE:SSD 永久磁碟價格,每 GB 每小時

編輯資訊主頁

如果您先前未在這個專案中為 Dataflow 建立自訂資訊主頁,請按照下列步驟建立:

  1. 在 Google Cloud 控制台中,依序前往「Dataflow」>「Monitoring」(監控) 頁面。

    前往「Monitoring」頁面

  2. 在「預先定義」下拉式選單中,按一下「自訂資訊主頁」

  3. 選用:在「自訂檢視畫面名稱」方塊中輸入資訊主頁的名稱。

如果您先前已建立自訂資訊主頁,請按照下列步驟編輯資訊主頁:

  1. 在 Google Cloud 控制台中,依序前往「Dataflow」>「Monitoring」(監控) 頁面。

    前往「Monitoring」頁面

  2. 在「預先定義」下拉式選單中,選取自訂資訊主頁。

  3. 按一下「編輯資訊主頁」

新增指標圖表

如要在資訊主頁中新增指標圖表,請執行下列步驟:

  1. 按一下「新增小工具」
  2. 在「新增小工具」窗格中,選取「指標」
  3. 在「小工具標題」方塊中,輸入圖表的標題,例如 Estimated cost (top 25)
  4. 按一下 「PromQL」
  5. 貼上先前顯示的 PromQL 查詢。
  6. 點選「執行查詢」
  7. 按一下 [套用]
  8. 選用:將圖表拖曳到資訊主頁上的所需位置。

後續步驟