建立 Dataproc 指標快訊

您可以建立 Monitoring 快訊,在 Dataproc 叢集或工作指標超過指定門檻時收到通知。

建立警告

  1. 在 Google Cloud 控制台中開啟「Alerting」(警告) 頁面。

  2. 按一下「+ 建立政策」,開啟「建立快訊政策」頁面。

    1. 按一下「選取指標」
    2. 在「依據資源或指標名稱篩選」輸入方塊中,輸入「dataproc」列出 Dataproc 指標。在 Cloud Dataproc 指標的階層中導覽,選取叢集、工作、批次或工作階段指標。
    3. 按一下「套用」
    4. 按一下「下一步」,開啟「設定快訊觸發條件」窗格。
    5. 設定觸發快訊的門檻值。
    6. 按一下「下一步」,開啟「設定通知並完成快訊」窗格。
    7. 設定通知管道、說明文件和快訊政策名稱。
    8. 點選「下一步」查看快訊政策。
    9. 按一下「建立政策」即可建立快訊。

警報範例

本節說明提交至 Dataproc 服務的工作範例快訊,以及以 YARN 應用程式執行的工作快訊。

長時間執行的 Dataproc 工作快訊

Dataproc 會發出 dataproc.googleapis.com/job/state 指標,追蹤工作處於不同狀態的時間長度。這個指標位於 Google Cloud 控制台的 Metrics Explorer 中,屬於 Cloud Dataproc Job (cloud_dataproc_job) 資源。您可以根據這項指標設定快訊,在工作 RUNNING 狀態超過時間門檻時收到通知 (門檻上限為 7 天)。如要為預計執行超過 7 天的工作設定快訊,請參閱「長時間執行的 YARN 應用程式快訊」。

設定工作時間長度快訊

這個範例使用 Prometheus 查詢語言 (PromQL) 建立快訊政策。詳情請參閱「建立以 PromQL 為基礎的快訊政策 (主控台)」。

sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING"
}) != 0

如要設定在工作執行時間超過 30 分鐘時觸發這項快訊,請在「設定觸發條件」分頁中,將「評估間隔」設為 30 分鐘。

您可以篩選 job_id 來修改查詢,將查詢套用至特定工作:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING",
  "job_id"="1234567890"
}) != 0

長時間執行的 YARN 應用程式警示

上一個範例顯示的快訊會在 Dataproc 工作執行時間超過指定時長時觸發,但僅適用於透過 Google Cloud 主控台、Google Cloud CLI 或直接呼叫 Dataproc jobs API 提交至 Dataproc 服務的工作。您也可以使用 OSS 指標設定類似的快訊,監控 YARN 應用程式的執行時間。

首先,請先瞭解一些背景資訊。YARN 會將執行時間指標發布至多個 bucket。根據預設,YARN 會將 60、300 和 1440 分鐘設為 bucket 閾值,並發出 4 個指標:running_0running_60running_300running_1440

  • running_0 會記錄執行時間介於 0 到 60 分鐘之間的工作數量。

  • running_60 會記錄執行時間介於 60 到 300 分鐘之間的工作數量。

  • running_300 記錄執行時間介於 300 到 1440 分鐘之間的工作數量。

  • running_1440 會記錄執行時間超過 1440 分鐘的工作數量。

舉例來說,如果工作執行時間為 72 分鐘,系統會記錄在 running_60 中,但不會記錄在 running_0 中。

如要修改這些預設值區門檻,請在建立 Dataproc 叢集時,將新值傳遞至yarn:yarn.resourcemanager.metrics.runtime.buckets 叢集屬性。定義自訂區間門檻時,也必須定義指標覆寫。舉例來說,如要指定 30、60 和 90 分鐘的 bucket 門檻,gcloud dataproc clusters create 指令應包含下列旗標:

  • bucket 門檻:‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • 指標覆寫:‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

叢集建立指令範例

gcloud dataproc clusters create test-cluster  \
   --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90  \
   --metric-sources=yarn  \
   --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90

這些指標會列在 Google Cloud 控制台的 Metrics Explorer 中,位於「VM Instance」(VM 執行個體) (gce_instance) 資源下方。

設定 YARN 應用程式快訊

  1. 建立叢集,並啟用所需值區和指標

  2. 建立快訊政策,以便在 YARN 指標值區中的應用程式數量超過指定門檻時接收通知。

    • 視需要新增篩選器,針對符合模式的叢集發出快訊。

    • 設定觸發快訊的門檻。

Dataproc 工作失敗快訊

您也可以使用 dataproc.googleapis.com/job/state 指標 (請參閱「長時間執行的 Dataproc 工作快訊」),在 Dataproc 工作失敗時收到快訊。

無法設定工作機會快訊

這個範例使用 Prometheus 查詢語言 (PromQL) 建立快訊政策。詳情請參閱「建立以 PromQL 為基礎的快訊政策 (主控台)」。

警報 PromQL
sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR"
}) != 0
快訊觸發條件設定

在下列範例中,只要專案中有任何 Dataproc 工作失敗,就會觸發快訊。

您可以篩選 job_id 來修改查詢,將查詢套用至特定工作:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR",
  "job_id"="1234567890"
}) != 0

叢集容量偏差快訊

Dataproc 會發出 dataproc.googleapis.com/cluster/capacity_deviation 指標,回報叢集中的預期節點數量與作用中 YARN 節點數量之間的差異。您可以在Google Cloud 控制台的「Metrics Explorer」中,找到「Cloud Dataproc Cluster」資源下的這項指標。您可以根據這項指標建立快訊,在叢集容量偏離預期容量的時間超過指定門檻時收到通知。

下列作業可能會導致 capacity_deviation 指標暫時低估叢集節點。為避免誤判快訊,請設定指標快訊門檻,將下列作業納入考量:

  • 叢集建立和更新:叢集建立或更新作業期間不會發出 capacity_deviation 指標。

  • 叢集初始化動作:節點佈建完成後,系統會執行初始化動作。

  • 次要工作站更新:更新作業完成後,系統會非同步新增次要工作站。

設定容量偏差快訊

這個範例使用 Prometheus 查詢語言 (PromQL) 建立快訊政策。詳情請參閱「建立以 PromQL 為基礎的快訊政策 (主控台)」。

{
  "__name__"="dataproc.googleapis.com/cluster/capacity_deviation",
  "monitored_resource"="cloud_dataproc_cluster"
} != 0

在下一個範例中,如果叢集容量偏差值超過 30 分鐘不為零,就會觸發警報。

查看快訊

當指標門檻條件觸發快訊時,Monitoring 會建立事件和對應的事件。您可以在 Google Cloud 控制台的「Monitoring alerting」(監控快訊) 頁面中查看事件。

如果您在快訊政策中定義了通知機制,例如電子郵件或簡訊通知,則 Monitoring 會傳送事件通知。

後續步驟