对 Dataflow 流水线使用 Monitoring

Cloud Monitoring 提供了强大的日志记录和诊断功能。通过 Dataflow 与 Monitoring 的集成,您可以从 Monitoring 信息中心访问各种 Dataflow 作业指标,例如,作业状态、元素计数、系统延隔时间(适用于流式传输作业)和用户计数器。您还可以使用 Monitoring 提醒功能来接收各种条件的通知,例如,流式传输系统延隔时间过长或作业失败。

准备工作

请按照其中一个快速入门中的说明设置您的 Dataflow 项目并构建和运行您的流水线

自定义指标

对于您在 Apache Beam 流水线中定义的任何指标,Dataflow 都会将其作为自定义指标报告给 Monitoring。Apache Beam 流水线指标有三种类型:CounterDistributionGauge。Dataflow 目前仅向 Monitoring 报告 CounterDistribution 指标。Distribution 以四个子指标的形式报告,后缀分别为 _MAX_MIN_MEAN_COUNT。Dataflow 不支持根据 Distribution 指标创建直方图。

Dataflow 大约每 30 秒向 Monitoring 报告一次增量更新。为了避免冲突,所有 Dataflow 自定义指标都导出为 double 数据类型。它们在 Monitoring 中显示为 dataflow.googleapis.com/job/user_counter,且带有 metric_name: metric-nameptransform: ptransform-name 标签。它们受 Monitoring 中基数的限制。

为了向后兼容,Dataflow 还会将自定义指标作为 custom.googleapis.com/dataflow/metric-name 报告给 Monitoring。每个项目最多只能有 100 个 Dataflow 自定义指标可发布为 custom.googleapis.com/dataflow/metric-name

报告给 Monitoring 的自定义指标会按照 Cloud Monitoring 价格计费。

探索指标

您可以使用 Monitoring 探索 Dataflow 指标。 请按照本部分中的步骤操作,并观察为您的每个 Apache Beam 流水线提供的多个标准指标。

  1. 在 Google Cloud Console 中,选择 Monitoring

    转到“监控”

  2. 在左侧导航窗格中,点击 Metrics Explorer

  3. 查找资源类型和指标窗格中,选择 dataflow_job 资源类型。 在 Metrics Explorer 中选择 dataflow_job 资源。

  4. 从显示的列表中,选择您要针对其中一个作业观察的指标。


    选择指标

创建提醒政策和信息中心

Monitoring 不仅可以让您访问与 Dataflow 相关的指标,还可让您创建提醒政策和信息中心,因此,您可以为指标绘制时间序列图表,并选择在这些指标达到指定值时接收通知。

创建资源组

您可以创建包含多个 Apache Beam 流水线的资源组,以便轻松地设置提醒和构建信息中心。

  1. 在 Google Cloud Console 中,选择 Monitoring

    转到“监控”

  2. 群组菜单中,选择创建群组

  3. 添加过滤条件以定义此群组包含的 Dataflow 资源。 例如,您可以使用流水线的名称前缀作为其中一个过滤条件。 创建群组。

  4. 创建群组后,您就可以看到与该群组中资源相关的基本指标。

为 Dataflow 指标创建提醒政策

通过 Monitoring,您可以创建提醒并在某个指标超过指定阈值时接收通知。例如,当流处理流水线的系统延隔时间增加到预定义值以上时。

  1. 在 Google Cloud Console 中,选择 Monitoring

    转到“监控”

  2. 提醒菜单中,点击创建政策

  3. 新建提醒政策页面中,定义提醒发出条件和通知渠道。
    例如,要为 WindowedWordCount Apache Beam 流水线群组的系统延隔时间设置提醒,请执行以下步骤:

    1. 选择添加条件
    2. 查找资源类型和指标 (Find resource type or metric) 字段中,输入并选择 dataflow_job
    3. 查找资源类型和指标 (Find resource type or metric) 字段中,选择系统延隔时间
  4. 创建提醒后,您可以选择事件部分中的查看所有活动 (See all events),以查看与 Dataflow 相关的事件。每次触发提醒时,都会创建一个突发事件和相应的事件。如果您在提醒中指定了通知机制(例如电子邮件或短信),您将会收到通知。

构建您自己的自定义监控信息中心

您可以使用与 Dataflow 最为相关的图表构建 Monitoring 监控信息中心。

  1. 转到 Google Cloud Console,然后选择 Monitoring

    转到“监控”

  2. 选择 Dashboards > Create Dashboard

  3. 点击添加图表

  4. 添加图表窗口中,选择 dataflow_job 以及您要用于绘制图表的指标。

  5. 过滤条件字段中,选择包含 Apache Beam 流水线的群组。

您可以根据需要向信息中心添加任意数量的图表。

从 Monitoring 代理接收工作器虚拟机指标

如果要监控 Dataflow 工作器虚拟机实例中的永久性磁盘、CPU、网络和进程指标,您可以在运行流水线时启用 Monitoring 代理。请参阅可用的 Monitoring 代理指标列表。

要启用 Monitoring 代理,请在运行流水线时使用 --experiments=enable_stackdriver_agent_metrics 选项。控制器服务帐号必须拥有 roles/monitoring.metricWriter 角色。

要在不停止流水线的情况下停用 Monitoring 代理,请启动替换作业并且不指定 --experiments=enable_stackdriver_agent_metrics 参数,以更新流水线。

后续步骤

如需了解详情,请考虑探索以下资源: