监控智能家居的服务中断情况

1. 准备工作

正如我们在调试智能家居 Codelab 中所述,我们会将相应指标和日志发布到你的智能家居项目。这些指标可帮助你确定智能家居 Action 的哪些方面存在问题,而日志则有助于你深入了解这些问题以将其解决。

dd44868a4ff2df6e.png

您可以使用为项目提供的指标设置提醒,以便自动监控服务中断情况并在服务中断期间收到通知。我们即将发布一个置信度指标,以突出显示项目中断的情况,本 Codelab 以及 Google Cloud Platform 上为您提供的所有其他提醒工具都将涵盖此指标。

前提条件

学习内容

  • 如何监控项目的性能问题和服务中断情况。
  • 如何创建基于阈值的提醒,并在发生服务中断时接收通知。
  • 如何利用提供给您的项目的置信度指标检测服务中断情况。

2. 监控性能

监控性能对于与 Google 智能家居生态系统成功集成至关重要。我们在 Google Cloud Platform 上为智能家居开发者提供了一组监控工具。您可以使用这些工具了解项目的性能。

访问信息中心

访问您的数据的第一步是检查 Google Home 信息中心,方法是登录 Google Cloud Console,然后依次转到操作 > 监控 > 信息中心。你将会看到多个可用的信息中心,而且智能家居信息中心带有一个前缀为 Google Home Analytics。

317697e52ced2437.png

我们创建了单独的信息中心来代表每种集成类型。Cloud、Local 和 Matter 集成有自己的信息中心,摄像头流式传输协议的数据在相机质量信息中心内提供。只有当您集成了相应类型的数据,并且有可正常运行的请求项目时,这些信息中心才会包含数据。

打开其中一个信息中心后,您获得的视图将如下所示:

f8bfd69286c569a4.png

信息中心包含各种图表,其中显示由您的项目处理的请求的详细信息。每个集成信息中心都会显示一个图表,其中显示您的项目处理的总请求次数,一个图表显示该集成类型的成功率,以及几个图表显示所涉及的设备类型和特征。

以下三个图表对评估智能家居 Action 的性能至关重要:

f511fafd3aaaa1eb.png

在服务中断期间,您通常会看到成功率呈下降趋势,且错误细分图表中有上升趋势。监控执行成功率有助于发现服务中断,而查看错误细分中的主要错误有助于调试。您可能还会注意到服务中断期间延迟时间出现上升趋势,这表现在请求延迟时间图中。

请注意,您在 Google Home Analytics 信息中心看到的默认图表只是我们使用智能家居指标数据为您的项目创建的数据视图。您还可以使用 Metrics Explorer 基于相同的基础指标创建自己的图表,并将其保存到自定义信息中心内。

指标浏览器

Metrics Explorer 是一款工具,用于直观呈现项目数据集的交叉部分。在 Google Cloud 控制台中,您可以转到操作 > 监控 > Metrics Explorer 来访问该工具。

Google Cloud 提供了许多不同的指标,包括一些与智能家居无关的指标。我们为智能家居提供的指标列在“actions.googleapis.com/smarthome_action/...”资源下,因此我们可以在指标选择框中输入“smarthome”,以便轻松搜索指标。

538d851edfd34764.png

搜索“smarthome”会打开我们为你的项目提供的所有智能家居指标。如需详细了解我们的各项指标,请参阅我们文档的 MonitoringLogging 页面。

对于监控项目时,最简单的指标就是“请求数”指标,这是一个增量指标。此指标会记录用户启动的每次智能家居执行的一个条目,并记录执行、涉及的执行、执行类型以及显示结果的状态字段等字段。

选择此指标后,系统会生成一个屏幕,显示类似于以下内容的每个数据存储分区:

b1c18141d15a0e09.png

从本质上讲,对于此指标中的每个数据标签组合,都存在一个存储分区,用于记录先前和当前时间间隔之间的变化(增量)。您可以对这些分组进行分组或过滤掉,以获取所需的视图数据切片。此外,数据会通过对齐函数(DELTA、MEAN、 MediaN、SUM)对齐所选时间间隔。除非另有说明,否则您通常使用增量与增量指标的对齐方式。

您可以使用 Metrics Explorer 创建 Google Home Analytics 信息中心内提供的大多数图表,并将图表保存起来以供日后在自定义信息中心内访问。为了实现更复杂的视图(例如比率图表),您需要使用 MQL - 监控查询语言。

3. 成功指标

对于跟踪您的集成成功与否,您可以将我们根据您的请求数量指标计算出的成功率作为基准指标,也可以用更成功的方法来设置更有针对性的方法。

成功

通过将成功的请求次数除以所有请求次数,即可计算所有集成的成功率。你可以在 Google Home Analytics(分析)信息中心里的“fulfillment 成功率”图表访问该工具。

55ea8930fbf48d9e.png

Fulfillment Success Rate 图表在监控项目表现方面非常有用,但在构建自定义信息中心或设置提醒时则没什么用。由于成功率根据您的请求数量指标(而非指标本身)得出,因此您必须在 Metrics Explorer 中使用 MQL(监控查询语言)重新创建该指标,才能将其与任一功能一起使用。

此外,为了跟踪项目的性能中断问题,我们认为需要更专业的方法。因此,我们创建了置信度指标,该指标会根据您当前的履单成功率与历史规范的偏差程度而变化。

