本文档介绍了如何在使用 Google Cloud Observability 作为监控系统的情况下,为交付流水线配置分析。
如果您使用其他监控提供方,则需要定义自定义分析,包括创建一个容器来接收和评估来自提供方的指标和其他数据。
准备工作
-
安装 Google Cloud CLI。
-
配置 gcloud CLI 以使用您的联合身份。
如需了解详情,请参阅使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init 启用 Compute Engine 和 Cloud Deploy API:
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
所需的角色
如需获得创建和使用分析作业所需的权限,请让您的管理员为您授予项目账号的以下 IAM 角色:
- Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - Monitoring Alert Viewer (
roles/monitoring.alertPolicyViewer) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
为确保 Cloud Deploy 服务账号具有创建和使用自动化所需的权限,请让您的管理员为 Cloud Deploy 服务账号授予项目的以下 IAM 角色:
- IAM Service Account User (
roles/iam.serviceAccountUser) - Cloud Deploy Releaser (
roles/clouddeploy.releaser) - Cloud Deploy Operator (
roles/clouddeploy.operator)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员还可以通过自定义角色或其他预定义角色向 Cloud Deploy 服务账号授予所需的权限。
在 Cloud Deploy 中设置分析
配置部署分析包括以下步骤:
在交付流水线中配置分析作业。
运行流水线以运行分析。
定义提醒政策
您可以定义提醒政策,以便从 Google Cloud Observability 接收指标。Google Cloud Observability 提醒政策描述了当监控数据满足指定条件时,您希望在何时以及如何收到通知。
Cloud Deploy 分析会根据这些提醒所指示的情况采取行动。
例如,您可以为生产环境中的应用设置提醒政策,以便在 HTTP 响应延迟时间过长时发送提醒,并且您的分析作业可以根据该提醒触发repairRolloutRule自动化来回滚版本。
再举一个例子,您可以针对部署到临时环境的应用创建类似的提醒政策,如果在分析作业运行期间未触发任何提醒,该作业可以触发 promoteReleaseRule 自动化流程,将发布版本提升到生产环境。
创建分析
如需为应用的交付流水线创建分析作业,请在流水线的配置中配置该分析,然后应用该配置文件。
配置分析作业
本部分介绍了如何配置 Cloud Deploy 分析作业以与 Google Cloud Observability 搭配使用。
分析作业在交付流水线定义中配置,位于 strategy stanza 内。此参数可位于任何策略(canary 或 standard)内。如果您想按阶段配置分析,可以使用自定义 Canary (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)。
分析作业包含以下元素:
时长
此时长指定了分析作业的运行时间。如果持续时间到期,并且未检测到来自 Google Cloud Observability 的任何提醒,则分析被视为成功,并且发布会继续进行。
与监控系统中的提醒政策对应的一项或多项检查
每次检查都包含以下内容:
ID
一项或多项提醒政策
也就是说,引用了一个或多个 Google Cloud Observability 提醒政策。
- 用于标识特定提醒政策的一个或多个标签。 由于 Google Cloud Observability 提醒政策可以监控许多应用,因此我们可以使用这些标签将检查限制为一个或多个特定应用。
请注意,您可以在此处使用系统参数作为标签的键。
以下是使用 standard 部署策略时配置分析作业的语法:
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
其中:
DURATION是指分析作业的运行时长(以秒为单位)。持续时间到期后,作业即完成。如果分析失败(容器返回非零退出代码),作业会在时长到期之前完成 (
FAILED)。CHECK_ID是分析中单个检查的 ID。每个 ID 在相应分析作业中都必须是唯一的。一个分析作业中可以包含一项或多项检查。
ALERT_POLICY_ID是您用于检查的 Google Cloud Observability 提醒政策的政策 ID。您可以通过运行
gcloud monitoring policies list找到提醒政策 ID。您需要完全限定的 ID,其格式如下:projects/project-redacted/alertPolicies/01234567890123456789返回的标识符可能包含政策 ID 之后的
/conditions/13842666848149128276。请勿将其作为政策 ID 的一部分。KEY和VALUE之间是标签的键值对,用于仅考虑特定提醒。 例如,您可以使用标签,以便检查仅考虑特定工作负载上的提醒。
您可以在此处使用系统参数作为值。
以下示例使用了系统参数:
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
此配置会创建分析作业。虽然有多个检查,但此配置仅创建一个作业。
如果配置的任何提醒政策均未发送任何提醒,则此作业会成功完成,并且发布会继续进行。如果任何政策触发了提醒,作业都会停止并处于 FAILED 状态,发布也会失败(处于 FAILED 状态,除非您选择忽略作业失败)。
应用交付流水线配置文件
如需创建包含分析作业的交付流水线,请使用以下命令应用配置文件:
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
替换以下内容:
FILE交付流水线配置文件的名称,
clouddeploy.yaml或您为其指定的任何名称。REGION替换为您要创建交付流水线的区域。
PROJECT_ID您要在其中创建此交付流水线的项目的 ID。
现在,您的项目中有了一个交付流水线和一个分析作业,当您创建版本时,该作业将成为流水线的一部分。
后续步骤
不妨试用快速入门:使用指标分析应用。
如需查看分析的配置架构,请参阅 Cloud Deploy 配置参考。
详细了解部署自动化。
详细了解部署策略。