Cloud Operations Suite 简介

1. 简介

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

什么是 Google Cloud Operations Suite?

Google Cloud 运维套件是一个平台,您可以在其中监控 Google Cloud 环境中的应用性能,排查其中的问题并加以改善。Cloud Operations Suite 的主要支柱包括 Cloud Monitoring、Cloud Logging 和 Cloud Trace。

观看此视频,大致了解 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,并且此 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.png

预配和连接到 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 后,假设该 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://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 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 的“网页预览”功能在本地对其进行测试。点击网页预览按钮,如下所示:

675d9b3097a6209c.png

点击“在端口 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_网址>/inventory
  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

点击服务名称可查看详情。示例详细信息如下所示:

1ec2c9e45ff1a2db.png

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

让我们立即开始使用 Google Cloud Operations Suite。

4. 设置信息中心

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

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

我们服务的自定义信息中心

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

首先,在控制台中,前往监控 → 概览,如下所示:

c51a5dda4ab72bbf.png

“概览”页面会显示您在 Monitoring 中配置的多个内容,例如信息中心、提醒、拨测等。

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 的“概览”界面,从而方便您前往经常使用的信息中心。

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 控制台的主菜单中,依次前往监控 → 提醒,如下所示:

9f87859064c63b63.png

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

5ab54f42e6f7b99.png

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

cd89b1ca9e1de87c.png

找到电子邮件部分,然后点击相应行中的新增。系统随即会显示电子邮件配置详细信息,如下所示:

d6ed98ffd0427fa3.png

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

这样就完成了电子邮件通知渠道的创建。我们现在来配置拨测。

创建正常运行时间检查

在 Google Cloud 控制台的主菜单中,依次前往监控 → 拨测。您会在顶部看到创建正常运行时间检查链接。点击该按钮。

484541aec65e605e.png

系统随即会显示一系列步骤,您需要完成这些步骤才能配置拨测。

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

4e2bb9fe022320f7.png

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

  • 协议:HTTPS
  • 资源类型:选择 Cloud Run 服务。请注意,该资源还支持其他资源,您也可以为这些资源设置拨测。
  • Cloud Run 服务:选择 my-inventory-api 或 Cloud Run 服务的特定名称。
  • 路径为 /healthy,因为我们返回的是字符串“All Izz Well”,并且我们想要检查该字符串。

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

a6011ac2ab3e0f10.png

您可以看到,我们正在启用“内容匹配”检查,然后设置 /healthy 端点返回的响应将为“一切正常”。点击继续以进入下一步,在该步骤中,我们将配置提醒,以及在正常运行时间检查失败时应收到提醒的通知渠道。

d9738670efcb999f.png

在此步骤中,为提醒命名。我将其命名为 Inventory API Uptime Check failure,但您可以自行选择名称。这里的重要事项是从您之前配置的列表中选择正确的通知渠道。

点击检查,查看我们配置的拨测,完成最后一步。

在最后一步中,为拨测指定一个名称(例如 Inventory API 拨测),然后您还可以测试拨测是否配置正确。为此,请点击测试按钮。

80375bfab97fc313.png

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

df17555ddbee1127.png

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

至此,我们已完成有关设置正常运行时间检查的部分。干得漂亮!

6. Metrics Explorer

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

本部分的目标是:

  1. 了解如何查看各种指标,然后我们将针对 API 服务调查一个特定指标(延迟时间)
  2. 将该指标转换为图表和自定义信息中心,以便我们随时直观呈现该指标。

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

在 Google Cloud 控制台的主菜单中,依次前往监控 → Metrics Explorer。系统会将您转到 Metrics Explorer 界面。点击选择指标。您现在可以浏览生成了指标的多个有效资源。

由于我们处理的是 Cloud Run 服务,因此请依次点击“Cloud Run 修订版本”“类别”和名为请求延迟时间的具体指标,如下所示:

7609d8156c8f1384.png

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

46086ac0a8eaf3d7.png

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

ad97f749eeacaa95.png

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

接下来,我们来保存此图表。点击保存图表,并使用如下所示的详细信息:

35d1788d5f0cb3c4.png

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

c9cdcd63d5823abd.png

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

27354d8310d8a2d7.png

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

7. Cloud Logging

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

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

日志浏览器

您可以从主 Google Cloud 控制台访问日志浏览器,方法是依次前往日志记录 → 日志浏览器,如下所示:

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 =~ "Received inventory request for incorrect productid"

输出应如下所示:

b3ee512a0c9c5c7b.png

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

5fdbd7c23bf4694f.png

基于日志的指标

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

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

fa9a5e04922aa412.png

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

70b5719b472d4d02.png

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

ab9058028185e4d5.png

从主菜单中访问日志记录 → 基于日志的指标,您应该会在“用户定义的指标”列表中看到我们定义的自定义指标,如下所示:

7d186e90559cf8e1.png

在此条目的末尾,您会看到三个竖点,点击它们即可查看可对此自定义指标执行的操作。该列表应类似于您在下方看到的列表。点击在 Metrics Explorer 中查看选项。

7586f0789a0bdb41.png

这应该会引导我们进入上一部分中了解的 Metrics Explorer,只不过现在它已预先填充了数据。

7ee7403d0639ce25.png

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

9009da45f76eb4c5.png

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

201ed66957cb64f9.png

太棒了!您现在已根据日志创建了一个自定义指标,并将其转换为图表,该图表位于自定义信息中心内。这有助于我们跟踪使用不正确商品 ID 的通话次数。

8. 提醒政策

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

创建提醒政策

我们前往“广告资源搜索”信息中心。这会显示我们创建的用于记录“库存查找错误”的图表,如下所示:

3591a1dd91a8b9fd.png

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

5e76fc20d8387984.png

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

65ccd1eaca607831.png

点击右上角的应用,系统会返回到“指标”界面,但这次您将能够看到对齐周期内的总错误数与错误率。

我们将创建一个提醒政策,以便在错误数量超出阈值时收到通知。点击图表右上角的三点状图标,然后从选项列表中点击转换为提醒图表,如上图所示。

cc9eec48b9bfbc92.png

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

6202ad1e88679a78.png

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

734f809cc802ab78.png

点击下一步,系统会显示“通知”表单

f2d84fb85c2520cb.png

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

c670b29da70c4655.png

创建此提醒政策后,该政策将显示在提醒政策列表中,如下所示。您可以前往 Monitoring → 提醒,查看提醒政策列表。扫描页面中的政策部分,查看我们目前已配置的政策列表。

154da627959c54f3.png

太棒了!您现在已配置自定义提醒政策,该政策会在查找 Inventory API 时错误率升高的情况下通知您。

9. Service Monitoring(可选)

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

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

为 Inventory Service 设置延迟 SLO

在 Cloud 控制台的主菜单中,依次点击监控 → 服务。系统随即会显示已配置服务监控的服务列表。

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

42d14515a481213.png

这会自动发现可作为 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 天内进行衡量。

点击继续。系统随即会显示摘要界面,您可以通过点击更新 SLO 按钮进行确认。

f2540173d9f4a4b7.png

这样一来,系统会保存您的 SLO 定义,并自动计算错误预算。

76393df0e189104.png

您可以尝试以下操作:

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

10. 恭喜

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

所学内容

  • 将服务部署到 Google Cloud Run。
  • 为 Google Cloud Run 服务设置信息中心。
  • 拨测。
  • 设置自定义日志指标以及基于该指标的信息中心/图表。
  • 探索 Metrics Explorer 并设置信息中心/图表。
  • 设置提醒政策。
  • 在 Google Cloud 中为服务监控设置 SLI/SLO。

注意:如果您已使用自己的账号和 Google Cloud 云项目执行过此 Codelab,那么分配的资源可能会继续产生结算费用。因此,请在完成实验后删除项目和资源。

后续操作

不妨查看此 Cloud Skills Boost 挑战任务,详细了解 Google Cloud 运维套件。

深入阅读