Dataflow 的现成提醒

如需监控流处理流水线的运行状况和资源消耗情况,而无需在 Cloud Monitoring 中手动配置政策,您可以在 Dataflow 中启用一站式提醒。一站式提醒提供了一套预配置的推荐提醒政策,您可以在作业启动期间启用这些政策。

您可以使用此功能:

  • 即时洞察:自动跟踪关键流式传输指标(例如积压处理时间和 vCPU 增长),无需手动设置。
  • 标准化监控:快速将基准提醒政策应用于新的和现有的生产工作负载。
  • 自定义提醒:调整默认提醒阈值、停用个别政策,或向套件中添加您自己的自定义提醒政策。

您可以随时在 Cloud Monitoring 中自定义这些默认政策,也可以将自己的自定义提醒政策与一站式提醒套件集成。

前提条件

如需使用一站式提醒,您的项目必须满足以下要求:

  1. 通知渠道:您必须至少配置一个通知渠道(例如电子邮件、Slack 或 PagerDuty)。我们建议您配置重要联系人,以确保提醒能送达对应的利益相关方。Dataflow 服务不会强制执行此要求。如需了解详情,请参阅创建和管理通知渠道。

  2. 权限:Dataflow 服务账号 (P4SA) 需要特定的 IAM 权限才能代表您创建和管理这些政策:

    • monitoring.alertPolicies.get
    • monitoring.alertPolicies.list
    • monitoring.alertPolicies.create
    • monitoring.alertPolicies.update
    • monitoring.alertPolicies.delete

    对于新项目,系统会自动添加这些权限。对于现有项目,您可能需要在 P4SA 账号中手动设置这些权限。

更新 P4SA 权限

Dataflow Service Agent(通常称为 P4SA,即每个产品、每个项目的服务账号)是在您启用 Dataflow API 时自动创建和代管式服务账号。其邮箱采用以下格式:

service-PROJECT_NUMBER@dataflow-service-producer-prod.

如需更新 P4SA,您需要拥有 resourcemanager.projects.setIamPolicy 权限或包含此权限的角色,例如 Project IAM Admin (roles/resourcemanager.projectIamAdmin)。

如需使用 Google Cloud 控制台授予所需角色,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 选择您的项目。

  3. 选中包括 Google 提供的角色授权复选框。

  4. 在主账号列表中,找到 Dataflow Service Agent(service-PROJECT_NUMBER@dataflow-service-producer-prod. 或具有 Cloud Dataflow Service Agent 角色)所在的行。

  5. 在该行中,点击 修改主账号。

  6. 在修改权限窗格中,点击 添加其他角色。

  7. 在选择角色列表中,选择 Monitoring Editor (roles/monitoring.editor)。

  8. 点击保存。权限更新可能需要几分钟才能传播。

启用一站式提醒

您可以使用 gcloud CLI 为作业启用一站式提醒。

使用 gcloud CLI 启用提醒

在提交作业期间添加以下标志之一,以启用或停用该功能:

  • --enable-turnkey-alerts
  • --no-enable-turnkey-alerts

如果您的服务账号缺少所需权限,CLI 会拒绝请求并显示缺少的权限。如需了解详情,请参阅前提条件。

作业更新后,一站式提醒设置会保留。更新作业时,系统会保留之前的 Turnkey 提醒设置,因此您无需再次指定 --enable-turnkey-alerts 或 --no-enable-turnkey-alerts 标志,除非您想更改设置。

默认政策套件

一站式提醒包含两项主要政策,专为典型的流式工作负载而设计,重点关注处理时间和资源利用率等实时 KPI。Google 提供的政策带有 Default Policy: 前缀以便于识别,但该服务使用标签作为主要标识符。

客户会自动注册默认政策套件中的所有政策。如果需要,您可以在 Cloud Monitoring 提醒中停用特定的默认政策。

政策名称 基本指标 默认阈值 理由
默认政策:预计积压工作量 job/estimated_backlog_processing_time 30 分钟 估算清除当前积压工作所需的时间。积压时间超过 30 分钟表示作业难以取得进展。
默认政策:vCPU 增长政策 job/current_num_vcpus 1 小时平均 vCPU 使用量比 7 天平均值高出 5 倍以上 监控 vCPU 数量的相对变化,帮助评估意外的作业费用。

政策生命周期

  • Beta 版政策:这些政策的名称中带有 BETA 前缀,可能会随着阈值的优化而发生变化或被删除。
  • 正式版政策:政策被视为稳定后,BETA 前缀会被移除。

自定义和管理提醒

一站式提醒只是一个起点。我们建议您根据具体业务需求对其进行自定义。

  1. 在 Google Cloud 控制台中,前往 Cloud Monitoring > 提醒。
  2. 找到相应政策(例如默认政策:预计积压工作量)。
  3. 将起付金额修改为您偏好的值。

创建自定义政策

您可以向任何 Cloud Monitoring 提醒政策添加 goog-turnkey-alerts 标签,将其添加到一站式提醒套件中。这样,您就可以在默认套件的基础上管理特定于业务的自定义规则。

停用或删除提醒政策

您可以使用 Monitoring 停用或删除特定的默认政策。停用政策后,Monitoring 会停止评估政策条件,并且不会创建新的突发事件,但政策配置会保留。如果您删除某项政策,该政策会从您的项目中永久移除。如需详细了解如何管理政策生命周期,请参阅管理提醒政策和已停用的提醒政策。

问题排查

问题 解决方法
PERMISSION_DENIED 确保 Dataflow P4SA 拥有前提条件中列出的所需 monitoring.alertPolicies.* 权限。如果 P4SA 缺少这些角色,您的流水线仍会成功启动,但命令行输出和作业日志中会显示 PERMISSION_DENIED 错误,表明无法创建默认提醒。
未收到任何提醒 通过检查突发事件来确定是否满足提醒发出条件。您可以在 Monitoring 中查看提醒触发和突发事件时间轴(请参阅查看突发事件和事件)。
重复的政策 如果多个政策共用 goog-turnkey-alerts 标签和相同的指标配置,通常会出现这种情况。Dataflow 会检查是否存在重叠的标签和指标,而不是检查名称是否完全匹配。请检查您的政策,并从多余的配置中移除该标签。