使用 Cloud Monitoring 监控环境

您可以将 Cloud MonitoringCloud Logging 与 Cloud Composer 搭配使用。

Monitoring 可帮助您了解云应用的性能、正常运行时间以及总体运行状况。 Cloud Monitoring 会从 Cloud Composer 中收集并提取指标、事件和元数据,并通过信息中心和图表生成数据分析。您可以使用 Monitoring 来了解 Cloud Composer 环境的性能和运行状况以及 Airflow 指标。

Logging 可捕获由调度器和工作器容器生成的日志。 这些日志包含有助于调试的系统级和 Airflow 依赖项信息。 如需了解如何查看日志,请参阅查看 Airflow 日志

准备工作

  • 要访问 Cloud Composer 环境的相关日志和指标,您需要具备以下权限:

    • 对日志和指标的只读权限logging.viewermonitoring.viewer
    • 对日志(包括私密日志)的只读权限logging.privateLogViewer
    • 对指标的读写权限monitoring.editor

    如需了解详情,请参阅 Cloud Composer 访问权限控制

  • 为避免出现重复的日志记录,请为 Google Kubernetes Engine 停用 Cloud Logging。

  • Cloud Logging 会针对 Google Cloud 项目中发生的每个状态和事件生成一个条目。您可以使用排除项过滤条件来减少日志量,包括 Cloud Logging 针对 Cloud Composer 生成的日志。请注意,从 jobs.py 中排除日志可能会导致运行状况检查失败和 CrashLoopBackOff 错误。您必须在排除项过滤条件中添加 -jobs.py,以免被排除。

  • Monitoring 不能为每分钟执行多次的工作流和任务绘制计数值图,而且目前也不能为失败的任务绘制指标图。

指标和资源类型

您可以在 Monitoring 中检查工作流 (DAG) 和 Celery 执行程序的 Airflow 指标。

环境

环境运行状况

如需检查环境的运行状况,您可以使用以下运行状况指标:composer.googleapis.com/environment/healthy

Cloud Composer 会每 5 分钟运行一个名为 airflow_monitoring 的活跃性 DAG,并按如下方式报告环境运行状况:

  • 如果 DAG 运行成功完成,则运行状况为 True
  • 如果 DAG 运行失败,则运行状况为 False
  • 如果 DAG 运行没有完成,则 Cloud Composer 会每 5 分钟轮询一次 DAG 的状态,并在达到一小时的超时限制后报告 False

活跃性 DAG 存储在 dags/ 文件夹中,并可显示在 Airflow 网页界面中。活跃性 DAG 的频率和内容不可更改,也不应修改,因为更改不会得到保留。

数据库运行状况

如需检查数据库的运行状况,您可以使用以下运行状况指标:composer.googleapis.com/environment/database_health

Cloud Composer Airflow 监控 pod 会每分钟对数据库执行一次 ping 操作。如果可以建立 SQL 连接,则报告运行状态 True,否则报告 False

工作流

为了帮助您监控工作流的运行效率,并识别导致较长延迟时间的拖延任务,我们提供了以下工作流指标:

工作流指标 API
工作流运行次数 composer.googleapis.com/workflow/run_count
每次工作流运行的持续时间 composer.googleapis.com/workflow/run_duration
任务运行次数 composer.googleapis.com/workflow/task/run_count
每项任务的持续时间 composer.googleapis.com/workflow/task/run_duration

Cloud Monitoring 只会显示已完成运行的工作流和任务(无论成功还是失败)的指标。而对于正在运行的工作流和任务,以及没有工作流活动的情况,Stackdriver 不会显示任何数据

Celery 执行程序

您可以使用以下 Celery 执行程序指标。这些指标可帮助您确定环境中的工作器资源是否足够。

Celery 执行程序指标 API
队列中的任务数 composer.googleapis.com/environment/task_queue_length
在线 Celery 工作器数 composer.googleapis.com/environment/num_celery_workers

Cloud Monitoring 文档还包含 Cloud Composer 指标和资源的以下相关信息:

  • 如需查看 Cloud Composer 向 Cloud Monitoring 报告的用量指标的列表,请参阅指标列表
  • 如需详细了解 cloud_composer_environment 资源类型,请参阅 Cloud Monitoring 文档中的受监控的资源类型

在 Cloud Composer 环境中使用 Monitoring

您可以通过 Monitoring 控制台或使用 Monitoring API 访问 Monitoring。

