1. 准备工作
正如我们在调试智能家居 Codelab 中所述,我们会将指标和日志发布到你的智能家居项目。这些指标可帮助你确定智能家居 Action 的哪些方面存在问题,而日志则有助于你深入了解这些问题以将其解决。
除了我们为你的项目提供的指标外,你还可以使用 Google Cloud Platform 中基于日志的指标生成自己的指标。这样一来,你就能监控日志中的某些模式并有效调试质量问题。
前提条件
学习内容
- 如何编写有效查询来过滤智能家居错误日志
- 如何创建基于日志的指标以根据你的查询生成指标
- 如何根据基于日志的指标创建图表和信息中心以进行监控
2. 使用日志
正如我们在调试智能家居 Codelab 中所简要介绍的那样,使用日志是项目成功的关键。Google Cloud Platform 上提供了许多实用的日志监控和分析工具。如需访问项目可用的所有日志,您可以使用 Logs Explorer。
访问日志
访问日志的第一步是登录 Google Cloud Platform 并选择您的项目。然后,依次点击操作 > 日志记录 > 日志浏览器,使用侧边菜单进入日志浏览器。打开该工具后,你应会看到以下视图:
日志浏览器包含两个主要部分:位于顶部用于编写查询的部分(查询构建器);用于显示匹配结果的区域(查询结果)。
默认情况下,Google 的许多不同组件会将日志写入你的项目。如需查找并使用来自智能家居集成的日志,必须编写自定义查询。
编写查询
日志将发布到相应资源类型下的项目。每种资源类型代表着 Google 的不同平台。来自智能家居平台的日志可用于你在 assistant_action_project
资源类型下的项目。
此外,在创建每个日志时,系统都会为其分配一个严重级别。针对智能家居日志,我们为表示错误和异常的日志使用 ERROR
级别,为其他日志使用 DEBUG
级别。
在下方示例中,我们编写了一个查询来过滤仅来自我们平台且代表错误的日志,如下所示:
编写好查询后,请点击运行查询按钮以启动该查询。执行此操作应会显示来自智能家居集成的错误:
如你所见,我们发现过去一小时内的不同时间出现了许多错误。每行代表一个错误日志。你可以进一步点击各个日志,并展开嵌套字段以查看其中包含的信息。
使用直方图
日志浏览器提供了一项实用的直方图功能,以便你查看与你的查询匹配的日志的时间分布情况。如需启用直方图,请点击右上角按钮中的页面布局,然后勾选直方图以启用该功能。
启用后,即可看到与你的查询相匹配的日志的分布情况:
如上图所示,在过去一小时内,我们发现了一些稀疏集群的错误。它们似乎形成了三个集群,分别在下午 1:45、2:00 和 2:15 左右。直方图可帮助你检测出仅通过检查时间戳值难以发现的集群模式。
目前,我们使用的查询不会区分日志,且会显示来自智能家居集成的所有错误。很多时候,你可能想要区分错误,例如跟踪源自特定设备类型或特征的错误模式。为此,我们来看看如何编写高级查询。
高级查询
检查智能家居事件日志时,你将看到各种可供你从中收集信息的字段:
action
trait
:按用户定位设备特征(例如 OnOff、StartStop、Brightness)actionType
:特征的精细状态(例如:开启、关闭、暂停、停止、继续)
device
deviceType
:按用户定位设备类型(例如:Light、Switch、Washer)
status
isSuccess
:Action 的结果是否被视为成功 (true/false)statusType
:Action 结果的状态代码(如果不成功,会指示一个错误代码)externalDebugString
:Action 的调试字符串(详细说明该错误)
其他字段
你还可以从其他字段中提取信息:
requestId
:与请求相关联的唯一 ID(由 Google 生成)executionType
:请求使用的路径(指明是 Cloud 还是 Local)latencyMsec
:Google 服务器上请求的感知延迟时间(单位:毫秒)locale
:请求通过哪个语言/地区对发送(例如,en-US、fr-FR)
通过使用上述列表中的特征字段,我们可以修改查询,使其仅包含来自 OnOff 特征的错误,如下所示:
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
运行更新后的查询后,系统会识别日志并向我们显示相应的结果:
到目前为止,我们已手动完成了所有查询。这是一种快速检查错误状态的有效方式,但对你监控错误模式随时间推移的变化情况并不十分有效。为了自动执行此流程并捕获较长时间段内的数据,我们将创建基于日志的指标。
3. 基于日志的指标
如需计算一段时间内匹配你查询的日志数量,你可以使用基于日志的指标。这样,你就能查看各种模式和跨日志查看信息,并针对潜在问题做出良好的数据分析。
创建基于日志的指标
如需创建基于日志的指标,请依次点击操作 > 日志记录 > 基于日志的指标。执行此操作后,系统会显示已针对你项目提供的基于日志的指标的列表。点击创建指标按钮后,你将看到创建基于日志的指标的界面:
主要的指标类型有两种:计数器指标用于计算与查询匹配的日志的数量。分布指标会跟踪底层分布,并允许统计操作,例如平均值、中位数和第 95 百分位数。
向下滚动,你会看到过滤条件部分,可以在此处输入查询。
我们会将上一个部分中的查询粘贴到构建过滤条件文本区域中。
resource.type="assistant_action_project" AND severity=ERROR AND jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"
你还可以点击预览日志按钮,查看与你的过滤条件相匹配的过往日志速览。完成后,你可以点击创建指标按钮,前往下一部分。
查看基于日志的指标数据
现在,基于日志的指标已创建完毕,将会在“基于日志的指标”页面中的用户定义的指标部分中提供。
在与基于日志的指标对应的菜单(三点状)中,选择在 Metrics Explorer 中查看,以查看基于日志的指标中收集的数据:
一旦出现新的错误,我们基于日志的指标就会捕获该错误,并将其显示在 Metrics Explorer 的图表窗口中。
通过自定义信息中心进行监控
在看到新的基于日志的指标按预期运作后,就可以将此图表视图保存到自定义信息中心了。为此,请点击 Metrics Explorer 右上角的保存图表按钮。系统会显示一条提示,提醒你为图表命名并选择要保存图表的信息中心:
将图表保存到相应的信息中心后,我们就可以在那里轻松访问该图表。如需访问项目可用的信息中心列表,请依次点击操作 > 监控 > 信息中心。
我们已将图表保存到一个名为“Codelab 信息中心”的信息中心内。打开该信息中心会显示以下视图:
如你所见,表示基于日志的指标的图表和新收集的数据都会在此显示。智能家居日志会实时发布到你的项目。当有新的日志时,你将看到基于日志的指标会立即将其统计在内。
4. 恭喜
恭喜!你已成功学会如何将查询转换为基于日志的指标,并将其保存到自定义信息中心以进行监控。
后续步骤
在此 Codelab 的基础上,尝试做以下练习并浏览其他资源: