Cloud Operations Suite 简介

1. 简介

上次更新时间:2023 年 7 月 28 日

什么是 Google Cloud 运维套件?

Google Cloud 运维套件是一个平台,可用于监控、排查和改善 Google Cloud 环境中的应用性能。Cloud Operations Suite 的关键支柱包括 Cloud Monitoring、Cloud Logging 和 Cloud Tracing。

观看此视频,简要了解 Google Cloud Operations。

构建内容

在此 Codelab 中,您将在 Google Cloud 上部署示例 API。然后,您将探索 Cloud Monitoring 中与 API 相关的多项功能并进行配置。

学习内容

  • 使用 Google Cloud 的 Cloud Shell 将示例应用部署到 Cloud Run。
  • 使用 Google Cloud Monitoring 功能,例如信息中心、提醒、正常运行时间检查、SLI/SLO 监控等。

所需条件

  • 最新版本的 Chrome(74 或更高版本)
  • Google Cloud 账号和 Google Cloud 项目

2. 设置和要求

自定进度的环境设置

如果您还没有 Google 账号(Gmail 或 Google Apps),则必须创建一个。登录 Google Cloud Platform Console (console.cloud.google.com) 并创建一个新项目。

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

c20a9642aaa18d11.png

  • 项目名称是此项目参与者的显示名称。它是 Google API 尚未使用的字符串。您可以随时更新。
  • 项目 ID 在所有 Google Cloud 项目中必须是唯一的,并且是不可变的(一经设置便无法更改)。Cloud 控制台会自动生成一个唯一字符串;通常情况下,您无需关注该字符串。在大多数 Codelab 中,您都需要引用项目 ID(它通常标识为 PROJECT_ID)。如果您不喜欢生成的 ID,可以再随机生成一个。或者,您也可以尝试自己的项目 ID,看看是否可用。完成此步骤后便无法更改该 ID,并且此 ID 在项目期间会一直保留。
  • 此外,还有第三个值,即部分 API 使用的项目编号,供您参考。如需详细了解所有这三个值,请参阅文档

注意:项目 ID 必须是全局唯一的,一旦您选择使用,其他任何人都无法再使用。您是此 ID 的唯一用户。即使项目被删除,该 ID 也无法再使用

  1. 接下来,您需要在 Cloud 控制台中启用结算功能,以便使用 Cloud 资源/API。运行此 Codelab 应该不会产生太多的费用(如果有费用的话)。若要关闭资源以避免产生超出本教程范围的结算费用,您可以删除自己创建的资源或删除整个项目。Google Cloud 的新用户符合参与 $300 USD 免费试用计划的条件。

Google Cloud Shell 设置

虽然 Google Cloud 和 Google Cloud Trace 可以从笔记本电脑远程操作,但在此 Codelab 中,我们将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。

如需从 Cloud 控制台激活 Cloud Shell,只需点击“激活 Cloud Shell”(预配和连接到环境仅需花费一些时间)。

30c26f30d17b3d46.png

如果您以前从未启动过 Cloud Shell,将看到一个中间屏幕(在折叠下面),描述它是什么。如果是这种情况,请点击“继续”(您将永远不会再看到它)。一次性屏幕如下所示:

9c92662c6a846a5c

预配和连接到 Cloud Shell 只需花几分钟时间。

9f0e51b578fecce5.png

这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证。只需使用一个浏览器或 Google Chromebook 即可完成本 Codelab 中的大部分(甚至全部)工作。

在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的项目 ID:

在 Cloud Shell 中运行以下命令以确认您已通过身份验证:

在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设置为您的 PROJECT_ID

gcloud auth list

命令输出

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

命令输出

[core]
project = <PROJECT_ID>

如果出于某种原因未设置项目,只需发出以下命令即可:

gcloud config set project <PROJECT_ID>

默认情况下,Cloud Shell 还会设置一些环境变量,这对您日后运行命令可能会很有用。

echo $GOOGLE_CLOUD_PROJECT

命令输出

<PROJECT_ID>

示例应用

我们已将您完成此项目所需的一切都放入一个 Git 代码库中。该代码库包含几个示例应用,您可以选择在本练习中使用其中任意一个应用。

Git 代码库链接:https://github.com/rominirani/cloud-code-sample-repository

3. 部署 API 应用

示例应用或 API 的用途是什么?

我们的应用是一个简单的 Inventory API 应用,公开了 REST API 端点,其中包含几项操作,可用于列出商品目录商品并获取具体的商品库存数量。

部署 API 后,假设其托管在 https://<somehost> 上,我们可以按如下方式访问 API 端点:

  • https://<somehost>/inventory

系统会列出所有商品项及其现有库存水平。

  • https://<somehost>/inventory/{productid}

这将为该商品提供一个记录,其中包含商品 ID 和现有库存水平。

返回的响应数据采用 JSON 格式。

示例数据和 API 请求/响应

为简单起见,应用未由后端的数据库提供支持。其中包含 3 个示例商品 ID 及其现有库存水平。

产品 ID

现有库存量

I-1

10

I-2

20

I-3

30

示例 API 请求和响应如下所示:

API 请求

API 响应

https://<somehost>/inventory

[ { "I-1": 10, "I-2": 20, "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://<somehost>/inventory/I-200

{ "productid": I-200, "qty": -1}

克隆代码库

虽然可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。

在 GCP 控制台中,点击右上角工具栏上的 Cloud Shell 图标:

bce75f34b2c53987.png

预配和连接到环境应该只需要片刻时间。完成后,您应该会看到如下内容:

f6ef2b5f13479f3a.png

这个虚拟机已加载了您需要的所有开发工具。它提供了一个持久的 5GB 主目录,并且在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。只需一个浏览器,即可完成本实验中的所有工作。

设置 gcloud

在 Cloud Shell 中,设置您的项目 ID 并将其保存为 PROJECT_ID 变量。

PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID

现在,执行以下命令:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git 

这将在此文件夹中创建一个名为 cloud-code-sample-repository 的文件夹。

(可选)在 Cloud Shell 中运行应用

您可以按照以下步骤在本地运行应用:

  1. 在终端中,通过以下命令前往 API 的 Python 版本:
$ cd cloud-code-sample-repository
$ cd python-flask-api
  1. 在终端中,输入以下命令(在撰写本文时,Cloud Shell 已安装 Python 3.9.x,我们将使用默认版本。如果您打算在笔记本电脑本地运行,可以使用 Python 3.8+:
$ python app.py
  1. 您可以运行以下命令在本地启动 Python 服务器。

26570f586acaeacf.png

  1. 这将在端口 8080 上启动服务器,您可以通过 Cloud Shell 的网页预览功能在本地对其进行测试。点击 Web Preview 按钮,如下所示:

675d9b3097a6209c

点击“在端口 8080 上预览”。

  1. 系统随即会打开一个浏览器窗口。您会看到 404 错误,这是正常现象。修改网址,使其在主机名后面仅包含 /inventory

例如,在我的机器上应如下所示:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

系统随即会显示商品目录项列表,如前所述:

ef6afb0184c58870.png

  1. 现在,您可以前往终端并按 Ctrl-C 来停止服务器

部署应用

现在,我们将此 API 应用部署到 Cloud Run。该过程涉及使用 gcloud 命令行客户端运行命令,以将代码部署到 Cloud Run

在终端中,输入以下 gcloud 命令:

$ gcloud run deploy --source .

系统会向您询问多个问题(如果系统要求您授权,请继续操作),下文列出了其中一些要点。您可能会看到所有问题,也可能不会,具体取决于配置以及您是否已在 Google Cloud 项目中启用特定 API。

  1. 服务名称 (python-flask-api):采用此默认值,或者选择类似于 my-inventory-api
  2. 项目 [project-number] 未启用 API [run.googleapis.com]。Would you like to enable and retry (this will take a few minutes)? (y/N)? 是
  3. 请指定区域:通过输入数字来选择您选择的区域。
  4. 项目 [project-number] 未启用 API [artifactregistry.googleapis.com]。Would you like to enable and retry (this will take a few minutes)? (y/N)? 是
  5. 如需从源代码进行部署,您需要有 Artifact Registry Docker 代码库来存储构建的容器。系统将在 [us-west1] 区域中创建一个名为 [cloud-run-source-deploy] 的代码库。

Do you want to continue (Y/n)? 是

  1. 是否允许对 [my-inventory-api] 进行未经身份验证的调用 (y/N)?是

最终,这将启动获取源代码、将其容器化、将其推送到 Artifact Registry 并部署 Cloud Run 服务 + 修订版本的流程。请耐心等待此过程完成(可能需要 3-4 分钟),您应该会看到此过程完成,并看到系统显示的服务网址。

示例运行如下所示:

7516696ea5b3004b.png

测试应用

现在,我们已将应用部署到 Cloud Run,您可以按如下方式访问 API 应用:

  1. 记下上一步中的服务网址。例如,在我的设置中,它显示为 https://my-inventory-api-bt2r5243dq-uw.a.run.app。我们将其称为 <SERVICE_网址>
  2. 打开浏览器并访问以下 3 个 API 端点网址:
  3. <SERVICE_网址>/广告资源
  4. <SERVICE_网址>/inventory/I-1
  5. <SERVICE_网址>/inventory/I-100

它应符合我们在前面部分提供的 API 请求和响应示例规范。

从 Cloud Run 获取服务详情

我们将 API 服务部署到了 Cloud Run,这是一个无服务器计算环境。我们可以随时通过 Google Cloud 控制台访问 Cloud Run 服务。

在主菜单中,前往 Cloud Run。系统随即会显示您在 Cloud Run 中运行的服务的列表。您应该会看到刚刚部署的服务。根据您选择的名称,您应该会看到类似以下内容:

10d2c363241d789c.png

点击 Service 名称以查看详细信息。示例详情如下所示:

1ec2c9e45ff1a2db.png

请注意该网址,它只是一个服务网址,您可以将其输入浏览器并访问我们刚刚部署的 Inventory API。您可以查看“指标”和其他详细信息。

现在,我们来开始使用 Google Cloud Operations Suite。

4. 设置信息中心

Cloud Monitoring 提供的一项便捷功能是,可跨 Google Cloud 中的多个资源使用开箱即用 (OOTB) 信息中心。这样,您就可以快速便捷地使用标准指标初始设置信息中心。

我们来看看如何为我们刚刚部署到 Cloud Run 的 API 服务执行此操作。

服务的自定义信息中心

我们已将 API 服务部署到 Cloud Run,接下来我们来看看如何设置信息中心,以便直观呈现各种指标,其中一些指标包括服务延迟时间。

首先,从控制台访问 Monitoring → 概览,如下所示:

c51a5dda4ab72bbf.png

“概览”会显示您在“监控”中配置的多项内容,例如信息中心、提醒、正常运行时间检查等。

2758f61f1e7f1dca.png

现在,我们点击侧边主菜单中的信息中心。这会将我们带到以下界面:

c9110b6f065100da.png

点击示例库。系统将显示 Google Cloud 中跨多个资源提供的开箱即用 (OOTB) 信息中心列表。具体而言,向下滚动列表,然后选择 Google Cloud Run,如下所示。

ddac4038d4fa91ae.png

系统会显示适用于 Google Cloud Run 的标准信息中心列表。我们对此很感兴趣,因为我们已在 Cloud Run 上部署了服务。

您会看到一个 Cloud Run Monitoring 信息中心。点击预览链接,查看 Cloud Run 监控可用的标准图表(指标)列表。只需点击导入示例信息中心,即可将所有这些图表导入一个自定义信息中心。系统随即会显示一个信息中心界面,其中包含预先填充的名称,如下所示:

531cb8434b18193a.png

您可以点击左上角数字面板名称左侧的向左箭头,返回上一步。这会打开信息中心列表,您应该可以在其中看到刚刚创建的新信息中心。

点击该信息中心链接,即可监控多种开箱即用的指标。这些指标包括延迟时间、请求数、容器指标等。

您还可以选择将任何信息中心标记为“收藏”,只需选择星形图标即可,如下所示:

fc993d1a17415550.png

这会将信息中心添加到 Monitoring 的“Overview”(概览)屏幕,方便您导航到常用的信息中心。

2e8f66e2652c55c5.png

1e1dffb5239ab110.png

太棒了!您刚刚添加了一个自定义信息中心,用于监控您的 Cloud Run 服务。干得好!

5. 拨测

在本部分中,我们将为已部署的 API 服务设置正常运行时间检查。公开拨测可以从全球多个位置向可公开访问的网址或 Google Cloud 资源发出请求,以查看资源是否响应。

本例中的资源将是我们已部署到 Cloud Run 的 API 服务。该网址将是 API 服务公开的特定端点,用于指示服务的运行状况。

在示例 API 服务代码中,我们公开了一个端点 /healthy,它会返回字符串值“All Izz Well”。因此,我们只需定义一个正常运行时间检查,该检查要命中类似于 https://<SERVICE_网址>/healthy 的内容,并检查是否返回字符串 "All Izz Well"

创建通知渠道

在创建正常运行时间检查之前,请务必先配置通知渠道。通知渠道是指当我们监控的任何资源发生突发事件/问题时,您会通过哪种媒介收到提醒。通知渠道的示例包括电子邮件,如果有提醒等,您会收到电子邮件。

现在,我们将配置一个电子邮件通知渠道,并使用我们的电子邮件地址进行配置,以便在系统发出我们配置的任何提醒时收到通知。

如需创建通知渠道,请按以下步骤操作:

从 Google Cloud 控制台的主菜单转到 Monitoring → Alerting,如下所示:

9f87859064c63b63.png

系统随即会显示一个页面,其中包含提醒、政策等内容。目前,您会在顶部看到一个标题为修改通知渠道的链接。点击该按钮。

5ab54f42e6f7b99.png

系统随即会显示各种通知渠道的列表,如下所示:

cd89b1ca9e1de87c.png

找到电子邮件部分,然后点击该行中的新增。这会调出“电子邮件配置”详细信息,如下所示:

d6ed98ffd0427fa3.png

输入您的电子邮件地址和显示名称,如下所示。点击保存

至此,电子邮件通知渠道的创建便已完成。现在,我们来配置拨测。

创建正常运行时间检查

在 Google Cloud 控制台中,依次选择主菜单中的 Monitoring(监控)→ Uptime checks(正常运行情况检查)。在顶部,您会看到创建拨测链接。点击该链接。

484541aec65e605e.png

这会显示您需要完成的一系列步骤,以便配置正常运行情况检查。

第一步是设置目标详细信息,即我们部署的 Cloud Run 服务的相关信息。已填写的表单如下所示:

4e2bb9fe022320f7.png

您可以按如下方式选择不同的值:

  • 协议:HTTPS
  • 资源类型:选择 Cloud Run 服务。请注意它支持的其他资源,您也可以为其设置拨测。
  • Cloud Run 服务:选择 my-inventory-api 或您的 Cloud Run 服务的具体名称。
  • 路径为 /healthy,因为我们要返回字符串“All Izz Well”,并希望进行检查。

点击继续以转到下一步。下一步是响应验证步骤,如下所示:

a6011ac2ab3e0f10.png

您可以看到,我们正在启用“内容匹配”检查,然后将 /healthy 端点返回的响应设置为“All Izz Well”。点击继续进入下一步。在下一步中,我们将配置提醒,以及如果拨测失败,应通过哪个通知渠道收到提醒。

d9738670efcb999f.png

在此步骤中,为提醒指定名称。我已将其命名为 Inventory API 正常运行时间检查失败,但您可以选择自己的名称。这里的重要之处在于,从您之前配置的列表中选择正确的通知渠道。

点击检查,完成最后一步,查看我们配置的正常运行时间检查。

在这一最后一步中,为正常运行时间检查指定名称(例如 Inventory API 正常运行时间检查),然后您还可以测试检查是否配置正确。点击TEST按钮即可进行测试。

80375bfab97fc313

继续完成流程(点击左侧的创建按钮)。Google Cloud 会指示在不同区域配置的正常运行时间检查探测器对网址执行 ping 操作,并收集这些响应。几分钟后访问监控 → 拨测部分,理想情况下,您应该会看到表示可以通过不同探测访问该网址的所有绿色信号。

df17555ddbee1127.png

如果任意探测在一段时间内失败(可配置),您将在我们配置的电子邮件渠道中收到提醒通知。

至此,关于设置正常运行时间检查的部分已结束。干得好!

6. Metrics Explorer

Cloud Monitoring 会显示来自多个 Google Cloud 产品的数千个标准指标。您可以对这些指标进行调查、查询、转换为图表、添加到信息中心、设置提醒等。

在本部分中,我们的目标是:

  1. 了解如何查看各种指标,然后我们将调查 API 服务的特定指标(延迟时间)。
  2. 将该指标转换为图表和自定义信息中心,供我们随时用于直观显示该指标。

探索 Inventory API 服务的延迟时间指标

在 Google Cloud 控制台中,依次选择主菜单中的监控 → Metrics Explorer。这时,您会进入“指标浏览器”界面。点击选择指标。您现在可以浏览生成了指标的多个活跃资源。

由于我们使用的是 Cloud Run 服务,请点击“Cloud Run 修订版本”,然后点击类别和名为 Request Latency 的特定指标,如下所示:

7609d8156c8f1384.png

点击应用。这会在图表中显示请求延迟时间。您可以从右侧的“显示”设置中将“微件类型”更改为“折线图”,如下所示:

46086ac0a8eaf3d7

系统随即会显示延迟时间图表,如下所示:

ad97f749eeacaa95.png

创建图表和自定义信息中心

我们来保存此图表。点击保存图表,然后使用以下详细信息:

35d1788d5f0cb3c4.png

请注意,我们要创建一个新信息中心,而不是将其保存在现有信息中心中。点击保存按钮。这会将新创建的信息中心添加到信息中心列表,如下所示:

c9cdcd63d5823abd.png

点击我们创建的特定信息中心,查看详细信息。

27354d8310d8a2d7.png

至此,关于如何通过 Metrics Explorer 调查各种指标以及如何创建自定义信息中心的部分已结束。

7. Cloud Logging

在本部分中,我们将介绍 Cloud Logging。Cloud Logging 附带一个 Logs Explorer 界面,可帮助您浏览和深入了解各种 Google 服务和您自己的应用生成的日志。

在本部分中,我们将了解日志浏览器,并模拟一些日志消息,然后通过一项名为基于日志的指标的功能搜索这些消息并将其转换为指标。

日志浏览器

您可以通过 Google Cloud 控制台主页面中的 Logging →Logs Explorer 访问 Logs Explorer,如下所示:

df05f5b33fd5695a.png

系统随即会显示一个日志界面,您可以在其中选择/取消选择各种资源(项目、Google Cloud 资源、服务名称等)以及日志级别,以根据需要过滤日志消息。

e7fa15bcf73f3805.png

上方显示的是 Cloud Run 修订版本(即我们部署的 Cloud Run 服务)的日志列表。您会看到多个为正常运行时间检查的请求命中我们配置的 /healthy 端点。

搜索警告

通过提供不属于 I-1、I-2 和 I-3 的商品 ID,模拟向商品目录服务发出的一些无效请求。例如,错误的请求是:

https://<SERVICE_URL>/inventory/I-999

现在,如果在查询中提供了不正确的产品 ID,我们将搜索由我们的 API 生成的所有警告。

在“查询”框中,插入以下查询参数:

resource.type="cloud_run_revision"

textPayload =~“收到错误 productid 的商品目录请求”

代码应如下所示:

b3ee512a0c9c5c7b.png

点击“运行查询”。随后系统会显示所有收到的请求以及存在此问题的请求。

5fdbd7c23bf4694f

基于日志的指标

我们来创建一个自定义日志指标来跟踪这些错误。我们想了解是否有大量调用使用了错误的商品 ID。

如需将上述内容转换为错误指标,请点击日志浏览器中显示的创建指标按钮。

fa9a5e04922aa412.png

这会调出用于创建指标定义的表单。选择“计数器指标”,然后输入指标名称 (inventory_lookup_errors) 和说明的详细信息(如下所示),然后点击创建指标

70b5719b472d4d02

这将创建计数器指标,您应该会看到如下所示的消息:

ab9058028185e4d5.png

在主菜单中依次选择 Logging(日志记录)→ Logs-based Metrics(基于日志的指标),您应该会看到我们在“用户定义的指标”列表中定义的自定义指标,如下所示:

7d186e90559cf8e1.png

在该条目的末尾,您会看到三个垂直点,点击这些点可查看您可以对此自定义指标执行的操作。该列表应与您在下面看到的列表类似。点击 View in Metrics Explorer(在 Metrics Explorer 中查看)选项。

7586f0789a0bdb41.png

这应该会将我们引导至上一部分中介绍的 Metrics Explorer,只不过现在系统会为我们预先填充一些数据。

7ee7403d0639ce25

点击保存图表。请为“保存图表”选项使用以下值:

9009da45f76eb4c5.png

系统现在会创建一个新的信息中心,您可以在其中查看商品目录搜索错误,该信息中心会显示在信息中心列表中。

201ed66957cb64f9

太棒了!现在,您已根据日志创建了一个自定义指标,并将其转换为了显示在自定义信息中心内的图表。这有助于我们跟踪使用错误产品 ID 的调用次数。

8. 提醒政策

在本部分中,我们将使用所创建的自定义指标,并监控其数据是否达到某个阈值。也就是说,如果错误数量超过某个阈值,我们将发出提醒。换句话说,我们将设置提醒政策。

创建提醒政策

我们前往“广告资源搜索”信息中心。系统随即会显示我们创建的图表,标注广告资源查找错误,如下所示:

3591a1dd91a8b9fd.png

系统会显示当前的指标数据。我们先修改指标,如下所示(点击“修改”按钮):

5e76fc20d8387984.png

系统随即会显示指标详情。我们将把图表从显示错误率转换为显示总和(即错误数量)。要更改的字段如下所示:

65ccd1eaca607831.png

点击右上角的应用,我们将返回“指标”页面,但这次我们可以看到对齐周期内的错误总数与错误率。

我们将创建提醒政策,以便在错误数量超过阈值时通知我们。点击图表右上角的 3 个点,然后在选项列表中点击转换为提醒图表(如上所示)。

cc9eec48b9bfbc92.png

您应该会看到如下所示的界面:

6202ad1e88679a78.png

点击下一步,系统随即会显示可设置的阈值。我们在此处采用的样本量阈值为 5,但您可以根据自己的偏好进行选择。

734f809cc802ab78

点击下一步以显示通知表单

f2d84fb85c2520cb.png

我们已将通知渠道选择为我们之前创建的电子邮件渠道。您可以填写其他详细信息,例如文档(将在发出提醒时提供)。点击下一步查看摘要并完成流程。

c670b29da70c4655.png

创建此提醒政策后,它将显示在提醒政策列表中,如下所示。您可以前往 Monitoring → Alerting 查看提醒政策列表。在页面中查找政策部分,查看我们到目前为止配置的政策列表。

154da627959c54f3.png

太好了!现在,您已配置自定义提醒政策,该政策会在查询 Inventory API 时错误率增加时向您发送通知。

9. 服务监控(可选)

在本部分中,我们将根据站点可靠性工程 (SRE) 原则为服务设置 SLI/SLO。您会发现,Cloud Monitoring 可以自动发现您在 Cloud Run 中部署的服务,并自动计算可用性、延迟时间等关键 SLI 以及错误预算计算结果,从而让您更轻松地管理服务。

接下来,为我们的 API 服务设置延迟时间 SLO。

为 Inventory Service 设置延迟时间服务等级目标 (SLO)

从 Cloud 控制台的主菜单中点击 Monitoring → 服务。系统会显示已针对 Service Monitoring 配置的服务列表。

目前,我们没有任何服务已设置为进行 SLI/SLO 监控,因此该列表为空。点击顶部的定义服务链接,先定义 / 标识服务。

42d14515a481213

这将自动发现可作为 SLO 监控的候选服务。它能够发现 Cloud Run 服务,因此部署到 Cloud Run 的 Inventory API 服务将显示在列表中。

522aaba719f85c54.png

您看到的显示名称可能会有所不同,具体取决于您在将服务部署到 Cloud Run 时所做的选择。点击提交按钮。这会调出下图所示的界面:

eca08010ab6858a9.png

您可以点击创建 SLO。现在,您可以从系统自动计算的 SLI 中进行选择。

556e49b10d22e5ac.png

我们先选择延迟时间 SLI。点击继续。接下来,您会看到一个界面,其中显示了此服务的当前性能以及典型延迟时间。

a9cc6f6778c13b52.png

我们为阈值输入了一个值,即 300 毫秒,这是我们想要达到的目标。您可以根据需要选择其他值,但请注意,这会相应地影响您定义的错误预算。点击继续

现在,我们设置 SLO(目标值和衡量时间范围),如下所示:

e1fc336d4191c08e.png

这意味着,我们将“衡量时间范围”选择为“滚动”类型的时间范围,并在 7 天内进行衡量。同样,对于目标值,我们选择了 90%。我们在此想说明的是,对 API 服务发出的 90% 请求应在 300 毫秒内完成,并在 7 天内进行衡量。

点击继续。这会调出摘要页面,您可以点击 UPDATE SLO 按钮进行确认。

f2540173d9f4a4b7.png

这将保存您的 SLO 定义,并自动为您计算错误预算。

76393df0e189104.png

您可以尝试以下几种操作:

  1. 通过多次调用来运行该 API,并查看服务的性能以及对剩余错误预算的影响。
  2. 修改源代码,以便在某些调用中随机引入一些额外的延迟(休眠)。这将增加许多调用的延迟时间,并且会对错误预算产生不利影响。

10. 恭喜

恭喜,您已成功将示例应用部署到 Google Cloud,并了解了如何使用 Google Cloud 运维套件监控应用的运行状况!

所学内容

  • 将服务部署到 Google Cloud Run。
  • 为 Google Cloud Run 服务设置信息中心。
  • 正常运行时间检查。
  • 设置自定义日志指标以及基于这些指标的信息中心/图表。
  • 探索 Metrics Explorer 并设置信息中心/图表。
  • 设置提醒政策。
  • 在 Google Cloud 中为 Service Monitoring 设置 SLI/SLO。

注意:如果您使用自己的账号和 Google Cloud 项目执行了此 Codelab,则分配的资源可能仍会产生结算费用。完成本实验后,请删除项目和资源。

后续操作

查看此 Cloud Skills Boost 挑战任务,详细了解 Google Cloud Operations Suite。

深入阅读