置信度指标

服务中断可以采用不同的形状和大小。它们可能持续数小时至几分钟,这可能会使他们的身份成为一大挑战。为此,我们在您的项目中创建了置信度指标,该指标提供了根据过去的性能预测可靠性的标准化值。如需访问置信度指标,请在 Metrics Explorer 中搜索智能家居,然后选择执行成功置信度

ab467a1777281526.png

当智能家居集成功能的性能达到或超过历史性能(7 天平均值)时,此指标将输出最大值 (1.0)。如果您的成功百分比与 4 个标准偏差的因子(同样是 7 天)偏差,则该指标会输出最小值 (0.0)。对于标准偏差过低(小于 2.5%)的情况,此指标会将 0.0 值设为成功率下降 10%。

对于二者之间的所有情况,此指标提供的值介于 1.0(完全没有中断)和 0.0(表示置信度最高的置信度)之间。

因此,在设置提醒(参见下一部分)时,我们建议将阈值 0.5 作为阈值。该值对应于 2 个标准差或 5% 的降幅(以较高者为准)。

4. 设置提醒

下一步是使用您在上一部分中学到的所有内容来设置项目提醒。

创建提醒政策

Google Cloud Platform 上的自动提醒是通过提醒政策设置的。您可以通过侧边菜单(“操作”>“监控”>“提醒”)访问提醒政策。您可以通过选择 +CREATE POLICY 选项来创建新的提醒政策,这会将您转到提醒政策创建屏幕:

6e417d88c2274b3d.png

创建提醒政策分为三个部分。首先,您需要通过添加条件来确定要跟踪的指标。按 ADD CONDITION 按钮将打开一个类似于 Metrics Explorer 的窗口,其中包含一些用于配置条件的附加控件:

df1ccf7da741e1c7.png

对于目标指标,请选择已在上一部分中涵盖的置信度指标。确保使用此指标将对齐器设置为增量(显示高级选项 > 对齐器)。下一步是配置提醒发出条件并使用以下设置:

4192e0f4ea00dd28.png

条件触发条件 - 这是用于确定何时触发提醒的主要配置。选择任何违反时间序列的情况将会有效,因为我们将为指标设置阈值并监控值是否已超过。

条件 - 我们希望在值低于阈值时触发提醒,因此我们将此值设置为低于。在我们的指标中,1.0 表示集成正常运行,0.0 表示服务中断。

阈值 - 我们已创建置信度指标,以便在该值设为 0.5 时提供最佳结果。如果您希望提高提醒接收频率,并接收突发事件较小的通知,可以尝试提高此值(不超过 1.0)。之后,如果您想减少提醒,但只针对严重的问题,可以尝试降低此值(最低 0.0)。

对于 - 此设置用于确定收到提醒之前应该中断多长时间。我们建议您将此设置设为最新值,以便在超出阈值时收到提醒。我们的置信度指标每 15 分钟发布一次,旨在了解相应时间段内的平均成功率。

添加完条件后,下一步是选择通知渠道。最简单的通知方法是电子邮件提醒。您可以选择 Notification Channels(通知渠道)下拉菜单中列出的电子邮件地址:

3cc10629830e7f13.png

如果您勾选在突发事件关闭时通知选项,系统会在突发事件被标记为已解决后再次发送通知。在这种情况下,您还应选择突发事件自动关闭时长,默认指定为 7 天。

最后一步是为提醒命名,并添加您想要在通知中添加的所有文档。

686fb1c537fee10.png

我们建议您提供相关文件,尤其是在您不是将要收到警报的证明者时。添加诸如在突发事件发生时检查地点以及分类和调试等步骤有助于在服务中断期间正常运行。您可以根据需要参阅我们的问题排查指南

保存后,您的提醒政策会列在“提醒”页面上的“政策”部分。

c71a001e4df035ee.png

5. 缓解服务中断

设置提醒后,您提供的通知渠道会在服务中断期间通知您,“提醒”页面中也会创建事件条目。

接收提醒

我们在此 Codelab 中提供的提醒渠道是电子邮件地址。完成设置后,您可能不会收到任何提醒(不会出现任何服务中断情况),但如果您进行了设置,通知将如下所示:

43217b0a145c2cd.png

请注意,提醒通知会提供观察到超出指定阈值的实测值,以及规定了突发事件首次开始的时间戳。

监控突发事件

突发事件发生时,还会计入“提醒”页面上的“突发事件”部分。

fdd883a9604ed981.png

您可以点击特定突发事件来查看关于服务中断的详细信息,例如持续时间或严重程度。

请注意,收到提醒后,最好的第一步是查看指标,然后在日志中搜索导致服务中断的错误。您可以复习一下如何调试智能家居 Codelab。

6. 恭喜

17d485868a6771bc.png

恭喜!您已成功了解了如何使用为项目提供的指标来设置提醒,以便自动监控服务中断情况并在服务中断期间收到通知。

后续步骤

在此 Codelab 的基础上,尝试做以下练习并浏览其他资源:

  • 您可以结合您在此 Codelab 中学到的知识和提供给您的项目的其他指标。您可以在监控页面的支持的指标部分查看可用指标的完整列表。
  • 浏览 Google Cloud Platform 文档的通知选项页面所述的其他类型的通知渠道。