建立 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 狀態超過時間門檻時收到通知。

設定工作時間長度快訊

這個範例使用 Monitoring Query Language (MQL) 建立快訊政策 (請參閱「建立 MQL 快訊政策 (主控台)」)。

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'RUNNING'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

在下列範例中,如果工作執行時間超過 30 分鐘,就會觸發快訊。

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

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'RUNNING')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

長時間執行的 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 指標 bucket 中的應用程式數量超過指定門檻時接收通知。

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

    • 設定觸發快訊的門檻。

Dataproc 工作失敗快訊

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

無法設定工作機會快訊

這個範例使用 Monitoring Query Language (MQL) 建立快訊政策 (請參閱「建立 MQL 快訊政策 (主控台)」)。

快訊 MQL
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'ERROR'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
快訊觸發條件設定

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

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

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'ERROR')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

叢集容量偏差快訊

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

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

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

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

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

設定容量偏差快訊

這個範例使用 Monitoring Query Language (MQL) 建立快訊政策

fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'

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

查看快訊

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

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

後續步驟