创建 Dataproc 指标提醒

您可以创建 Monitoring 提醒来通知您 当 Dataproc 集群或作业指标超过 指定阈值。

创建提醒的步骤

要创建提醒,请执行以下操作:

  1. 打开 Google Cloud 控制台中的提醒页面。

  2. 点击 + 创建政策,打开创建提醒政策页面。

    1. 点击 Select Metric
    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 作业运行时间延长时触发的提醒 但这仅适用于提交到 Dataproc 的作业 通过 Google Cloud 控制台或 Google Cloud CLI,或直接调用 Dataproc jobs API。您还可以使用 OSS 指标 设置类似的提醒来监控 YARN 应用的运行时间。

首先,介绍一些背景信息。YARN 会将运行时间指标发送到多个分桶。 默认情况下,YARN 将 60、300 和 1440 分钟作为存储桶阈值 并发出 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 分钟时,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 应用提醒设置

  1. 创建集群并启用所需的存储分区和指标

  2. 创建提醒政策,在应用数量达到指定值时触发 超过指定阈值的 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 ExplorerCloud 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 会发送突发事件通知。

后续步骤