Google Cloud 为您提供使用 Google Cloud Monitoring 监控项目可靠性的工具,并使用 Google Cloud Logging 错误日志调试问题。每当在满足用户意图时发生失败,Google Home Analytics 管道都会将该失败记录在您的指标中,并在您的项目日志中发布错误日志。
若要对错误进行问题排查,需要执行两个步骤:
- 利用智能家居指标监控您的项目状态。
- 通过查看错误日志中的详细错误描述来调查问题。

您可以选择通过与其他用户共享您的 Action 来测试该 Action。务必处理错误和异常恰当。
监控错误
您可以使用 Google Cloud Monitoring dashboards 访问您的项目指标。以下是一些对于监控质量和调试尤为有用的关键图表:
- 监控项目可靠性时,首先应关注成功率图表。如果此图表中的指标下降,可能表示用户群中的部分用户或所有用户遇到了服务中断。我们建议您在每次项目发生更改或更新后密切监控此图表,看看是否有任何异常情况。
- 这第 95 百分位延迟图表是衡量您工作情况的重要指标。Cloud-to-cloud集成功能正在为您的用户提供服务。 如果此图表中突然出现波动,可能表示您的系统跟不上请求的速度。建议您定期查看此图表,看看是否有任何意外行为。
- 在排查集成问题时,错误分解图表最为有用。针对成功百分比图表中突出显示的每个错误,错误细分图表中都会相应显示一个错误代码。您可以在下表中查看 Google Home platform 标记的错误以及如何解决这些错误。
平台错误代码
以下是项目日志中的一些常见错误代码,用于识别 Google Home platform发现的问题。请参阅下表,了解问题排查信息。
| 错误代码 | 说明 |
|---|---|
BACKEND_FAILURE_URL_ERROR |
Google 从您的服务中收到除 401 之外的 HTTP 4xx 错误代码。
使用 requestId在 GCP 日志记录中查看您的智能家居服务日志。
|
BACKEND_FAILURE_URL_TIMEOUT |
Google 在尝试访问您的服务时请求超时。
验证您的服务是否处于在线状态、是否接受连接以及是否未超出容量。此外,请验证目标设备是否已开机、已联网且已同步。 |
BACKEND_FAILURE_URL_UNREACHABLE |
Google 从您的服务收到 HTTP 5xx 错误代码。
在 GCP Logging 中使用 requestId,以查看智能家居服务日志。
|
DEVICE_NOT_FOUND |
合作伙伴服务端不存在相应设备。
这通常表示数据同步失败或出现竞态条件。 |
GAL_BAD_3P_RESPONSE |
由于载荷中的格式或值无效,Google 无法解析来自账号关联服务的响应。
在 GCP Logging 中使用 requestId,以查看您的账号关联服务中的错误日志。
|
GAL_INTERNAL |
Google 尝试检索访问令牌时发生 Google 内部错误。
如果您在 GCP Logging 中发现此错误的出现频率增加,请联系我们以了解更多信息。 |
GAL_INVALID_ARGUMENT |
Google 尝试检索访问令牌时发生 Google 内部错误。
如果您在 GCP Logging 中发现此错误的出现频率增加,请联系我们以了解更多信息。 |
GAL_NOT_FOUND |
储存在 Google 的用户访问令牌和刷新令牌已失效,无法再刷新。用户需要重新关联账号,才能继续使用您的服务。
如果您在 GCP Logging 中发现此错误的出现频率增加,请联系我们以了解更多信息。 |
GAL_PERMISSION_DENIED |
令牌共享未获得授权时发生 Google 内部错误。
如果您在 GCP Logging 中发现此错误的出现频率增加,请联系我们以了解更多信息。 |
GAL_REFRESH_IN_PROGRESS |
用户的访问令牌已过期,而系统已经同时尝试再次对其进行刷新。
这不是问题,无需执行任何操作。 |
INVALID_AUTH_TOKEN |
Google 从您的服务收到 HTTP 401 错误代码。
访问令牌未过期,但您的服务已使其失效。 使用 GCP 日志记录中的 requestId 来查看您的智能家居服务日志。
|
INVALID_JSON |
无法解析或理解 JSON 响应。
检查 JSON 响应的结构,看看是否存在语法无效的问题,例如括号不匹配、缺少逗号、字符无效。 |
OPEN_AUTH_FAILURE |
用户的访问令牌已过期,Google 无法刷新该令牌,或者 Google 从您的服务收到了 HTTP 401 错误代码。
如果您发现此代码的出现频率增加,请检查与智能家居 intent 或刷新令牌请求相关的错误的出现频率是否也有所增加。 |
PARTNER_RESPONSE_INVALID_ERROR_CODE |
响应显示存在无法识别的错误代码。
如果您的请求响应显示错误,请务必使用我们提供的响应。 支持的错误代码。 |
PARTNER_RESPONSE_INVALID_PAYLOAD |
响应的“payload”字段无法解析为 JSON 对象。
检查请求响应中的 payload 字段是否包含匹配的括号,并且是否正确地以 JSON 字段的形式组织。 |
PARTNER_RESPONSE_INVALID_STATUS |
响应不指示状态,或指示的状态不正确。
对 intent 执行请求的响应应该使用 SUCCESS, OFFLINE, ERROR, EXCEPTIONS 的其中一项指示状态。您可以找到有关
处理错误和异常 的更多信息。
|
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
请求中存在的一个或多个 intent 在响应中缺失。
确认您的 执行响应格式是否正确,响应中是否有与请求中的所有 intent 对应的结果。 |
PARTNER_RESPONSE_MISSING_DEVICE |
请求中存在的一个或多个设备在响应中缺失。
确认您的 执行响应格式是否正确,响应中是否有请求中存在的所有设备 ID。 |
PARTNER_RESPONSE_MISSING_PAYLOAD |
响应不包含“payload”字段。
请确保在请求响应中包含有效负载字段。您可以详细了解如何正确构建 执行响应。 |
PARTNER_RESPONSE_NOT_OBJECT |
响应无法解析为 JSON 对象。
检查请求响应中的所有字段,是否存在非预期字符、不匹配的括号或格式错误。某些 Unicode 字符可能不受支持。另外,请确保您的响应结构正确,为 JSON 对象格式。 |
PROTOCOL_ERROR |
请求处理失败。
在 Google Cloud Logging 中使用 requestId,以查看智能家居服务日志。
|
RELINK_REQUIRED |
响应表明存在 relinkRequired 错误,这会提示用户重新关联其 Google 账号和合作伙伴账号。
参见 支持的错误代码了解更多信息。 |
RESPONSE_TIMEOUT |
请求超时,尚未收到响应。
发送响应的超时期限为自发出请求之时起 9 秒。请务必在此期限内发送回复。 |
RESPONSE_UNAVAILABLE |
未收到响应,或者响应不指示状态。
对意向履行请求的回应应按照以下方式构建: 智能家居文档并标明状态。 |
TRANSIENT_ERROR |
暂时性错误是指能够自行解决的错误。
这些错误最常表现为与设备或服务的连接断开。如果无法打开与服务器的新连接,也会出现此问题。 |
搜索日志
一旦你熟悉了使用指标监控集成,下一步就是使用 Cloud Logging 来排查具体错误。错误日志是一个类似 JSON 的条目,其中包含诸如时间、错误代码和有关发起智能家居意图的详细信息等字段。
Google Cloud 中有多个系统会随时向您的项目发送日志。你需要编写查询语句来过滤日志找到你需要的那些。查询可以基于 时间范围、资源、日志 严重性 或自定义条目。
您可以使用查询按钮来帮助您构建自定义过滤条件。
如需指定时间范围,请点击时间范围选择按钮 ,然后从提供的选项中选择一个。这将过滤日志,并显示选定时间范围内产生的日志。
若要指定资源,请点击资源下拉菜单,然后选择 Google 助理 Action 项目。这将向查询中添加一个过滤器,以显示源自您项目的日志。
使用严重级别按钮,按紧急、信息、调试和其他严重级别日志等级进行过滤。
您还可以使用 Logs Explorer 中的查询字段来输入自定义条目。此字段使用的查询引擎既支持基本查询(例如字符串匹配),也支持更高级类型的查询,包括比较运算符 (<, >=, !=) 和布尔运算符 (AND, OR, NOT)。
例如,下面的自定义条目将返回由“LIGHT”类型设备产生的错误:
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
您可以访问查询库,查找更多有效查询日志的示例。
测试修正效果
在您发现错误并应用更新来修正错误后,我们建议您使用 Google Home Test Suite 全面测试修正效果。我们提供了介绍 Test Suite 使用方法的用户指南,该指南会逐步指导您有效地对更改进行测试。
学习资源
本文档说明了对智能家居 Action 中的错误进行问题排查的步骤。您也可以查看我们的 Codelab,详细了解调试:
- 调试智能家居 Codelab:关于调试智能家居云集成的快速入门指南。
- 调试 Local Home Codelab:调试智能家居本地集成的快速入门指南。