控制台

  1. 创建 Cloud Composer 环境后,转至 Monitoring 控制台以查看环境监控数据。
  2. 首次访问 Monitoring 时,系统会要求您创建一个工作区并选择一个项目。
  3. 设置了工作区后,将显示 Monitoring 控制台。

  4. 选择资源 > Metrics Explorer,然后选择 Cloud Composer:
    1. 点击 Find resource type and metric 输入框以显示资源下拉列表。
    2. 选择 Cloud Composer EnvironmentCloud Composer Workflow 资源。 或者,在该框中输入 cloud_composer_environmentcloud_composer_workflow
  5. 再次点击该输入框,然后从下拉列表中选择一个指标。 将鼠标悬停在相应指标名称上可显示该指标的相关信息。
  6. Cloud Composer 环境信息包含在 workflow_name 标签中:workflow_name=environment.workflow。如需查看特定环境的工作流指标,请添加过滤条件:
    1. workflow_name 创建过滤条件。
    2. 使用正则表达式 =~ "your-environment-name.*" 过滤前缀,注意要将其中的变量替换为您想要查看其工作流指标的环境的名称。如需了解如何在过滤标签中使用正则表达式,请参阅过滤
  7. 点击保存图表

    您还可以按指标标签分组,执行汇总,以及选择图表查看选项。请参阅 Monitoring 文档

API

您可以使用 Monitoring timeSeries.list API 来捕获和列出由 filter 表达式定义的指标。使用 API 页面上的试用此 API 模板发送 API 请求并显示响应。

构建自定义 Monitoring 信息中心

您可以构建一个自定义 Monitoring 信息中心来以图表方式显示 Cloud Composer 环境的选定指标。

  1. 在 Google Cloud Console 中,选择 Monitoring 或使用如下按钮:

    转到 Monitoring

  2. 选择信息中心 > 创建信息中心

  3. 在“Untitled Dashboard”中,点击 Add Chart 并创建图表:

    1. 在“Add Chart”窗口中,选择 Cloud Composer Environment 资源类型。
    2. 选择一个或多个指标和图表属性。
    3. 确认或输入新的图表标题,然后点击 Save
    4. 根据需要将其他图表添加到您的信息中心,然后点击 Save

    以下示例展示了 Task Duration 指标。该指标反映了工作流中各项活跃任务的持续时间,这一信息非常有助于优化性能。

  4. 要查看信息中心,请点击 Monitoring Dashboards 菜单中的相应标题。

  5. 在信息中心显示页面中,您可以查看、更新和删除图表。

使用 Monitoring 提醒

您可创建提醒政策来监控指标的值,当这些指标违反条件时便会通知您。下面列出了创建用于监控一个或多个 Cloud Composer 环境Cloud Composer 工作流资源的提醒政策的常规步骤:

  1. 在 Google Cloud Console 中,转到 Monitoring

    转至 Resources

  2. 在 Monitoring 导航窗格中,选择 提醒,然后选择创建政策
  3. 点击添加条件
    1. 目标窗格中的设置指定了要监控的资源和指标。点击文本框以启用菜单,然后选择 Cloud Composer 环境Cloud Composer 工作流资源。接下来,从指标列表中选择一个指标。
    2. 提醒政策的配置窗格中的设置决定了何时触发提醒。 此窗格中的大多数字段已填充默认值。 如需详细了解窗格中的字段,请参阅提醒政策文档中的配置
    3. 点击添加
  4. 如需前进到通知部分,请点击下一步
  5. 可选:如需将通知添加到您的提醒政策中,请点击通知渠道。在对话框中,从菜单中选择一个或多个通知渠道,然后点击确定

    如果您要添加的通知渠道未列出,请点击管理通知渠道。系统会将您带到新浏览器标签页中的通知渠道页面。在此页面上,您可以更新已配置的通知渠道。完成更新后,返回原始标签页,点击刷新 ,然后选择要添加到提醒政策中的通知渠道。

  6. 如需前进到文档部分,请点击下一步
  7. 点击名称,然后输入提醒政策的名称。
  8. 可选:点击文档并添加您希望包含在通知消息中的任何信息。
  9. 点击保存
如需了解详情,请参阅提醒政策

查看提醒

当某个提醒被指标阈值条件触发时,Monitoring 会创建一个突发事件(和一个相应的活动)。

您可以从“Monitoring 提醒 > 突发事件”页面查看突发事件。

如果您在提醒政策中定义了通知机制(例如电子邮件或短信通知),Monitoring 还会发送突发事件通知。

后续步骤