使用 Stackdriver 监控环境

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

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

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

准备工作

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

    • 以只读方式访问日志和监控指标:logging.viewermonitoring.viewer
    • 以只读方式访问日志(包括私密日志):logging.privateLogViewer
    • 以读写方式访问监控指标:monitoring.editor

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

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

  • Stackdriver Logging 会针对 Google Cloud Platform 项目中发生的每个状态和事件生成一个条目。您可以使用排除项过滤器来减少日志量,包括 Stackdrive 针对 Cloud Composer 生成的日志。

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

指标和资源类型

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

工作流

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

工作流指标 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

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

Celery 执行程序

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

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

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

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

在 Cloud Composer 环境中使用 Monitoring

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

控制台

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

  4. 选择 Resources > 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. 点击 Save Chart

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

API

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

构建自定义 Monitoring 信息中心

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

  1. Monitoring 控制台中选择 Dashboards > Create Dashboard

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

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

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

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

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

使用 Monitoring 提醒

您可以创建 Monitoring 提醒,以便在某个 Cloud Composer 指标超过指定阈值时收到相关通知。

创建提醒

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

  1. Monitoring 控制台中选择 Alerting > Create a Policy。随即会显示 Create a new alerting policy 页面。

  2. Conditions 中,点击 Add Condition

  3. Create condition 页面上执行以下操作:

    1. 为该条件添加一个名称。
    2. 在标签页标题中,滚动到 Metric
    3. Target 下,选择 Cloud Composer EnvironmentCloud Composer Workflow 资源类型。
    4. 为所选资源类型选择一个指标。
    5. 点击 Save

  4. 设置提醒条件后,请完善提醒政策,只需在 Create a new alerting policy 页面中设置通知渠道、文档和新提醒政策的名称即可。

如需详细了解如何管理提醒政策以及如何为提醒政策指定条件,请参阅 Stackdriver 文档。

查看提醒

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

您可以从 Monitoring Alerting > Incidents 页面查看突发事件。

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

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Composer