您可以创建 Monitoring 提醒来通知您 当 Dataproc 集群或作业指标超过 指定阈值。
创建提醒的步骤
要创建提醒,请执行以下操作:
打开 Google Cloud 控制台中的提醒页面。
点击 + 创建政策,打开创建提醒政策页面。
- 点击 Select Metric。
- 在“按资源或指标名称过滤”输入框中,输入“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 作业运行时间延长时触发的提醒
但这仅适用于提交到 Dataproc 的作业
通过 Google Cloud 控制台或 Google Cloud CLI,或直接调用
Dataproc jobs
API。您还可以使用 OSS 指标
设置类似的提醒来监控 YARN 应用的运行时间。
首先,介绍一些背景信息。YARN 会将运行时间指标发送到多个分桶。
默认情况下,YARN 将 60、300 和 1440 分钟作为存储桶阈值
并发出 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 分钟时,gcloud dataproc clusters create
命令
应包含以下标志:
存储桶阈值:
‑‑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 的虚拟机实例 (gce_instance) 资源下。
YARN 应用提醒设置
创建提醒政策,在应用数量达到指定值时触发 超过指定阈值的 YARN 指标。
(可选)添加过滤条件,以便在出现与模式匹配的集群时发出提醒。
配置触发提醒的阈值。
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 集群资源下找到此指标。您可以使用此指标创建提醒,
集群容量的偏离预期容量超过指定的
阈值持续时间。
以下操作可能会导致 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 会发送突发事件通知。
后续步骤
- 请参阅提醒简介。