创建 Dataproc 指标提醒

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

创建提醒的步骤

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

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

  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 会将运行时间指标发送到多个存储桶。默认情况下,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) 资源下找到。

<ph type="x-smartling-placeholder">
</ph>

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 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 会发送突发事件通知。

后续步骤