您可以建立 Monitoring 快訊,在 Dataproc 叢集或工作指標超過指定門檻時收到通知。
建立快訊
按一下「+ 建立政策」,開啟「建立快訊政策」頁面。
- 按一下「選取指標」。
- 在「依據資源或指標名稱篩選」輸入方塊中,輸入「dataproc」列出 Dataproc 指標。在 Cloud Dataproc 指標的階層中導覽,選取叢集、工作、批次或工作階段指標。
- 按一下 [套用]。
- 按一下「下一步」,開啟「設定快訊觸發條件」窗格。
- 設定觸發快訊的門檻值。
- 按一下「下一步」開啟「設定通知並完成快訊」窗格。
- 設定通知管道、說明文件和快訊政策名稱。
- 點選「下一步」查看快訊政策。
- 按一下「建立政策」即可建立快訊。
警報範例
本節說明提交至 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_0
、running_60
、running_300
和 running_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 應用程式快訊
建立警告政策,以便在 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 會傳送事件通知。
後續步驟
- 請參閱「快訊簡介」。