使用 Cloud Monitoring 監控 Dataflow 管道

Cloud Monitoring 提供強大的記錄和診斷功能,Dataflow 與 Monitoring 整合後,您就能透過 Monitoring 資訊主頁存取 Dataflow 工作指標,例如工作狀態、元素數量、系統延遲 (適用於串流工作) 和使用者計數器。您也可以使用監控快訊取得各種狀況的通知,例如串流系統延遲過久或工作失敗。

事前準備

請按照 Java 教學課程Python 教學課程Go 教學課程,設定 Dataflow 專案。然後,建構及執行管道

如要在指標探索器中查看記錄,工作人員服務帳戶必須具備 roles/monitoring.metricWriter 角色。

自訂指標

您在 Apache Beam 管道中定義的任何指標,都會由 Dataflow 向 Monitoring 報告為自訂指標。Apache Beam 有三種管道指標CounterDistributionGauge

  • Dataflow 會將報告 Counter 和指標 Distribution 傳送至 Monitoring。
  • Distribution 會以四個子指標的形式回報,並加上 _MAX_MIN_MEAN_COUNT 後置字元。
  • Dataflow 不支援從 Distribution 指標建立直方圖。
  • Dataflow 大約每 30 秒會向 Monitoring 報告新增的更新。
  • 為避免衝突,所有 Dataflow 自訂指標都會匯出為 double 資料類型。
  • 為簡化作業,所有 Dataflow 自訂指標都會匯出為 GAUGE 指標種類。您可以監控 GAUGE 指標在時間範圍內的變化量,如下列 Monitoring Query Language 範例所示:

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • Dataflow 自訂指標會以 dataflow.googleapis.com/job/user_counter 形式顯示在 Monitoring 中,並附上 metric_name: metric-nameptransform: ptransform-name 標籤。

  • 為了達到向下相容的目的,Dataflow 也會將自訂指標回報給 Monitoring,並命名為 custom.googleapis.com/dataflow/metric-name

  • Dataflow 自訂指標受 Monitoring 的基數限制。

  • 每個專案最多只能有 100 個 Dataflow 自訂指標。這些指標會以 custom.googleapis.com/dataflow/metric-name 形式發布。

向 Monitoring 回報自訂指標時,會根據 Cloud Monitoring 定價計費。

使用 Metrics Explorer

使用 Monitoring 探索 Dataflow 指標。 請按照本節中的步驟操作,查看針對各個 Apache Beam 管道提供的標準指標。如要進一步瞭解如何使用 Metrics Explorer,請參閱「使用 Metrics Explorer 建立圖表」一文。

  1. 在 Google Cloud 控制台中選取「Monitoring」

    前往「Monitoring」頁面

  2. 在導覽窗格中,選取「指標探索器」

  3. 在「選取指標」窗格中,於篩選器中輸入 Dataflow Job

  4. 從顯示清單中,選取要用來查看工作的指標。

執行 Dataflow 工作時,您可能也想監控來源和接收器的指標。舉例來說,您可能想監控 BigQuery Storage API 指標。詳情請參閱「建立資訊主頁、圖表和快訊」一文,以及 BigQuery 資料移轉服務的完整指標清單

建立快訊政策和資訊主頁

Monitoring 可存取 Dataflow 相關指標。建立資訊主頁,繪製指標的時間序列圖表,並建立快訊政策,在指標達到指定值時通知您。

建立資源群組

如要輕鬆設定快訊及建構資訊主頁,請建立包含多個 Apache Beam 管道的資源群組。

  1. 在 Google Cloud 控制台中選取「Monitoring」

    前往「Monitoring」頁面

  2. 在導覽窗格中,選取「群組」

  3. 按一下 [建立群組]

  4. 輸入群組的名稱。

  5. 新增可定義群組中所含 Dataflow 資源的篩選條件。舉例來說,篩選條件可能是管道名稱的前置字串。 建立群組。

  6. 建立群組後,您將能夠查看與該群組資源相關的基本指標。

為 Dataflow 指標建立快訊政策

您可以透過 Monitoring 建立快訊,並在指標超過指定門檻時收到通知。舉例來說,當串流管道的系統延遲增幅超過預先定義值時,您就會收到通知。

  1. 在 Google Cloud 控制台中選取「Monitoring」

    前往「Monitoring」頁面

  2. 在導覽窗格中,選取「快訊」

  3. 按一下「建立政策」

  4. 在「Create new alerting policy」頁面中,定義快訊觸發條件和通知管道。
    舉例來說,如要針對 Apache Beam 管道群組 WindowedWordCount 設定系統延遲的快訊,請完成下列步驟:

    1. 按一下「Select a metric」(選取指標)
    2. 在「選取指標」欄位中,輸入 Dataflow Job
    3. 在「指標類別」部分,選取「作業」
    4. 在「指標」部分,選取「系統延遲」

    每次觸發快訊時,系統都會建立事件和對應的事件。如果您在快訊中指定通知機制 (例如電子郵件或簡訊),您也會收到通知。

建構自訂監控資訊主頁

您可以使用關聯性最高的 Dataflow 相關圖表來建構 Monitoring 資訊主頁。如要在資訊主頁中新增圖表,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中選取「Monitoring」

    前往「Monitoring」頁面

  2. 在導覽窗格中,選取「Dashboards」(資訊主頁)

  3. 按一下「Create dashboard」(建立資訊主頁)

  4. 按一下「新增小工具」

  5. 在「新增小工具」視窗中,選取「資料」的「指標」

  6. 在「選取指標」窗格中,於「指標」輸入 Dataflow Job

  7. 選取指標類別和指標。

您可以視情況新增任意數量的圖表到資訊主頁。

接收來自 Monitoring 代理程式的工作站 VM 指標

您可以使用 Monitoring 監控永久磁碟、CPU、網路和處理程序指標。執行管道時,請從 Dataflow 工作站 VM 執行個體啟用 Monitoring 代理程式。請參閱可用的 Monitoring 代理程式指標清單。

如要啟用 Monitoring 代理程式,請在執行管道時使用 --experiments=enable_stackdriver_agent_metrics 選項。工作站服務帳戶必須具備 roles/monitoring.metricWriter 角色。

如要停用 Monitoring 代理程式而不停止管道,請在不指定 --experiments=enable_stackdriver_agent_metrics 參數的情況下,啟動替換工作來更新管道。

儲存空間與保留

系統會將已完成或取消的 Dataflow 工作資訊儲存 30 天。

作業記錄會儲存在 _Default 記錄檔值區中。記錄 API 服務名稱為 dataflow.googleapis.com。如要進一步瞭解 Cloud Logging 中使用的受監控資源類型和服務,請參閱「受監控資源和服務」。 Google Cloud

如要進一步瞭解 Logging 保留記錄項目的時間長度,請參閱配額與限制:記錄保留期限中的保留說明。

如要瞭解如何查看作業記錄,請參閱「監控及查看管道記錄」。

後續步驟

如要進一步瞭解,請考慮探索下列資源: