Cloud Operations Suite 简介

1. 简介

上次更新日期:2023 年 7 月 28 日

什么是 Google Cloud Operations Suite?

Google Cloud Operations Suite 平台可让您监控 Google Cloud 环境中的应用性能,排查其中的问题并加以改善。Cloud Operations Suite 的关键支柱包括 Cloud Monitoring、Cloud Logging 和 Cloud Tracing。

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

构建内容

在此 Codelab 中,您将在 Google Cloud 上部署示例 API。然后,您将通过该 API 探索和配置 Cloud Monitoring 中的多项功能。

学习内容

  • 使用 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

如果您以前从未启动过 Cloud Shell,系统会显示一个中间屏幕(非首屏)来介绍 Cloud Shell。如果是这种情况,请点击 继续 (这样您将不会再看到此通知)。一次性屏幕如下所示:

9c92662c6a846a5c

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

9f0e51b578fecce5

这个虚拟机装有您需要的所有开发工具。它提供了一个持久的 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://&lt;somehost&gt; 后,我们就可以按如下方式访问 API 端点:

  • https://&lt;somehost&gt;/inventory

系统将列出所有具有现有库存水平的产品项。

  • https://&lt;somehost&gt;/inventory/{productid}

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

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

示例数据和 API 请求/响应

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

产品 ID

手头商品目录级别

I-1

10

I-2

20

I-3

30

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

API 请求

API 响应

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

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

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

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

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

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

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -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

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

  1. 这将打开一个浏览器窗口。系统会显示 404 错误,这没关系。修改网址,并将其更改为在主机名后面仅包含 /inventory

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

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

系统随即会显示广告资源项列表,如前所述:

ef6afb0184c58870.png

  1. 您现在可以转到终端并按 Ctrl-C 以停止服务器

部署应用

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

在终端发出以下 gcloud 命令:

$ gcloud run deploy --source .

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

  1. 服务名称 (python-flask-api):采用此默认值,或者选择类似于 my-inventory-api
  2. 项目 [project-number] 未启用 API [run.googleapis.com]。要启用并重试(这将需要几分钟)吗?(是/否)?是
  3. 请指定区域:输入数字即可选择区域。
  4. 项目 [project-number] 上未启用 API [artifactregistry.googleapis.com]。要启用并重试(这将需要几分钟)吗?(是/否)?是
  5. 从源代码部署需要使用 Artifact Registry Docker 代码库来存储构建的容器。系统将在区域 [us-west1] 中创建名为 [cloud-run-source-deploy] 的代码库。

是否要继续(是/否)?是

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

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

运行示例如下所示:

7516696ea5b3004b

测试应用

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

  1. 记下上一步中的服务网址。例如:在我的设置中,它显示为 https://my-inventory-api-bt2r5243dq-uw.a.run.app。将其命名为 &lt;SERVICE_URL&gt;
  2. 打开浏览器并访问以下 3 个 API 端点网址:
  3. &lt;SERVICE_URL&gt;/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

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

1ec2c9e45ff1a2db.png

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

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

4. 设置信息中心

Cloud Monitoring 提供的一项便捷功能是涵盖 Google Cloud 中多个资源的开箱即用 (OOTB) 信息中心。这样可以方便快捷地对信息中心进行标准指标的初始设置。

我们来看看如何为刚刚部署到 Cloud Run 的 API 服务完成这项操作。

服务的自定义信息中心

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

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

c51a5dda4ab72bbf.png

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

2758f61f1e7f1dca

现在,点击侧边主菜单中的信息中心。点击后,您会进入以下屏幕:

c9110b6f065100da.png

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

ddac4038d4fa91ae.png

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

您将看到一个 Cloud Run Monitoring 信息中心。点击预览链接,查看可用于 Cloud Run Monitoring 的标准图表(指标)列表。只需点击导入示例信息中心,即可将所有这些图表导入一个自定义信息中心。系统会显示一个“信息中心”屏幕,其中预填充了相应名称,如下所示:

531cb8434b18193a

您可以点击信息中心名称左侧的向左箭头(左上角则是右侧)返回。系统将打开信息中心列表,您可以在其中看到刚刚创建的新信息中心。

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

您还可以选择将任意数字面板标记为收藏,只需选择如下所示的星形图标即可:

fc993d1a17415550.png

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

2e8f66e2652c55c5

1e1dffb5239ab110

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

5. 拨测

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

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

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

创建通知渠道

在创建拨测之前,请务必先配置通知渠道。通知渠道是一种媒介,当我们监控的任何资源发生突发事件/问题时,您可以通过该渠道收到提醒。例如,“电子邮件”就是通知渠道。在有提醒等情况下,您将收到电子邮件。

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

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

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

9f87859064c63b63

这会显示一个包含提醒、政策等内容的页面。目前,您会在顶部看到一个名为修改通知频道的链接。点击该链接。

5ab54f42e6f7b99

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

cd89b1ca9e1de87c.png

找到电子邮件部分,然后点击该行对应的新增。此时会显示电子邮件配置详细信息,如下所示:

d6ed98ffd0427fa3.png

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

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

创建正常运行时间检查

从 Google Cloud 控制台的主菜单中,转到 Monitoring → Uptime Check。在顶部,您会看到创建拨测链接。点击该链接。

484541aec65e605e

此时系统会显示一系列步骤,您需要完成这些步骤来配置拨测。

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

4e2bb9fe022320f7

可以选择不同的值,如下所示:

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

点击继续进入下一步。下一步是响应验证步骤,如下所示:

a6011ac2ab3e0f10.png

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

d9738670efcb999f.png

在此步骤中,为提醒命名。我已经选择 Inventory API Uptime Check failed,但您也可以选择自己的名字。此处的关键是从您之前配置的列表中选择正确的通知渠道。

点击审核,进入最后一步,以查看我们配置的拨测。

在这最后一步中,为拨测命名(例如 Inventory API Uptime Check),然后还可以测试该检查的配置是否正确。点击 TEST(测试)按钮进行测试。

80375bfab97fc313

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

df17555ddbee1127.png

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

以上是关于设置拨测的部分。非常棒!

6. Metrics Explorer

Cloud Monitoring 提供来自多个 Google Cloud 产品的数千个标准指标。您可以使用这些指标执行调查、查询、转换为图表、添加到信息中心、发出提醒等操作。

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

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

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

从 Google Cloud 控制台的主菜单中,转到 Monitoring → Metrics Explorer。您将转到 Metrics Explorer 屏幕。点击选择指标。您现在可以浏览多个已生成指标的活跃资源。

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

7609d8156c8f1384

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

46086ac0a8eaf3d7

这将显示延迟时间图表,如下所示:

ad97f749eeacaa95.png

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

接下来我们保存此图表点击 Save Chart,然后使用详细信息,如下所示:

35d1788d5f0cb3c4.png

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

c9cdcd63d5823abd.png

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

27354d8310d8a2d7

以上就是通过 Metrics Explorer 调查各种指标以及如何创建自定义信息中心的部分。

7. Cloud Logging

在本部分中,我们将探索 Cloud Logging。Cloud Logging 附带一个日志浏览器界面,可帮助您浏览和深入了解各种 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,模拟向 Inventory Service 发出的几项无效请求。例如:不正确的请求:

https://&lt;SERVICE_URL&gt;/inventory/I-999

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

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

resource.type=&quot;cloud_run_revision&quot;

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

代码应如下所示:

b3ee512a0c9c5c7b.png

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

5fdbd7c23bf4694f

基于日志的指标

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

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

fa9a5e04922aa412.png

系统将打开用于创建指标定义的表单。选择一个计数器指标,如下所示输入指标名称 (inventory_lookup_errors) 和说明的详细信息(如下所示),然后点击创建指标

70b5719b472d4d02

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

ab9058028185e4d5.png

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

7d186e90559cf8e1

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

7586f0789a0bdb41

此时,我们应该会进入在上一部分中了解的 Metrics Explorer,只不过它现在已为我们预填充。

7ee7403d0639ce25

点击 Save Chart。对于“Save Chart”选项,请使用以下值:

9009da45f76eb4c5

这将会创建一个新信息中心,您可以在信息中心列表中看到“房源/票源搜索”错误。

201ed66957cb64f9

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

8. 提醒政策

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

创建提醒政策

让我们转到“Inventory Search Dashboard”(库存搜索信息中心)。系统会显示我们创建的图表,其中会注明广告资源查找错误,如下所示:

3591a1dd91a8b9fd

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

5e76fc20d8387984

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

65ccd1eaca607831

点击右上角的应用,我们将返回到“指标”页面,但这次我们将可以看到校准时间段内的错误总数与错误率。

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

cc9eec48b9bfbc92.png

您应该会看到如下所示的屏幕:

6202ad1e88679a78

点击 Next,系统随即会显示我们可以设置的阈值。我们这里采用的样本阈值为 5,但您可以根据自己的偏好进行选择。

734f809cc802ab78

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

f2d84fb85c2520cb.png

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

c670b29da70c4655.png

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

154da627959c54f3

太好了!您现在已配置一项自定义提醒政策,当在查询 Inventory API 时,如果错误率上升,就会向您发出通知。

9. Service Monitoring(可选)

在本部分中,我们将根据站点可靠性工程 (SRE) 原则,为我们的服务设置 SLI/SLO。您会注意到,Cloud Monitoring 会自动发现您已在 Cloud Run 中部署的服务,从而简化了工作。此外,它还能自动为您计算可用性、延迟时间等关键 SLI 以及错误预算计算。

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

为 Inventory 服务设置延迟时间 SLO

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

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

42d14515a481213

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

522aaba719f85c54

您看到的显示名称可能会有所不同,取决于您在将服务部署到 Cloud Run 时选择的名称。点击提交按钮。这将打开如下所示的屏幕:

eca08010ab6858a9.png

您可以点击创建 SLO。这样,您就可以从自动计算的 SLI 中进行选择。

556e49b10d22e5ac

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

a9cc6f6778c13b52.png

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

现在,我们设置 SLO(目标和衡量窗口),如下所示:

e1fc336d4191c08e.png

也就是说,我们将“衡量期”选为“滚动”类型,并跨 7 天进行衡量。同样,对于目标,我们选择了 90% 作为目标。我们想在此说明,对 API 服务发出的 90% 请求应在 300 毫秒内完成,并在 7 天内进行衡量。

点击继续。系统随即会打开摘要屏幕,您可以点击更新 SLO 按钮进行确认。

f2540173d9f4a4b7.png

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

76393df0e189104

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

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

10. 恭喜

恭喜,您已成功将示例应用部署到 Google Cloud,并了解如何使用 Google Cloud Operations Suite 监控应用的健康状况!

所学内容

  • 将 Service 部署到 Google Cloud Run。
  • 为 Google Cloud Run 服务设置信息中心。
  • 拨测。
  • 设置自定义日志指标,并根据这些指标设置信息中心/图表。
  • 探索 Metrics Explorer 并设置信息中心/图表。
  • 设置提醒政策。
  • 在 Google Cloud 中为 Service Monitoring 设置 SLI/SLO。

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

后续操作

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

深入阅读